{"openapi":"3.1.0","info":{"title":"DALP API v2","version":"2","description":"The Platform API at `/api/v2` is the authenticated integration surface for organisation-scoped asset, compliance, custody, and settlement work.\n\nAuthenticate with `X-Api-Key` or a session cookie. Public auth routes, such as sign-in, need no credential. Two-factor verification after a password sign-in reads the pending two-factor cookie. Each auth operation's `security` names the credentials it accepts. An API key inherits the creating user's permissions and a read or read-write scope. Session writes still require wallet verification. API keys skip that check.\n\nOmit the context headers to use the organisation default network, the session participant, and the organisation executor policy. Set `X-Chain-Id`, `X-Participant`, or `X-Executor` (`eoa` or `smart-wallet`) only when the request must override one of those defaults.\n\nSend `Idempotency-Key` to identify one mutation. Replay the API request only when its route documents replay safety. A successful replay-safe write echoes the effective key, including a server-generated UUIDv7 key when you omit the request header. After a lost response, inspect the original operation status before sending another mutation.\n\nMutations default to HTTP 202. Poll the `Location` URL, also returned as `statusUrl`, until the work reaches a terminal state. Send `Prefer: wait=N` (5 to 99 seconds) to wait synchronously, or `Prefer: respond-async, wait=N` to wait and then degrade to 202. Do not resubmit a mutation that already returned 202.\n\nList routes use the shared collection query: `filter`, `sort`, and `page`. Reads serve the Ledger Index unless a route says it is live.\n\nErrors use one envelope with `code`, `status`, `message`, and `data`. Read `data.id` for the stable DALP error id, `data.why` for the cause, and `data.fix` for the next action. Honour `data.retryable`. Include `data.requestId` and the `X-Request-Id` response header when you contact support.","license":{"name":"SETTLEMINT COMMERCIAL CUSTOMER SOURCE LICENSE","url":"https://github.com/settlemint/dalp/blob/main/LICENSE"}},"paths":{"/api/v2/sessions/{sessionId}":{"delete":{"tags":["Users"],"operationId":"auth.sessions.v2/user/adminRevokeSession","parameters":[{"name":"sessionId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"name":"Idempotency-Key","in":"header","schema":{"type":"string"},"required":false},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Confirmation that the session is no longer valid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SessionRevokeResponse"},"examples":{"example-1":{"value":{"data":{"success":true},"links":{"self":"/v2/sessions/0194a7d7-58e3-7f10-9c26-4b7d0e91a3f8"}}}}}},"headers":{}},"400":{"description":"This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","SESSION_REVOCATION_NOT_AUTHORIZED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","USER_SECURITY_TARGET_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"REQUEST_CHAIN_SYSTEM_REQUIRED","status":404,"message":"The organization has no deployed system on chain 1","data":{"id":"DALP-9524","why":"The active organization has no deployed system on its default network.","fix":"Deploy the organization system before using system-scoped APIs.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["AUTH_STORE_UNAVAILABLE","DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"AUTH_STORE_UNAVAILABLE","status":503,"message":"The authentication store did not answer","data":{"id":"DALP-12258","why":"A read or write against the session, account security, or API key store did not complete, or the store returned a row the account contract refuses.","fix":"Retry after a short wait. If the failure persists, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Ends one live session. The user must sign in again on that device. A session identifier the caller cannot see returns 404. Repeating the call after the session is already gone returns 404.","summary":"Revoke one session","x-dalp-auth":"session-or-api-key"}},"/api/v2/step-up-challenges":{"post":{"tags":["Account security"],"operationId":"auth.stepUpChallenges.v2/user/issueStepUpChallenge","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The challenge id to send in `X-Step-Up-Challenge`, and when it expires.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StepUpChallengeIssueResponse"},"examples":{"example-1":{"value":{"data":{"challengeId":"0199a1b2-7c3d-7e4f-8a5b-6c7d8e9f0a1b","expiresAt":"2026-09-28T12:05:00.000Z"},"links":{"self":"/v2/step-up-challenges"}}}}}},"headers":{}},"400":{"description":"This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_CHAIN_SYSTEM_REQUIRED","status":404,"message":"The organization has no deployed system on chain 1","data":{"id":"DALP-9524","why":"The active organization has no deployed system on its default network.","fix":"Deploy the organization system before using system-scoped APIs.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["AUTH_STORE_UNAVAILABLE","DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"AUTH_STORE_UNAVAILABLE","status":503,"message":"The authentication store did not answer","data":{"id":"DALP-12258","why":"A read or write against the session, account security, or API key store did not complete, or the store returned a row the account contract refuses.","fix":"Retry after a short wait. If the failure persists, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Issues a single-use challenge that authorizes one wallet-verified request by the caller in its current active organization: the named operation, on the named target, with a body whose digest matches `payloadDigest`. Compute the digest as the lowercase hex SHA-256 of the request body's canonical JSON, with object keys sorted, absent fields dropped, and the top-level `walletVerification` left out. Send the returned `challengeId` in the `X-Step-Up-Challenge` header of that request, together with the wallet verification code. A challenge expires after five minutes and is spent by the first request that presents it, whether or not that request succeeds, including a request that carries no verification code. Requires a signed-in session; API keys do not need a challenge.","summary":"Issue a step-up challenge","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletStepUpChallengeRequest"}}},"required":true},"x-dalp-auth":"session"}},"/api/v2/wallets":{"get":{"tags":["Wallets"],"operationId":"cantonV2.v2/wallets/list","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"family":{"anyOf":[{"type":"string","enum":["canton"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"cantonPartyId":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"participantId":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"networkId":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"signerWalletId":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","enum":["family","-family","cantonPartyId","-cantonPartyId","participantId","-participantId","networkId","-networkId","signerWalletId","-signerWalletId"]},"required":false}],"responses":{"200":{"description":"One page of custody-held wallets for the selected participant in the active organization. Canton party wallets currently populate this list. Sort defaults to cantonPartyId ascending. Repeating the request is safe.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/CantonPartyWallet"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"family":"canton","cantonPartyId":"Canton::1220abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123","participantId":"prt_northwind_ops","networkId":"canton-local","signerWalletId":"local:ed25519:canton-party-1"}],"meta":{"total":1},"links":{"self":"/v2/wallets?sort=cantonPartyId&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/wallets?sort=cantonPartyId&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/wallets?sort=cantonPartyId&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CANTON_APPROVAL_DECISION_FORBIDDEN","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_APPROVAL_DECISION_CONFLICT","CANTON_COMMAND_NO_LONGER_APPLIES","CANTON_SETTLEMENT_BATCH_NOT_COVERABLE","CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CANTON_APPROVAL_DECISION_CONFLICT","status":409,"message":"The Canton command already has a different approval decision","data":{"id":"DALP-12231","why":"This Canton command intent already has a terminal approval decision, and the new decision differs from it.","fix":"Read the submission and keep its recorded approval decision.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_ALLOCATION_REQUEST_EXPIRED","CANTON_APPROVAL_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"CANTON_ALLOCATION_REQUEST_EXPIRED","status":410,"message":"The Canton allocation request expired","data":{"id":"DALP-12230","why":"The settlement allocation request passed its execution window before the allocation was made, so the platform cannot allocate against it.","fix":"Create a new allocation request with an execution window that has not passed.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_NETWORK_NOT_CONFIGURED","CANTON_NETWORK_NOT_ENABLED","CANTON_SUBMISSION_REJECTED","CONTRACT_ERROR"]}},"required":["code"]}],"examples":[{"code":"CANTON_NETWORK_NOT_CONFIGURED","status":422,"message":"No Canton participant network is configured","data":{"id":"DALP-9313","why":"This deployment has no Canton participant network, so the platform cannot allocate a party or submit a DAML command.","fix":"Ask an operator to add a Canton network to the platform configuration, then retry.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_CAPABILITY_UNAVAILABLE","DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"CANTON_CAPABILITY_UNAVAILABLE","status":503,"message":"A required Canton capability is unavailable","data":{"id":"DALP-12233","why":"The Canton participant or a service it depends on did not provide a capability this operation needs, so the platform did not complete the request.","fix":"Retry later. If the refusal persists, ask an operator to restore the Canton participant connection.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of custody-held wallets for the selected participant in the active organization. Canton party wallets currently populate this list. Sort defaults to cantonPartyId ascending. Filter on family, party id, participant id, network id, or signer wallet id. Repeating the request is safe.","summary":"List wallets","x-dalp-auth":"session-or-api-key"},"post":{"tags":["Wallets"],"operationId":"cantonV2.v2/wallets/create","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous mutation result (HTTP 200). The write settled within the request wait window. `data` is the resulting resource, `meta.txHashes` lists submitted transactions, and `links.self` is the resource URL.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/WalletCreateOutput"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"family":"canton","allocationId":"allocation-example","cantonPartyId":"dalp-party::1220abcd","signerWalletId":"signer-wallet-example"},"meta":{"txHashes":["0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants"}}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false}}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false},"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CANTON_APPROVAL_DECISION_FORBIDDEN","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_APPROVAL_DECISION_CONFLICT","CANTON_COMMAND_NO_LONGER_APPLIES","CANTON_SETTLEMENT_BATCH_NOT_COVERABLE","CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CANTON_APPROVAL_DECISION_CONFLICT","status":409,"message":"The Canton command already has a different approval decision","data":{"id":"DALP-12231","why":"This Canton command intent already has a terminal approval decision, and the new decision differs from it.","fix":"Read the submission and keep its recorded approval decision.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_ALLOCATION_REQUEST_EXPIRED","CANTON_APPROVAL_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"CANTON_ALLOCATION_REQUEST_EXPIRED","status":410,"message":"The Canton allocation request expired","data":{"id":"DALP-12230","why":"The settlement allocation request passed its execution window before the allocation was made, so the platform cannot allocate against it.","fix":"Create a new allocation request with an execution window that has not passed.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_NETWORK_NOT_CONFIGURED","CANTON_NETWORK_NOT_ENABLED","CANTON_SUBMISSION_REJECTED","CONTRACT_ERROR"]}},"required":["code"]}],"examples":[{"code":"CANTON_NETWORK_NOT_CONFIGURED","status":422,"message":"No Canton participant network is configured","data":{"id":"DALP-9313","why":"This deployment has no Canton participant network, so the platform cannot allocate a party or submit a DAML command.","fix":"Ask an operator to add a Canton network to the platform configuration, then retry.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_CAPABILITY_UNAVAILABLE","DALP-0083","SESSION_RESOLUTION_FAILED","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"CANTON_CAPABILITY_UNAVAILABLE","status":503,"message":"A required Canton capability is unavailable","data":{"id":"DALP-12233","why":"The Canton participant or a service it depends on did not provide a capability this operation needs, so the platform did not complete the request.","fix":"Retry later. If the refusal persists, ask an operator to restore the Canton participant connection.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Creates a custody-held wallet. Family canton allocates a Canton external party whose topology is signed automatically by the organization's custody-held Ed25519 key. A finished allocation returns 200. Background work and existing-signer approval return 202 with a status URL; the allocation status exposes the lifecycle request to approve.","summary":"Create a wallet","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"family":{"type":"string","enum":["canton"]},"providerConfigurationId":{"$ref":"#/components/schemas/CustodyProviderConfigurationId"},"networkId":{"$ref":"#/components/schemas/NetworkId"},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["family","providerConfigurationId"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/wallets/{walletId}":{"get":{"tags":["Wallets"],"operationId":"cantonV2.v2/wallets/read","parameters":[{"name":"walletId","in":"path","schema":{"type":"string","minLength":1,"description":"Canton external party identifier"},"required":true}],"responses":{"200":{"description":"Single-resource envelope. `data` is the item. `links.self` is its canonical URL. Used for reads and for mutations that return the resource immediately.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CantonPartyWallet"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"family":"canton","cantonPartyId":"dalp-party::1220abcd","participantId":"participant-example","networkId":"canton-local","signerWalletId":"signer-wallet-example"},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants"}}}}}}},"400":{"description":"This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CANTON_APPROVAL_DECISION_FORBIDDEN","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_APPROVAL_DECISION_CONFLICT","CANTON_COMMAND_NO_LONGER_APPLIES","CANTON_SETTLEMENT_BATCH_NOT_COVERABLE","CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CANTON_APPROVAL_DECISION_CONFLICT","status":409,"message":"The Canton command already has a different approval decision","data":{"id":"DALP-12231","why":"This Canton command intent already has a terminal approval decision, and the new decision differs from it.","fix":"Read the submission and keep its recorded approval decision.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_ALLOCATION_REQUEST_EXPIRED","CANTON_APPROVAL_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"CANTON_ALLOCATION_REQUEST_EXPIRED","status":410,"message":"The Canton allocation request expired","data":{"id":"DALP-12230","why":"The settlement allocation request passed its execution window before the allocation was made, so the platform cannot allocate against it.","fix":"Create a new allocation request with an execution window that has not passed.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_NETWORK_NOT_CONFIGURED","CANTON_NETWORK_NOT_ENABLED","CANTON_SUBMISSION_REJECTED","CONTRACT_ERROR"]}},"required":["code"]}],"examples":[{"code":"CANTON_NETWORK_NOT_CONFIGURED","status":422,"message":"No Canton participant network is configured","data":{"id":"DALP-9313","why":"This deployment has no Canton participant network, so the platform cannot allocate a party or submit a DAML command.","fix":"Ask an operator to add a Canton network to the platform configuration, then retry.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_CAPABILITY_UNAVAILABLE","DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"CANTON_CAPABILITY_UNAVAILABLE","status":503,"message":"A required Canton capability is unavailable","data":{"id":"DALP-12233","why":"The Canton participant or a service it depends on did not provide a capability this operation needs, so the platform did not complete the request.","fix":"Retry later. If the refusal persists, ask an operator to restore the Canton participant connection.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one custody-held wallet in the active organization. For a Canton party wallet the identifier is the external party id. A wallet that belongs to another organization answers the same not-found response as a missing wallet.","summary":"Read a wallet","x-dalp-auth":"session-or-api-key"}},"/api/v2/wallets/allocations/{allocationId}":{"get":{"tags":["Wallets"],"operationId":"cantonV2.v2/wallets/allocations/read","parameters":[{"name":"allocationId","in":"path","schema":{"type":"string","minLength":1},"required":true}],"responses":{"200":{"description":"Single-resource envelope. `data` is the item. `links.self` is its canonical URL. Used for reads and for mutations that return the resource immediately.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CantonAllocationView"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"family":"canton","allocationId":"allocation-example","status":"registered","cantonPartyId":"dalp-party::1220abcd","signerWalletId":"signer-wallet-example"},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants"}}}}}}},"400":{"description":"This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CANTON_APPROVAL_DECISION_FORBIDDEN","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_APPROVAL_DECISION_CONFLICT","CANTON_COMMAND_NO_LONGER_APPLIES","CANTON_SETTLEMENT_BATCH_NOT_COVERABLE","CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CANTON_APPROVAL_DECISION_CONFLICT","status":409,"message":"The Canton command already has a different approval decision","data":{"id":"DALP-12231","why":"This Canton command intent already has a terminal approval decision, and the new decision differs from it.","fix":"Read the submission and keep its recorded approval decision.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_ALLOCATION_REQUEST_EXPIRED","CANTON_APPROVAL_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"CANTON_ALLOCATION_REQUEST_EXPIRED","status":410,"message":"The Canton allocation request expired","data":{"id":"DALP-12230","why":"The settlement allocation request passed its execution window before the allocation was made, so the platform cannot allocate against it.","fix":"Create a new allocation request with an execution window that has not passed.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_NETWORK_NOT_CONFIGURED","CANTON_NETWORK_NOT_ENABLED","CANTON_SUBMISSION_REJECTED","CONTRACT_ERROR"]}},"required":["code"]}],"examples":[{"code":"CANTON_NETWORK_NOT_CONFIGURED","status":422,"message":"No Canton participant network is configured","data":{"id":"DALP-9313","why":"This deployment has no Canton participant network, so the platform cannot allocate a party or submit a DAML command.","fix":"Ask an operator to add a Canton network to the platform configuration, then retry.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_CAPABILITY_UNAVAILABLE","DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"CANTON_CAPABILITY_UNAVAILABLE","status":503,"message":"A required Canton capability is unavailable","data":{"id":"DALP-12233","why":"The Canton participant or a service it depends on did not provide a capability this operation needs, so the platform did not complete the request.","fix":"Retry later. If the refusal persists, ask an operator to restore the Canton participant connection.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the durable allocation that creates a Canton party wallet. Use the allocation id from the 202 accept body. When status is awaiting-existing-approval, use lifecycleRequestId with the custody-account approval flow. An allocation of another organization answers the same not-found response as a missing allocation.","summary":"Read a wallet allocation","x-dalp-auth":"session-or-api-key"}},"/api/v2/wallets/{walletId}/submissions":{"post":{"tags":["Wallets"],"operationId":"cantonV2.v2/wallets/submissions/create","parameters":[{"name":"walletId","in":"path","schema":{"type":"string","minLength":1,"description":"Canton external party identifier"},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous mutation result (HTTP 200). The write settled within the request wait window. `data` is the resulting resource, `meta.txHashes` lists submitted transactions, and `links.self` is the resource URL.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CantonSubmissionCreateOutput"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"submissionId":"submission-example","ledgerSubmissionId":"canton-ledger-sub-1","preparedHashHex":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"},"meta":{"txHashes":["0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants"}}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false}}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false},"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CANTON_APPROVAL_DECISION_FORBIDDEN","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_APPROVAL_DECISION_CONFLICT","CANTON_COMMAND_NO_LONGER_APPLIES","CANTON_SETTLEMENT_BATCH_NOT_COVERABLE","CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CANTON_APPROVAL_DECISION_CONFLICT","status":409,"message":"The Canton command already has a different approval decision","data":{"id":"DALP-12231","why":"This Canton command intent already has a terminal approval decision, and the new decision differs from it.","fix":"Read the submission and keep its recorded approval decision.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_ALLOCATION_REQUEST_EXPIRED","CANTON_APPROVAL_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"CANTON_ALLOCATION_REQUEST_EXPIRED","status":410,"message":"The Canton allocation request expired","data":{"id":"DALP-12230","why":"The settlement allocation request passed its execution window before the allocation was made, so the platform cannot allocate against it.","fix":"Create a new allocation request with an execution window that has not passed.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_NETWORK_NOT_CONFIGURED","CANTON_NETWORK_NOT_ENABLED","CANTON_SUBMISSION_REJECTED","CONTRACT_ERROR"]}},"required":["code"]}],"examples":[{"code":"CANTON_NETWORK_NOT_CONFIGURED","status":422,"message":"No Canton participant network is configured","data":{"id":"DALP-9313","why":"This deployment has no Canton participant network, so the platform cannot allocate a party or submit a DAML command.","fix":"Ask an operator to add a Canton network to the platform configuration, then retry.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_CAPABILITY_UNAVAILABLE","DALP-0083","SESSION_RESOLUTION_FAILED","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"CANTON_CAPABILITY_UNAVAILABLE","status":503,"message":"A required Canton capability is unavailable","data":{"id":"DALP-12233","why":"The Canton participant or a service it depends on did not provide a capability this operation needs, so the platform did not complete the request.","fix":"Retry later. If the refusal persists, ask an operator to restore the Canton participant connection.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Submits a hand-built DAML command for a custody-held Canton party wallet through interactive submission. This is the escape hatch, not the ordinary write path: the caller supplies the template id, the choice name and the argument record itself, so a command that names them wrongly is refused by the ledger rather than by this platform. Reach for it only for a choice the platform does not yet model as a typed operation. For token issuance, burning, transfer, transfer acceptance and holding unlock, use the typed Canton token operations on the family-aware token collections under /api/v2/tokens/{assetId}, which state the operation in business terms and build the Daml themselves; for delivery-versus-payment use the XvP writes at /api/v2/addons/xvp-settlements, /api/v2/addons/xvp-settlements/{settlementAddress}/approvals and /api/v2/addons/xvp-settlements/{settlementAddress}/executions. When approval is required, the platform authorizes the command intent and re-prepares a fresh hash after approval. A settled command returns 200. When the platform accepts the work and finishes it in the background, the response is 202 with a status URL.","summary":"Submit a DAML command (escape hatch)","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"command":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/CantonJsonValue"}},"networkId":{"$ref":"#/components/schemas/NetworkId"},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["command"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/wallets/submissions/{submissionId}/decision":{"post":{"tags":["Wallets"],"operationId":"cantonV2.v2/wallets/submissions/decision","parameters":[{"name":"submissionId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The recorded approval decision for a Canton command submission.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CantonSubmissionApprovalDecisionOutput"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"submissionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","approvalStatus":"approved"},"links":{"self":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CANTON_APPROVAL_DECISION_FORBIDDEN","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_APPROVAL_DECISION_CONFLICT","CANTON_COMMAND_NO_LONGER_APPLIES","CANTON_SETTLEMENT_BATCH_NOT_COVERABLE","CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CANTON_APPROVAL_DECISION_CONFLICT","status":409,"message":"The Canton command already has a different approval decision","data":{"id":"DALP-12231","why":"This Canton command intent already has a terminal approval decision, and the new decision differs from it.","fix":"Read the submission and keep its recorded approval decision.","retryable":false,"category":"domain"}}]}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_ALLOCATION_REQUEST_EXPIRED","CANTON_APPROVAL_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"CANTON_ALLOCATION_REQUEST_EXPIRED","status":410,"message":"The Canton allocation request expired","data":{"id":"DALP-12230","why":"The settlement allocation request passed its execution window before the allocation was made, so the platform cannot allocate against it.","fix":"Create a new allocation request with an execution window that has not passed.","retryable":false,"category":"domain"}}]}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_NETWORK_NOT_CONFIGURED","CANTON_NETWORK_NOT_ENABLED","CANTON_SUBMISSION_REJECTED","CONTRACT_ERROR"]}},"required":["code"]}],"examples":[{"code":"CANTON_NETWORK_NOT_CONFIGURED","status":422,"message":"No Canton participant network is configured","data":{"id":"DALP-9313","why":"This deployment has no Canton participant network, so the platform cannot allocate a party or submit a DAML command.","fix":"Ask an operator to add a Canton network to the platform configuration, then retry.","retryable":false,"category":"domain"}}]}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_CAPABILITY_UNAVAILABLE","DALP-0083","SESSION_RESOLUTION_FAILED","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"CANTON_CAPABILITY_UNAVAILABLE","status":503,"message":"A required Canton capability is unavailable","data":{"id":"DALP-12233","why":"The Canton participant or a service it depends on did not provide a capability this operation needs, so the platform did not complete the request.","fix":"Retry later. If the refusal persists, ask an operator to restore the Canton participant connection.","retryable":true,"category":"dependency"}}]}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Records an organization-owner or platform-administrator approval decision, then idempotently signals the durable Canton submission. Repeating the same decision is safe.","summary":"Decide a DAML command intent","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CantonSubmissionApprovalDecisionInput"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/system/compliance-modules":{"get":{"tags":["Compliance rules"],"operationId":"complianceModulesV2.complianceModulesList","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"module":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"name":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"typeId":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"The compliance modules on the active system, with the total match count, facet counts for the filterable columns, and links to the adjacent pages.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/RegisteredComplianceModule"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"moduleAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","registryAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","typeId":"country-block-list-v2","name":"country-block-list-v2","globalConfigs":[{"moduleAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","typeId":"push-airdrop","name":"Core holdings","parameters":{"addresses":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"],"countries":[0],"capped":{"maxSupply":"1"},"collateral":{"proofTopic":"1","ratioBps":0,"trustedIssuers":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"tokenSupplyLimit":{"maxSupply":"1","periodLength":0,"rolling":false,"useBasePrice":false,"global":false},"capitalRaiseLimit":{"maxSupply":"1","periodLength":0,"rolling":false,"priceResolver":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","priceTopicId":"1"},"issuanceVolumeLimit":{"maxSupply":"1","periodLength":0,"rolling":false},"minimumHolding":{"minimumHolding":"1","exemptWallets":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"claimExpiry":{"topics":["1"],"gracePeriod":0,"requireExpiry":false},"investorCount":{"maxInvestors":0,"global":false,"countryCodes":[0],"countryLimits":[0],"topicFilter":[{"nodeType":0,"value":"1000000000000000000"}]},"investorCountV2":{"maxInvestors":0,"countingPolicy":"lifetime","countryCodes":[0],"countryLimits":[0]},"identityCount":{"maxInvestors":0,"countingPolicy":"lifetime","countryCodes":[0],"countryLimits":[0]},"timeLock":{"holdPeriod":0,"allowExemptions":false,"exemptionExpression":[{"nodeType":0,"value":"1000000000000000000"}]},"transferApproval":{"approvalAuthorities":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"],"allowExemptions":false,"oneTimeUse":false,"approvalMode":0,"exemptionExpression":[{"nodeType":0,"value":"1000000000000000000"}],"approvalExpiry":0},"identityVerification":[{"nodeType":0,"value":"1000000000000000000"}]},"scope":{"executionMode":0,"senderInclusion":[{"nodeType":0,"value":"EUR"}],"senderExemption":[{"nodeType":0,"value":"EUR"}],"receiverInclusion":[{"nodeType":0,"value":"EUR"}],"receiverExemption":[{"nodeType":0,"value":"EUR"}],"tokenInclusion":[{"nodeType":0,"value":"EUR"}],"tokenExemption":[{"nodeType":0,"value":"EUR"}],"senderCountryInclusion":[0],"senderCountryExclusion":[0],"receiverCountryInclusion":[0],"receiverCountryExclusion":[0]},"active":true,"isV2":false}]}],"meta":{"total":1,"facets":{}},"links":{"self":"/v2/system/compliance-modules?sort=name&page%5Boffset%5D=0&page%5Blimit%5D=20","first":"/v2/system/compliance-modules?sort=name&page%5Boffset%5D=0&page%5Blimit%5D=20","prev":null,"next":null,"last":"/v2/system/compliance-modules?sort=name&page%5Boffset%5D=0&page%5Blimit%5D=20"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"compliance.expression.NOT_NARROWED","status":422,"message":"The compliance expression is too broad to enforce","data":{"id":"DALP-12287","why":"The compliance expression has no positive condition that narrows who it admits.","fix":"Add a positive condition, or acknowledge the allowed warning.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","compliance.executor.DEPENDENCY_UNAVAILABLE","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"compliance.executor.DEPENDENCY_UNAVAILABLE","status":503,"message":"Compliance authorization temporarily unavailable","data":{"id":"DALP-12268","why":"The custody account directory did not resolve the executor needed to check this caller's compliance role.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the compliance modules that the active system's module registry holds, with the global bindings installed for each one. Filter by module address, name, or type identifier, sort by name or type identifier, and page through the result with an offset and a limit. When the active system has no compliance engine or module registry yet, you get an empty collection rather than an error.","summary":"List registered compliance modules","x-dalp-auth":"session-or-api-key"},"post":{"tags":["Compliance rules"],"operationId":"complianceModulesV2.complianceModulesCreate","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The platform accepted the mutation. By default the response carries the updated system and the transaction hashes the mutation produced. When you ask for asynchronous processing through the `Transaction-Preference` header, the response instead carries a transaction identifier, its current state, and a status URL to poll, and the platform answers 202 Accepted.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ComplianceModuleRegistryReadback"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"modules":[{"moduleAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","registryAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","typeId":"push-airdrop","name":"Core holdings","globalConfigs":[{"moduleAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","typeId":"push-airdrop","name":"Core holdings","parameters":{"addresses":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"],"countries":[0],"capped":{"maxSupply":"1"},"collateral":{"proofTopic":"1","ratioBps":0,"trustedIssuers":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"tokenSupplyLimit":{"maxSupply":"1","periodLength":0,"rolling":false,"useBasePrice":false,"global":false},"capitalRaiseLimit":{"maxSupply":"1","periodLength":0,"rolling":false,"priceResolver":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","priceTopicId":"1"},"issuanceVolumeLimit":{"maxSupply":"1","periodLength":0,"rolling":false},"minimumHolding":{"minimumHolding":"1","exemptWallets":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"claimExpiry":{"topics":["1"],"gracePeriod":0,"requireExpiry":false},"investorCount":{"maxInvestors":0,"global":false,"countryCodes":[0],"countryLimits":[0],"topicFilter":[{"nodeType":0,"value":"1000000000000000000"}]},"investorCountV2":{"maxInvestors":0,"countingPolicy":"lifetime","countryCodes":[0],"countryLimits":[0]},"identityCount":{"maxInvestors":0,"countingPolicy":"lifetime","countryCodes":[0],"countryLimits":[0]},"timeLock":{"holdPeriod":0,"allowExemptions":false,"exemptionExpression":[{"nodeType":0,"value":"1000000000000000000"}]},"transferApproval":{"approvalAuthorities":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"],"allowExemptions":false,"oneTimeUse":false,"approvalMode":0,"exemptionExpression":[{"nodeType":0,"value":"1000000000000000000"}],"approvalExpiry":0},"identityVerification":[{"nodeType":0,"value":"1000000000000000000"}]},"scope":{"executionMode":0,"senderInclusion":[{"nodeType":0,"value":"EUR"}],"senderExemption":[{"nodeType":0,"value":"EUR"}],"receiverInclusion":[{"nodeType":0,"value":"EUR"}],"receiverExemption":[{"nodeType":0,"value":"EUR"}],"tokenInclusion":[{"nodeType":0,"value":"EUR"}],"tokenExemption":[{"nodeType":0,"value":"EUR"}],"senderCountryInclusion":[0],"senderCountryExclusion":[0],"receiverCountryInclusion":[0],"receiverCountryExclusion":[0]},"active":true,"isV2":false}]}]},"meta":{"txHashes":["0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/v2/system/compliance-modules"}}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false}}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false},"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"compliance.expression.NOT_NARROWED","status":422,"message":"The compliance expression is too broad to enforce","data":{"id":"DALP-12287","why":"The compliance expression has no positive condition that narrows who it admits.","fix":"Add a positive condition, or acknowledge the allowed warning.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.DEPENDENCY_UNAVAILABLE","status":503,"message":"KYC data temporarily unavailable","data":{"id":"DALP-12248","why":"A store the KYC or user profile route reads did not answer, so the route could not complete. `data.dependency` names the store.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header and `data.dependency`.","retryable":true,"category":"dependency","dependency":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Registers module implementations on the active system's module registry, so that later requests can install and configure bindings for them. Send `all` to register every implementation the indexed module directory reports, or send one configuration or an array of configurations to pick the types you want. The platform skips types the registry already holds, so repeating the request adds only the types it still lacks. You need the system manager role.","summary":"Register compliance module implementations","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemComplianceModuleCreateBody"}}},"required":true},"x-dalp-auth":"session-or-api-key"},"delete":{"tags":["Compliance rules"],"operationId":"complianceModulesV2.complianceModulesUninstall","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The platform accepted the mutation. By default the response carries the updated system and the transaction hashes the mutation produced. When you ask for asynchronous processing through the `Transaction-Preference` header, the response instead carries a transaction identifier, its current state, and a status URL to poll, and the platform answers 202 Accepted.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ComplianceModuleRegistryReadback"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"modules":[{"moduleAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","registryAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","typeId":"push-airdrop","name":"Core holdings","globalConfigs":[{"moduleAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","typeId":"push-airdrop","name":"Core holdings","parameters":{"addresses":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"],"countries":[0],"capped":{"maxSupply":"1"},"collateral":{"proofTopic":"1","ratioBps":0,"trustedIssuers":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"tokenSupplyLimit":{"maxSupply":"1","periodLength":0,"rolling":false,"useBasePrice":false,"global":false},"capitalRaiseLimit":{"maxSupply":"1","periodLength":0,"rolling":false,"priceResolver":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","priceTopicId":"1"},"issuanceVolumeLimit":{"maxSupply":"1","periodLength":0,"rolling":false},"minimumHolding":{"minimumHolding":"1","exemptWallets":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"claimExpiry":{"topics":["1"],"gracePeriod":0,"requireExpiry":false},"investorCount":{"maxInvestors":0,"global":false,"countryCodes":[0],"countryLimits":[0],"topicFilter":[{"nodeType":0,"value":"1000000000000000000"}]},"investorCountV2":{"maxInvestors":0,"countingPolicy":"lifetime","countryCodes":[0],"countryLimits":[0]},"identityCount":{"maxInvestors":0,"countingPolicy":"lifetime","countryCodes":[0],"countryLimits":[0]},"timeLock":{"holdPeriod":0,"allowExemptions":false,"exemptionExpression":[{"nodeType":0,"value":"1000000000000000000"}]},"transferApproval":{"approvalAuthorities":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"],"allowExemptions":false,"oneTimeUse":false,"approvalMode":0,"exemptionExpression":[{"nodeType":0,"value":"1000000000000000000"}],"approvalExpiry":0},"identityVerification":[{"nodeType":0,"value":"1000000000000000000"}]},"scope":{"executionMode":0,"senderInclusion":[{"nodeType":0,"value":"EUR"}],"senderExemption":[{"nodeType":0,"value":"EUR"}],"receiverInclusion":[{"nodeType":0,"value":"EUR"}],"receiverExemption":[{"nodeType":0,"value":"EUR"}],"tokenInclusion":[{"nodeType":0,"value":"EUR"}],"tokenExemption":[{"nodeType":0,"value":"EUR"}],"senderCountryInclusion":[0],"senderCountryExclusion":[0],"receiverCountryInclusion":[0],"receiverCountryExclusion":[0]},"active":true,"isV2":false}]}]},"meta":{"txHashes":["0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/v2/system/compliance-modules"}}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false}}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false},"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"compliance.expression.NOT_NARROWED","status":422,"message":"The compliance expression is too broad to enforce","data":{"id":"DALP-12287","why":"The compliance expression has no positive condition that narrows who it admits.","fix":"Add a positive condition, or acknowledge the allowed warning.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.DEPENDENCY_UNAVAILABLE","status":503,"message":"KYC data temporarily unavailable","data":{"id":"DALP-12248","why":"A store the KYC or user profile route reads did not answer, so the route could not complete. `data.dependency` names the store.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header and `data.dependency`.","retryable":true,"category":"dependency","dependency":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Removes a global binding from the active system, so the compliance engine stops evaluating that module for the tokens bound to the system. Identify the binding by its module contract address, and add the on-chain instance address when the module type carries more than one binding. You can uninstall a disabled binding. You need the compliance manager role.","summary":"Uninstall a global compliance module binding","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemComplianceModuleUninstallBody"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/system/compliance-modules/{moduleAddress}":{"get":{"tags":["Compliance rules"],"operationId":"complianceModulesV2.complianceModulesRead","parameters":[{"name":"moduleAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true}],"responses":{"200":{"description":"The registered compliance module with its registry, type identifier, name, and global bindings.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/RegisteredComplianceModule"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"moduleAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","registryAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","typeId":"push-airdrop","name":"Core holdings","globalConfigs":[{"moduleAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","typeId":"push-airdrop","name":"Core holdings","parameters":{"addresses":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"],"countries":[0],"capped":{"maxSupply":"1"},"collateral":{"proofTopic":"1","ratioBps":0,"trustedIssuers":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"tokenSupplyLimit":{"maxSupply":"1","periodLength":0,"rolling":false,"useBasePrice":false,"global":false},"capitalRaiseLimit":{"maxSupply":"1","periodLength":0,"rolling":false,"priceResolver":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","priceTopicId":"1"},"issuanceVolumeLimit":{"maxSupply":"1","periodLength":0,"rolling":false},"minimumHolding":{"minimumHolding":"1","exemptWallets":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"claimExpiry":{"topics":["1"],"gracePeriod":0,"requireExpiry":false},"investorCount":{"maxInvestors":0,"global":false,"countryCodes":[0],"countryLimits":[0],"topicFilter":[{"nodeType":0,"value":"1000000000000000000"}]},"investorCountV2":{"maxInvestors":0,"countingPolicy":"lifetime","countryCodes":[0],"countryLimits":[0]},"identityCount":{"maxInvestors":0,"countingPolicy":"lifetime","countryCodes":[0],"countryLimits":[0]},"timeLock":{"holdPeriod":0,"allowExemptions":false,"exemptionExpression":[{"nodeType":0,"value":"1000000000000000000"}]},"transferApproval":{"approvalAuthorities":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"],"allowExemptions":false,"oneTimeUse":false,"approvalMode":0,"exemptionExpression":[{"nodeType":0,"value":"1000000000000000000"}],"approvalExpiry":0},"identityVerification":[{"nodeType":0,"value":"1000000000000000000"}]},"scope":{"executionMode":0,"senderInclusion":[{"nodeType":0,"value":"EUR"}],"senderExemption":[{"nodeType":0,"value":"EUR"}],"receiverInclusion":[{"nodeType":0,"value":"EUR"}],"receiverExemption":[{"nodeType":0,"value":"EUR"}],"tokenInclusion":[{"nodeType":0,"value":"EUR"}],"tokenExemption":[{"nodeType":0,"value":"EUR"}],"senderCountryInclusion":[0],"senderCountryExclusion":[0],"receiverCountryInclusion":[0],"receiverCountryExclusion":[0]},"active":true,"isV2":false}]},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"compliance.expression.NOT_NARROWED","status":422,"message":"The compliance expression is too broad to enforce","data":{"id":"DALP-12287","why":"The compliance expression has no positive condition that narrows who it admits.","fix":"Add a positive condition, or acknowledge the allowed warning.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","compliance.executor.DEPENDENCY_UNAVAILABLE","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"compliance.executor.DEPENDENCY_UNAVAILABLE","status":503,"message":"Compliance authorization temporarily unavailable","data":{"id":"DALP-12268","why":"The custody account directory did not resolve the executor needed to check this caller's compliance role.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the compliance module registered at the address in the path, with the registry that holds it, its module type identifier, its name, and the system compliance engine's own bindings of that type (its global controls) with their parameters, scope, and status. Type and name are null when the registry does not record them. Repeating the request is safe.","summary":"Read a registered compliance module","x-dalp-auth":"session-or-api-key"}},"/api/v2/compliance-module-instances":{"get":{"tags":["Compliance rules"],"operationId":"complianceModulesV2.complianceModuleInstancesList","parameters":[],"responses":{"200":{"description":"One page of compliance module types with their implementation address and archive flag.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ComplianceModuleInstance"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"typeId":"push-airdrop","currentImplementation":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","archived":false}],"meta":{"total":1,"facets":{}},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants","first":"/v2/accounts?sort=-firstSeenBlock&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/accounts?sort=-firstSeenBlock&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"compliance.expression.NOT_NARROWED","status":422,"message":"The compliance expression is too broad to enforce","data":{"id":"DALP-12287","why":"The compliance expression has no positive condition that narrows who it admits.","fix":"Add a positive condition, or acknowledge the allowed warning.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","compliance.executor.DEPENDENCY_UNAVAILABLE","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"compliance.executor.DEPENDENCY_UNAVAILABLE","status":503,"message":"Compliance authorization temporarily unavailable","data":{"id":"DALP-12268","why":"The custody account directory did not resolve the executor needed to check this caller's compliance role.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of the compliance module types registered for the active organization, each with its current implementation address and whether it is archived. Repeating the request is safe.","summary":"List compliance module instances","x-dalp-auth":"session-or-api-key"}},"/api/v2/system/compliance-modules/configure":{"post":{"tags":["Compliance rules"],"operationId":"complianceModulesV2.complianceModulesConfigure","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The platform accepted the mutation. By default the response carries the updated system and the transaction hashes the mutation produced. When you ask for asynchronous processing through the `Transaction-Preference` header, the response instead carries a transaction identifier, its current state, and a status URL to poll, and the platform answers 202 Accepted.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ComplianceModuleRegistryReadback"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"modules":[{"moduleAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","registryAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","typeId":"push-airdrop","name":"Core holdings","globalConfigs":[{"moduleAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","typeId":"push-airdrop","name":"Core holdings","parameters":{"addresses":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"],"countries":[0],"capped":{"maxSupply":"1"},"collateral":{"proofTopic":"1","ratioBps":0,"trustedIssuers":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"tokenSupplyLimit":{"maxSupply":"1","periodLength":0,"rolling":false,"useBasePrice":false,"global":false},"capitalRaiseLimit":{"maxSupply":"1","periodLength":0,"rolling":false,"priceResolver":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","priceTopicId":"1"},"issuanceVolumeLimit":{"maxSupply":"1","periodLength":0,"rolling":false},"minimumHolding":{"minimumHolding":"1","exemptWallets":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"claimExpiry":{"topics":["1"],"gracePeriod":0,"requireExpiry":false},"investorCount":{"maxInvestors":0,"global":false,"countryCodes":[0],"countryLimits":[0],"topicFilter":[{"nodeType":0,"value":"1000000000000000000"}]},"investorCountV2":{"maxInvestors":0,"countingPolicy":"lifetime","countryCodes":[0],"countryLimits":[0]},"identityCount":{"maxInvestors":0,"countingPolicy":"lifetime","countryCodes":[0],"countryLimits":[0]},"timeLock":{"holdPeriod":0,"allowExemptions":false,"exemptionExpression":[{"nodeType":0,"value":"1000000000000000000"}]},"transferApproval":{"approvalAuthorities":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"],"allowExemptions":false,"oneTimeUse":false,"approvalMode":0,"exemptionExpression":[{"nodeType":0,"value":"1000000000000000000"}],"approvalExpiry":0},"identityVerification":[{"nodeType":0,"value":"1000000000000000000"}]},"scope":{"executionMode":0,"senderInclusion":[{"nodeType":0,"value":"EUR"}],"senderExemption":[{"nodeType":0,"value":"EUR"}],"receiverInclusion":[{"nodeType":0,"value":"EUR"}],"receiverExemption":[{"nodeType":0,"value":"EUR"}],"tokenInclusion":[{"nodeType":0,"value":"EUR"}],"tokenExemption":[{"nodeType":0,"value":"EUR"}],"senderCountryInclusion":[0],"senderCountryExclusion":[0],"receiverCountryInclusion":[0],"receiverCountryExclusion":[0]},"active":true,"isV2":false}]}]},"meta":{"txHashes":["0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/v2/system/compliance-modules"}}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false}}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false},"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"compliance.expression.NOT_NARROWED","status":422,"message":"The compliance expression is too broad to enforce","data":{"id":"DALP-12287","why":"The compliance expression has no positive condition that narrows who it admits.","fix":"Add a positive condition, or acknowledge the allowed warning.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.DEPENDENCY_UNAVAILABLE","status":503,"message":"KYC data temporarily unavailable","data":{"id":"DALP-12248","why":"A store the KYC or user profile route reads did not answer, so the route could not complete. `data.dependency` names the store.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header and `data.dependency`.","retryable":true,"category":"dependency","dependency":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Installs a global binding when you omit the instance address, and replaces the parameters of the binding at that address when you send one. The platform refuses a second binding for a type that already carries one, so send the instance address to reconfigure the existing binding instead. Reconfiguring needs an enabled binding, and the parameters of a `capital-raise-limit` binding stay fixed once you install it. You need the compliance manager role.","summary":"Install or reconfigure a global compliance module","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemComplianceModuleConfigureBody"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/system/compliance-modules/scope":{"post":{"tags":["Compliance rules"],"operationId":"complianceModulesV2.complianceModulesSetScope","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The platform accepted the mutation. By default the response carries the updated system and the transaction hashes the mutation produced. When you ask for asynchronous processing through the `Transaction-Preference` header, the response instead carries a transaction identifier, its current state, and a status URL to poll, and the platform answers 202 Accepted.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ComplianceModuleRegistryReadback"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"modules":[{"moduleAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","registryAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","typeId":"push-airdrop","name":"Core holdings","globalConfigs":[{"moduleAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","typeId":"push-airdrop","name":"Core holdings","parameters":{"addresses":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"],"countries":[0],"capped":{"maxSupply":"1"},"collateral":{"proofTopic":"1","ratioBps":0,"trustedIssuers":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"tokenSupplyLimit":{"maxSupply":"1","periodLength":0,"rolling":false,"useBasePrice":false,"global":false},"capitalRaiseLimit":{"maxSupply":"1","periodLength":0,"rolling":false,"priceResolver":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","priceTopicId":"1"},"issuanceVolumeLimit":{"maxSupply":"1","periodLength":0,"rolling":false},"minimumHolding":{"minimumHolding":"1","exemptWallets":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"claimExpiry":{"topics":["1"],"gracePeriod":0,"requireExpiry":false},"investorCount":{"maxInvestors":0,"global":false,"countryCodes":[0],"countryLimits":[0],"topicFilter":[{"nodeType":0,"value":"1000000000000000000"}]},"investorCountV2":{"maxInvestors":0,"countingPolicy":"lifetime","countryCodes":[0],"countryLimits":[0]},"identityCount":{"maxInvestors":0,"countingPolicy":"lifetime","countryCodes":[0],"countryLimits":[0]},"timeLock":{"holdPeriod":0,"allowExemptions":false,"exemptionExpression":[{"nodeType":0,"value":"1000000000000000000"}]},"transferApproval":{"approvalAuthorities":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"],"allowExemptions":false,"oneTimeUse":false,"approvalMode":0,"exemptionExpression":[{"nodeType":0,"value":"1000000000000000000"}],"approvalExpiry":0},"identityVerification":[{"nodeType":0,"value":"1000000000000000000"}]},"scope":{"executionMode":0,"senderInclusion":[{"nodeType":0,"value":"EUR"}],"senderExemption":[{"nodeType":0,"value":"EUR"}],"receiverInclusion":[{"nodeType":0,"value":"EUR"}],"receiverExemption":[{"nodeType":0,"value":"EUR"}],"tokenInclusion":[{"nodeType":0,"value":"EUR"}],"tokenExemption":[{"nodeType":0,"value":"EUR"}],"senderCountryInclusion":[0],"senderCountryExclusion":[0],"receiverCountryInclusion":[0],"receiverCountryExclusion":[0]},"active":true,"isV2":false}]}]},"meta":{"txHashes":["0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/v2/system/compliance-modules"}}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false}}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false},"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"compliance.expression.NOT_NARROWED","status":422,"message":"The compliance expression is too broad to enforce","data":{"id":"DALP-12287","why":"The compliance expression has no positive condition that narrows who it admits.","fix":"Add a positive condition, or acknowledge the allowed warning.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.DEPENDENCY_UNAVAILABLE","status":503,"message":"KYC data temporarily unavailable","data":{"id":"DALP-12248","why":"A store the KYC or user profile route reads did not answer, so the route could not complete. `data.dependency` names the store.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header and `data.dependency`.","retryable":true,"category":"dependency","dependency":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Replaces the scope of the enabled binding at the instance address you send and leaves its parameters alone. Send the whole scope, because these values replace the stored scope rather than extend it. You need the compliance manager role.","summary":"Replace the scope of a global compliance module","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemComplianceModuleSetScopeBody"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/system/compliance-modules/scoped":{"post":{"tags":["Compliance rules"],"operationId":"complianceModulesV2.complianceModulesInstallScoped","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The platform accepted the mutation. By default the response carries the updated system and the transaction hashes the mutation produced. When you ask for asynchronous processing through the `Transaction-Preference` header, the response instead carries a transaction identifier, its current state, and a status URL to poll, and the platform answers 202 Accepted.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ComplianceModuleRegistryReadback"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"modules":[{"moduleAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","registryAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","typeId":"push-airdrop","name":"Core holdings","globalConfigs":[{"moduleAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","typeId":"push-airdrop","name":"Core holdings","parameters":{"addresses":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"],"countries":[0],"capped":{"maxSupply":"1"},"collateral":{"proofTopic":"1","ratioBps":0,"trustedIssuers":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"tokenSupplyLimit":{"maxSupply":"1","periodLength":0,"rolling":false,"useBasePrice":false,"global":false},"capitalRaiseLimit":{"maxSupply":"1","periodLength":0,"rolling":false,"priceResolver":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","priceTopicId":"1"},"issuanceVolumeLimit":{"maxSupply":"1","periodLength":0,"rolling":false},"minimumHolding":{"minimumHolding":"1","exemptWallets":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"claimExpiry":{"topics":["1"],"gracePeriod":0,"requireExpiry":false},"investorCount":{"maxInvestors":0,"global":false,"countryCodes":[0],"countryLimits":[0],"topicFilter":[{"nodeType":0,"value":"1000000000000000000"}]},"investorCountV2":{"maxInvestors":0,"countingPolicy":"lifetime","countryCodes":[0],"countryLimits":[0]},"identityCount":{"maxInvestors":0,"countingPolicy":"lifetime","countryCodes":[0],"countryLimits":[0]},"timeLock":{"holdPeriod":0,"allowExemptions":false,"exemptionExpression":[{"nodeType":0,"value":"1000000000000000000"}]},"transferApproval":{"approvalAuthorities":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"],"allowExemptions":false,"oneTimeUse":false,"approvalMode":0,"exemptionExpression":[{"nodeType":0,"value":"1000000000000000000"}],"approvalExpiry":0},"identityVerification":[{"nodeType":0,"value":"1000000000000000000"}]},"scope":{"executionMode":0,"senderInclusion":[{"nodeType":0,"value":"EUR"}],"senderExemption":[{"nodeType":0,"value":"EUR"}],"receiverInclusion":[{"nodeType":0,"value":"EUR"}],"receiverExemption":[{"nodeType":0,"value":"EUR"}],"tokenInclusion":[{"nodeType":0,"value":"EUR"}],"tokenExemption":[{"nodeType":0,"value":"EUR"}],"senderCountryInclusion":[0],"senderCountryExclusion":[0],"receiverCountryInclusion":[0],"receiverCountryExclusion":[0]},"active":true,"isV2":false}]}]},"meta":{"txHashes":["0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/v2/system/compliance-modules"}}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false}}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false},"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"compliance.expression.NOT_NARROWED","status":422,"message":"The compliance expression is too broad to enforce","data":{"id":"DALP-12287","why":"The compliance expression has no positive condition that narrows who it admits.","fix":"Add a positive condition, or acknowledge the allowed warning.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.DEPENDENCY_UNAVAILABLE","status":503,"message":"KYC data temporarily unavailable","data":{"id":"DALP-12248","why":"A store the KYC or user profile route reads did not answer, so the route could not complete. `data.dependency` names the store.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header and `data.dependency`.","retryable":true,"category":"dependency","dependency":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Installs a global binding and applies its scope in one transaction, so the binding never exists unscoped. The scope narrows the senders, receivers, countries, and tokens the compliance engine evaluates the module for. Empty scope lists with an execution mode of 0 cover every transfer. You need the compliance manager role.","summary":"Install a scoped global compliance module","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemComplianceModuleScopedInstallBody"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/system/compliance-modules/scoped-params":{"post":{"tags":["Compliance rules"],"operationId":"complianceModulesV2.complianceModulesSetScopedParams","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The platform accepted the mutation. By default the response carries the updated system and the transaction hashes the mutation produced. When you ask for asynchronous processing through the `Transaction-Preference` header, the response instead carries a transaction identifier, its current state, and a status URL to poll, and the platform answers 202 Accepted.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ComplianceModuleRegistryReadback"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"modules":[{"moduleAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","registryAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","typeId":"push-airdrop","name":"Core holdings","globalConfigs":[{"moduleAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","typeId":"push-airdrop","name":"Core holdings","parameters":{"addresses":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"],"countries":[0],"capped":{"maxSupply":"1"},"collateral":{"proofTopic":"1","ratioBps":0,"trustedIssuers":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"tokenSupplyLimit":{"maxSupply":"1","periodLength":0,"rolling":false,"useBasePrice":false,"global":false},"capitalRaiseLimit":{"maxSupply":"1","periodLength":0,"rolling":false,"priceResolver":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","priceTopicId":"1"},"issuanceVolumeLimit":{"maxSupply":"1","periodLength":0,"rolling":false},"minimumHolding":{"minimumHolding":"1","exemptWallets":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"claimExpiry":{"topics":["1"],"gracePeriod":0,"requireExpiry":false},"investorCount":{"maxInvestors":0,"global":false,"countryCodes":[0],"countryLimits":[0],"topicFilter":[{"nodeType":0,"value":"1000000000000000000"}]},"investorCountV2":{"maxInvestors":0,"countingPolicy":"lifetime","countryCodes":[0],"countryLimits":[0]},"identityCount":{"maxInvestors":0,"countingPolicy":"lifetime","countryCodes":[0],"countryLimits":[0]},"timeLock":{"holdPeriod":0,"allowExemptions":false,"exemptionExpression":[{"nodeType":0,"value":"1000000000000000000"}]},"transferApproval":{"approvalAuthorities":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"],"allowExemptions":false,"oneTimeUse":false,"approvalMode":0,"exemptionExpression":[{"nodeType":0,"value":"1000000000000000000"}],"approvalExpiry":0},"identityVerification":[{"nodeType":0,"value":"1000000000000000000"}]},"scope":{"executionMode":0,"senderInclusion":[{"nodeType":0,"value":"EUR"}],"senderExemption":[{"nodeType":0,"value":"EUR"}],"receiverInclusion":[{"nodeType":0,"value":"EUR"}],"receiverExemption":[{"nodeType":0,"value":"EUR"}],"tokenInclusion":[{"nodeType":0,"value":"EUR"}],"tokenExemption":[{"nodeType":0,"value":"EUR"}],"senderCountryInclusion":[0],"senderCountryExclusion":[0],"receiverCountryInclusion":[0],"receiverCountryExclusion":[0]},"active":true,"isV2":false}]}]},"meta":{"txHashes":["0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/v2/system/compliance-modules"}}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false}}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false},"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"compliance.expression.NOT_NARROWED","status":422,"message":"The compliance expression is too broad to enforce","data":{"id":"DALP-12287","why":"The compliance expression has no positive condition that narrows who it admits.","fix":"Add a positive condition, or acknowledge the allowed warning.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.DEPENDENCY_UNAVAILABLE","status":503,"message":"KYC data temporarily unavailable","data":{"id":"DALP-12248","why":"A store the KYC or user profile route reads did not answer, so the route could not complete. `data.dependency` names the store.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header and `data.dependency`.","retryable":true,"category":"dependency","dependency":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Replaces both the parameters and the scope of the enabled binding at the instance address you send, in one transaction, so you complete one wallet verification instead of two. The platform refuses a `capital-raise-limit` binding here, because its parameters stay fixed once you install it. You need the compliance manager role.","summary":"Replace the parameters and scope of a global compliance module","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemComplianceModuleSetScopedParamsBody"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/token-compliance/{tokenAddress}/modules":{"get":{"tags":["Compliance rules"],"operationId":"tokenComplianceV2.tokenComplianceModulesList","parameters":[{"name":"tokenAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true}],"responses":{"200":{"description":"The token's compliance modules with their parameters, scope, and active state.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ComplianceModule"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"moduleAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","typeId":"push-airdrop","name":"Core holdings","parameters":{"addresses":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"],"countries":[0],"capped":{"maxSupply":"1"},"collateral":{"proofTopic":"1","ratioBps":0,"trustedIssuers":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"tokenSupplyLimit":{"maxSupply":"1","periodLength":0,"rolling":false,"useBasePrice":false,"global":false},"capitalRaiseLimit":{"maxSupply":"1","periodLength":0,"rolling":false,"priceResolver":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","priceTopicId":"1"},"issuanceVolumeLimit":{"maxSupply":"1","periodLength":0,"rolling":false},"minimumHolding":{"minimumHolding":"1","exemptWallets":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"claimExpiry":{"topics":["1"],"gracePeriod":0,"requireExpiry":false},"investorCount":{"maxInvestors":0,"global":false,"countryCodes":[0],"countryLimits":[0],"topicFilter":[{"nodeType":0,"value":"1000000000000000000"}]},"investorCountV2":{"maxInvestors":0,"countingPolicy":"lifetime","countryCodes":[0],"countryLimits":[0]},"identityCount":{"maxInvestors":0,"countingPolicy":"lifetime","countryCodes":[0],"countryLimits":[0]},"timeLock":{"holdPeriod":0,"allowExemptions":false,"exemptionExpression":[{"nodeType":0,"value":"1000000000000000000"}]},"transferApproval":{"approvalAuthorities":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"],"allowExemptions":false,"oneTimeUse":false,"approvalMode":0,"exemptionExpression":[{"nodeType":0,"value":"1000000000000000000"}],"approvalExpiry":0},"identityVerification":[{"nodeType":0,"value":"1000000000000000000"}]},"scope":{"executionMode":0,"senderInclusion":[{"nodeType":0,"value":"EUR"}],"senderExemption":[{"nodeType":0,"value":"EUR"}],"receiverInclusion":[{"nodeType":0,"value":"EUR"}],"receiverExemption":[{"nodeType":0,"value":"EUR"}],"tokenInclusion":[{"nodeType":0,"value":"EUR"}],"tokenExemption":[{"nodeType":0,"value":"EUR"}],"senderCountryInclusion":[0],"senderCountryExclusion":[0],"receiverCountryInclusion":[0],"receiverCountryExclusion":[0]},"active":true,"isV2":false}],"meta":{"total":1,"facets":{}},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants","first":"/v2/accounts?sort=-firstSeenBlock&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/accounts?sort=-firstSeenBlock&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"compliance.expression.NOT_NARROWED","status":422,"message":"The compliance expression is too broad to enforce","data":{"id":"DALP-12287","why":"The compliance expression has no positive condition that narrows who it admits.","fix":"Add a positive condition, or acknowledge the allowed warning.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","compliance.executor.DEPENDENCY_UNAVAILABLE","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"compliance.executor.DEPENDENCY_UNAVAILABLE","status":503,"message":"Compliance authorization temporarily unavailable","data":{"id":"DALP-12268","why":"The custody account directory did not resolve the executor needed to check this caller's compliance role.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the compliance modules bound to the token in the path, each with its type, name, parameters, scope, and whether it is active. A token outside your active system is refused as not found. Repeating the request is safe.","summary":"List a token's compliance modules","x-dalp-auth":"session-or-api-key"}},"/api/v2/token-compliance/{tokenAddress}/modules/{moduleAddress}":{"get":{"tags":["Compliance rules"],"operationId":"tokenComplianceV2.tokenComplianceModulesRead","parameters":[{"name":"tokenAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"name":"moduleAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true}],"responses":{"200":{"description":"The compliance module with its type, name, parameters, scope, and active state.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ComplianceModule"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"moduleAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","typeId":"push-airdrop","name":"Core holdings","parameters":{"addresses":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"],"countries":[0],"capped":{"maxSupply":"1"},"collateral":{"proofTopic":"1","ratioBps":0,"trustedIssuers":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"tokenSupplyLimit":{"maxSupply":"1","periodLength":0,"rolling":false,"useBasePrice":false,"global":false},"capitalRaiseLimit":{"maxSupply":"1","periodLength":0,"rolling":false,"priceResolver":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","priceTopicId":"1"},"issuanceVolumeLimit":{"maxSupply":"1","periodLength":0,"rolling":false},"minimumHolding":{"minimumHolding":"1","exemptWallets":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"claimExpiry":{"topics":["1"],"gracePeriod":0,"requireExpiry":false},"investorCount":{"maxInvestors":0,"global":false,"countryCodes":[0],"countryLimits":[0],"topicFilter":[{"nodeType":0,"value":"1000000000000000000"}]},"investorCountV2":{"maxInvestors":0,"countingPolicy":"lifetime","countryCodes":[0],"countryLimits":[0]},"identityCount":{"maxInvestors":0,"countingPolicy":"lifetime","countryCodes":[0],"countryLimits":[0]},"timeLock":{"holdPeriod":0,"allowExemptions":false,"exemptionExpression":[{"nodeType":0,"value":"1000000000000000000"}]},"transferApproval":{"approvalAuthorities":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"],"allowExemptions":false,"oneTimeUse":false,"approvalMode":0,"exemptionExpression":[{"nodeType":0,"value":"1000000000000000000"}],"approvalExpiry":0},"identityVerification":[{"nodeType":0,"value":"1000000000000000000"}]},"scope":{"executionMode":0,"senderInclusion":[{"nodeType":0,"value":"EUR"}],"senderExemption":[{"nodeType":0,"value":"EUR"}],"receiverInclusion":[{"nodeType":0,"value":"EUR"}],"receiverExemption":[{"nodeType":0,"value":"EUR"}],"tokenInclusion":[{"nodeType":0,"value":"EUR"}],"tokenExemption":[{"nodeType":0,"value":"EUR"}],"senderCountryInclusion":[0],"senderCountryExclusion":[0],"receiverCountryInclusion":[0],"receiverCountryExclusion":[0]},"active":true,"isV2":false},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"compliance.expression.NOT_NARROWED","status":422,"message":"The compliance expression is too broad to enforce","data":{"id":"DALP-12287","why":"The compliance expression has no positive condition that narrows who it admits.","fix":"Add a positive condition, or acknowledge the allowed warning.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","compliance.executor.DEPENDENCY_UNAVAILABLE","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"compliance.executor.DEPENDENCY_UNAVAILABLE","status":503,"message":"Compliance authorization temporarily unavailable","data":{"id":"DALP-12268","why":"The custody account directory did not resolve the executor needed to check this caller's compliance role.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the compliance module at the module address in the path, when it is bound to the token in the path. A token outside your active system, or a module the token does not bind, is refused as not found. Repeating the request is safe.","summary":"Read a token's compliance module","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/compliance-modules":{"post":{"tags":["Compliance rules"],"operationId":"tokenComplianceV2.tokenComplianceModuleInstall","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255,"description":"The asset's own identifier: the token contract address, or a Canton instrument id.","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The route accepts the install. By default it queues the transaction and answers `202` with the transaction identifier, its current state, and the status URL to poll. A caller that sends `Prefer: wait=<seconds>` waits for settlement instead and receives the re-read token, the hashes that carried the change, and a link back to the mutated resource.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenModuleReadback"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"modules":[{"moduleAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","typeId":"push-airdrop","name":"Core holdings","parameters":{"addresses":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"],"countries":[0],"capped":{"maxSupply":"1"},"collateral":{"proofTopic":"1","ratioBps":0,"trustedIssuers":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"tokenSupplyLimit":{"maxSupply":"1","periodLength":0,"rolling":false,"useBasePrice":false,"global":false},"capitalRaiseLimit":{"maxSupply":"1","periodLength":0,"rolling":false,"priceResolver":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","priceTopicId":"1"},"issuanceVolumeLimit":{"maxSupply":"1","periodLength":0,"rolling":false},"minimumHolding":{"minimumHolding":"1","exemptWallets":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"claimExpiry":{"topics":["1"],"gracePeriod":0,"requireExpiry":false},"investorCount":{"maxInvestors":0,"global":false,"countryCodes":[0],"countryLimits":[0],"topicFilter":[{"nodeType":0,"value":"1000000000000000000"}]},"investorCountV2":{"maxInvestors":0,"countingPolicy":"lifetime","countryCodes":[0],"countryLimits":[0]},"identityCount":{"maxInvestors":0,"countingPolicy":"lifetime","countryCodes":[0],"countryLimits":[0]},"timeLock":{"holdPeriod":0,"allowExemptions":false,"exemptionExpression":[{"nodeType":0,"value":"1000000000000000000"}]},"transferApproval":{"approvalAuthorities":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"],"allowExemptions":false,"oneTimeUse":false,"approvalMode":0,"exemptionExpression":[{"nodeType":0,"value":"1000000000000000000"}],"approvalExpiry":0},"identityVerification":[{"nodeType":0,"value":"1000000000000000000"}]},"scope":{"executionMode":0,"senderInclusion":[{"nodeType":0,"value":"EUR"}],"senderExemption":[{"nodeType":0,"value":"EUR"}],"receiverInclusion":[{"nodeType":0,"value":"EUR"}],"receiverExemption":[{"nodeType":0,"value":"EUR"}],"tokenInclusion":[{"nodeType":0,"value":"EUR"}],"tokenExemption":[{"nodeType":0,"value":"EUR"}],"senderCountryInclusion":[0],"senderCountryExclusion":[0],"receiverCountryInclusion":[0],"receiverCountryExclusion":[0]},"active":true,"isV2":false}]},"meta":{"txHashes":["0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/compliance-modules"}}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false}}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false},"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","TOKEN_COMPLIANCE_MODULE_GENERATION_INCOMPATIBLE","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"compliance.expression.NOT_NARROWED","status":422,"message":"The compliance expression is too broad to enforce","data":{"id":"DALP-12287","why":"The compliance expression has no positive condition that narrows who it admits.","fix":"Add a positive condition, or acknowledge the allowed warning.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.DEPENDENCY_UNAVAILABLE","status":503,"message":"KYC data temporarily unavailable","data":{"id":"DALP-12248","why":"A store the KYC or user profile route reads did not answer, so the route could not complete. `data.dependency` names the store.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header and `data.dependency`.","retryable":true,"category":"dependency","dependency":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Binds a registered compliance module to the token and stores the encoded parameters the module evaluates transfers against. The chain must already hold the implementation at `params.module` under `params.typeId`. When the token already holds a binding for that `typeId`, the route answers `409`: change the existing binding through the parameter route, or add a second binding with its own scope through the scoped install route.","summary":"Install a compliance module on a token","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenComplianceModuleInstallBody"}}},"required":true},"x-dalp-auth":"session-or-api-key"},"delete":{"tags":["Compliance rules"],"operationId":"tokenComplianceV2.tokenComplianceModuleUninstall","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255,"description":"The asset's own identifier: the token contract address, or a Canton instrument id.","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The route accepts the removal. By default it queues the transaction and answers `202` with the transaction identifier, its current state, and the status URL to poll. A caller that sends `Prefer: wait=<seconds>` waits for settlement instead and receives the re-read token, the hashes that carried the change, and a link back to the mutated resource.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenModuleReadback"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"modules":[{"moduleAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","typeId":"push-airdrop","name":"Core holdings","parameters":{"addresses":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"],"countries":[0],"capped":{"maxSupply":"1"},"collateral":{"proofTopic":"1","ratioBps":0,"trustedIssuers":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"tokenSupplyLimit":{"maxSupply":"1","periodLength":0,"rolling":false,"useBasePrice":false,"global":false},"capitalRaiseLimit":{"maxSupply":"1","periodLength":0,"rolling":false,"priceResolver":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","priceTopicId":"1"},"issuanceVolumeLimit":{"maxSupply":"1","periodLength":0,"rolling":false},"minimumHolding":{"minimumHolding":"1","exemptWallets":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"claimExpiry":{"topics":["1"],"gracePeriod":0,"requireExpiry":false},"investorCount":{"maxInvestors":0,"global":false,"countryCodes":[0],"countryLimits":[0],"topicFilter":[{"nodeType":0,"value":"1000000000000000000"}]},"investorCountV2":{"maxInvestors":0,"countingPolicy":"lifetime","countryCodes":[0],"countryLimits":[0]},"identityCount":{"maxInvestors":0,"countingPolicy":"lifetime","countryCodes":[0],"countryLimits":[0]},"timeLock":{"holdPeriod":0,"allowExemptions":false,"exemptionExpression":[{"nodeType":0,"value":"1000000000000000000"}]},"transferApproval":{"approvalAuthorities":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"],"allowExemptions":false,"oneTimeUse":false,"approvalMode":0,"exemptionExpression":[{"nodeType":0,"value":"1000000000000000000"}],"approvalExpiry":0},"identityVerification":[{"nodeType":0,"value":"1000000000000000000"}]},"scope":{"executionMode":0,"senderInclusion":[{"nodeType":0,"value":"EUR"}],"senderExemption":[{"nodeType":0,"value":"EUR"}],"receiverInclusion":[{"nodeType":0,"value":"EUR"}],"receiverExemption":[{"nodeType":0,"value":"EUR"}],"tokenInclusion":[{"nodeType":0,"value":"EUR"}],"tokenExemption":[{"nodeType":0,"value":"EUR"}],"senderCountryInclusion":[0],"senderCountryExclusion":[0],"receiverCountryInclusion":[0],"receiverCountryExclusion":[0]},"active":true,"isV2":false}]},"meta":{"txHashes":["0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/compliance-modules"}}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false}}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false},"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"compliance.expression.NOT_NARROWED","status":422,"message":"The compliance expression is too broad to enforce","data":{"id":"DALP-12287","why":"The compliance expression has no positive condition that narrows who it admits.","fix":"Add a positive condition, or acknowledge the allowed warning.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.DEPENDENCY_UNAVAILABLE","status":503,"message":"KYC data temporarily unavailable","data":{"id":"DALP-12248","why":"A store the KYC or user profile route reads did not answer, so the route could not complete. `data.dependency` names the store.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header and `data.dependency`.","retryable":true,"category":"dependency","dependency":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Unbinds the module at `moduleAddress` so it stops evaluating transfers of this token. When the token holds several bindings that share the module's `typeId`, name the one to remove through `instanceAddress`; the route answers `409` when a request leaves it out.","summary":"Remove a compliance module from a token","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenComplianceModuleUninstallBody"}}},"required":true},"x-dalp-auth":"session-or-api-key"},"put":{"tags":["Compliance rules"],"operationId":"tokenComplianceV2.v2/token/setComplianceModules","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255,"description":"The asset's own identifier: the token contract address, or a Canton instrument id.","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The route accepts the module set. By default it queues the transaction and answers `202` with the transaction identifier, its current state, and the status URL to poll. A caller that sends `Prefer: wait=<seconds>` waits for settlement instead and receives the re-read token, the hashes that carried the change, and a link back to the mutated resource.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"operationId":{"type":"string","minLength":1},"submissionId":{"type":"string","minLength":1},"ledgerSubmissionId":{"type":"string","minLength":1},"preparedHashHex":{"type":"string","minLength":1},"consistencyToken":{"type":"string","minLength":1,"examples":["reached=10427;drained=10427"]},"contractId":{"type":"string","minLength":1}},"required":["operationId","submissionId","ledgerSubmissionId","preparedHashHex","consistencyToken"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"operationId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","submissionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","ledgerSubmissionId":"canton-ledger-sub-1","preparedHashHex":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","consistencyToken":"reached=10427;drained=10427","contractId":"00a1b2c3d4e5f60718293a4b5c6d7e8f90a1b2c3d4e5f60718293a4b5c6d7e8f90"},"meta":{"txHashes":["0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false}}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false},"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CANTON_APPROVAL_DECISION_FORBIDDEN","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_COMMAND_NO_LONGER_APPLIES","CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CANTON_COMMAND_NO_LONGER_APPLIES","status":409,"message":"The approved Canton command no longer applies","data":{"id":"DALP-9314","why":"The DAML command was approved, then the target contract or ledger state changed so the same command cannot settle.","fix":"Submit a new command. The existing approval is not reopened.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_NETWORK_NOT_CONFIGURED","CANTON_SUBMISSION_REJECTED","CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"CANTON_NETWORK_NOT_CONFIGURED","status":422,"message":"No Canton participant network is configured","data":{"id":"DALP-9313","why":"This deployment has no Canton participant network, so the platform cannot allocate a party or submit a DAML command.","fix":"Ask an operator to add a Canton network to the platform configuration, then retry.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_CAPABILITY_UNAVAILABLE","DALP-0083","SESSION_RESOLUTION_FAILED","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"CANTON_CAPABILITY_UNAVAILABLE","status":503,"message":"A required Canton capability is unavailable","data":{"id":"DALP-12233","why":"The Canton participant or a service it depends on did not provide a capability this operation needs, so the platform did not complete the request.","fix":"Retry later. If the refusal persists, ask an operator to restore the Canton participant connection.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Replaces the whole ordered compliance module set of a Canton instrument, named by the contract ids the Canton compliance read returned. The order is the ledger's evaluation order: the first module to refuse aborts the movement, so the sequence is part of the request. This is also the second submission the module-configuration routes require, because the choices behind those archive the module they configure and the registration still lists the archived id. There is no EVM arm: an EVM token's module set is changed binding by binding, so an EVM-family request is refused rather than answered with an install or an uninstall. The submission presents the instrument's live registration, module state and account-state book, so a gated instrument keeps settling after the change. A finished operation returns 200; an accepted one returns 202 with a status URL.","summary":"Replace a Canton instrument's compliance module set","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenComplianceSetModulesBody"}}},"required":false},"x-dalp-auth":"session-or-api-key"},"get":{"tags":["Tokens"],"operationId":"v2/token/compliance","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"instrumentAdmin","in":"query","schema":{"type":"string","minLength":1,"description":"Canton external party identifier"},"required":false}],"responses":{"200":{"description":"The selected asset's compliance rules in a single-resource envelope. `links.self` carries the `instrumentAdmin` that completes a Canton instrument's key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenComplianceV2OutputSchema"},"examples":{"example-1":{"value":{"data":{"family":"evm","modules":[]},"links":{"self":"/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/compliance-modules"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_NETWORK_NOT_CONFIGURED","CONTRACT_ERROR"]}},"required":["code"]}],"examples":[{"code":"CANTON_NETWORK_NOT_CONFIGURED","status":422,"message":"No Canton participant network is configured","data":{"id":"DALP-9313","why":"This deployment has no Canton participant network, so the platform cannot allocate a party or submit a DAML command.","fix":"Ask an operator to add a Canton network to the platform configuration, then retry.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_READ_DEPENDENCY_FAILED","core.database.QUERY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"core.database.QUERY_FAILED","status":503,"message":"The database is temporarily unavailable","data":{"id":"DALP-12148","why":"The platform could not complete a database query required for this request.","fix":"Retry the request. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the compliance rules bound to the selected asset, in either chain family. The asset is named exactly as it is for the asset read: `assetId` is a contract address for an EVM token, or a Canton `instrumentId` sent together with the `instrumentAdmin` that completes its key. The body carries `family`: an `evm` asset reports decoded module configs keyed by `typeId`, and v2 instances also carry an instance address, an active flag, and a scope; a `canton` instrument reports its registration contract and the module contracts that registration names, in the ledger's own evaluation order. The read is indexed and does not change module bindings. Use inherited global controls to see the controls the asset inherits from above it.","summary":"Read asset compliance modules","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/compliance-modules/scoped":{"post":{"tags":["Compliance rules"],"operationId":"tokenComplianceV2.tokenComplianceModuleScopedInstall","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255,"description":"The asset's own identifier: the token contract address, or a Canton instrument id.","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The route accepts the scoped install. By default it queues the transaction and answers `202` with the transaction identifier, its current state, and the status URL to poll. A caller that sends `Prefer: wait=<seconds>` waits for settlement instead and receives the re-read token, the hashes that carried the change, and a link back to the mutated resource.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenModuleReadback"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"modules":[{"moduleAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","typeId":"push-airdrop","name":"Core holdings","parameters":{"addresses":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"],"countries":[0],"capped":{"maxSupply":"1"},"collateral":{"proofTopic":"1","ratioBps":0,"trustedIssuers":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"tokenSupplyLimit":{"maxSupply":"1","periodLength":0,"rolling":false,"useBasePrice":false,"global":false},"capitalRaiseLimit":{"maxSupply":"1","periodLength":0,"rolling":false,"priceResolver":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","priceTopicId":"1"},"issuanceVolumeLimit":{"maxSupply":"1","periodLength":0,"rolling":false},"minimumHolding":{"minimumHolding":"1","exemptWallets":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"claimExpiry":{"topics":["1"],"gracePeriod":0,"requireExpiry":false},"investorCount":{"maxInvestors":0,"global":false,"countryCodes":[0],"countryLimits":[0],"topicFilter":[{"nodeType":0,"value":"1000000000000000000"}]},"investorCountV2":{"maxInvestors":0,"countingPolicy":"lifetime","countryCodes":[0],"countryLimits":[0]},"identityCount":{"maxInvestors":0,"countingPolicy":"lifetime","countryCodes":[0],"countryLimits":[0]},"timeLock":{"holdPeriod":0,"allowExemptions":false,"exemptionExpression":[{"nodeType":0,"value":"1000000000000000000"}]},"transferApproval":{"approvalAuthorities":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"],"allowExemptions":false,"oneTimeUse":false,"approvalMode":0,"exemptionExpression":[{"nodeType":0,"value":"1000000000000000000"}],"approvalExpiry":0},"identityVerification":[{"nodeType":0,"value":"1000000000000000000"}]},"scope":{"executionMode":0,"senderInclusion":[{"nodeType":0,"value":"EUR"}],"senderExemption":[{"nodeType":0,"value":"EUR"}],"receiverInclusion":[{"nodeType":0,"value":"EUR"}],"receiverExemption":[{"nodeType":0,"value":"EUR"}],"tokenInclusion":[{"nodeType":0,"value":"EUR"}],"tokenExemption":[{"nodeType":0,"value":"EUR"}],"senderCountryInclusion":[0],"senderCountryExclusion":[0],"receiverCountryInclusion":[0],"receiverCountryExclusion":[0]},"active":true,"isV2":false}]},"meta":{"txHashes":["0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/compliance-modules"}}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false}}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false},"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","TOKEN_COMPLIANCE_MODULE_GENERATION_INCOMPATIBLE","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"compliance.expression.NOT_NARROWED","status":422,"message":"The compliance expression is too broad to enforce","data":{"id":"DALP-12287","why":"The compliance expression has no positive condition that narrows who it admits.","fix":"Add a positive condition, or acknowledge the allowed warning.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.DEPENDENCY_UNAVAILABLE","status":503,"message":"KYC data temporarily unavailable","data":{"id":"DALP-12248","why":"A store the KYC or user profile route reads did not answer, so the route could not complete. `data.dependency` names the store.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header and `data.dependency`.","retryable":true,"category":"dependency","dependency":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Binds a registered compliance module to the token together with the scope that selects which transfers the module evaluates. This route accepts more than one binding of the same `typeId` on one token, so each binding can carry its own scope. When the token's compliance contract does not support scoped bindings, the route answers `409`.","summary":"Install a scoped compliance module on a token","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenComplianceModuleScopedInstallBody"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/compliance-modules/{instanceAddress}/scope":{"put":{"tags":["Compliance rules"],"operationId":"tokenComplianceV2.tokenComplianceModuleSetScope","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255,"description":"The asset's own identifier: the token contract address, or a Canton instrument id.","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"name":"instanceAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The route accepts the scope replacement. By default it queues the transaction and answers `202` with the transaction identifier, its current state, and the status URL to poll. A caller that sends `Prefer: wait=<seconds>` waits for settlement instead and receives the re-read token, the hashes that carried the change, and a link back to the mutated resource.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenModuleReadback"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"modules":[{"moduleAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","typeId":"push-airdrop","name":"Core holdings","parameters":{"addresses":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"],"countries":[0],"capped":{"maxSupply":"1"},"collateral":{"proofTopic":"1","ratioBps":0,"trustedIssuers":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"tokenSupplyLimit":{"maxSupply":"1","periodLength":0,"rolling":false,"useBasePrice":false,"global":false},"capitalRaiseLimit":{"maxSupply":"1","periodLength":0,"rolling":false,"priceResolver":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","priceTopicId":"1"},"issuanceVolumeLimit":{"maxSupply":"1","periodLength":0,"rolling":false},"minimumHolding":{"minimumHolding":"1","exemptWallets":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"claimExpiry":{"topics":["1"],"gracePeriod":0,"requireExpiry":false},"investorCount":{"maxInvestors":0,"global":false,"countryCodes":[0],"countryLimits":[0],"topicFilter":[{"nodeType":0,"value":"1000000000000000000"}]},"investorCountV2":{"maxInvestors":0,"countingPolicy":"lifetime","countryCodes":[0],"countryLimits":[0]},"identityCount":{"maxInvestors":0,"countingPolicy":"lifetime","countryCodes":[0],"countryLimits":[0]},"timeLock":{"holdPeriod":0,"allowExemptions":false,"exemptionExpression":[{"nodeType":0,"value":"1000000000000000000"}]},"transferApproval":{"approvalAuthorities":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"],"allowExemptions":false,"oneTimeUse":false,"approvalMode":0,"exemptionExpression":[{"nodeType":0,"value":"1000000000000000000"}],"approvalExpiry":0},"identityVerification":[{"nodeType":0,"value":"1000000000000000000"}]},"scope":{"executionMode":0,"senderInclusion":[{"nodeType":0,"value":"EUR"}],"senderExemption":[{"nodeType":0,"value":"EUR"}],"receiverInclusion":[{"nodeType":0,"value":"EUR"}],"receiverExemption":[{"nodeType":0,"value":"EUR"}],"tokenInclusion":[{"nodeType":0,"value":"EUR"}],"tokenExemption":[{"nodeType":0,"value":"EUR"}],"senderCountryInclusion":[0],"senderCountryExclusion":[0],"receiverCountryInclusion":[0],"receiverCountryExclusion":[0]},"active":true,"isV2":false}]},"meta":{"txHashes":["0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/compliance-modules"}}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false}}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false},"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"compliance.expression.NOT_NARROWED","status":422,"message":"The compliance expression is too broad to enforce","data":{"id":"DALP-12287","why":"The compliance expression has no positive condition that narrows who it admits.","fix":"Add a positive condition, or acknowledge the allowed warning.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.DEPENDENCY_UNAVAILABLE","status":503,"message":"KYC data temporarily unavailable","data":{"id":"DALP-12248","why":"A store the KYC or user profile route reads did not answer, so the route could not complete. `data.dependency` names the store.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header and `data.dependency`.","retryable":true,"category":"dependency","dependency":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Replaces the scope of the binding at the `instanceAddress` path parameter and leaves its parameters as they stand. The binding must be active on this token. Both `assetId` and `instanceAddress` are EIP-55 checksummed contract addresses.","summary":"Replace the scope of an installed compliance module","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenComplianceModuleSetScopeBody"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/compliance-modules/{instanceAddress}/scoped-parameters":{"patch":{"tags":["Compliance rules"],"operationId":"tokenComplianceV2.tokenComplianceModuleConfigureScoped","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255,"description":"The asset's own identifier: the token contract address, or a Canton instrument id.","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"name":"instanceAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The route accepts the combined parameter and scope update. By default it queues the transaction and answers `202` with the transaction identifier, its current state, and the status URL to poll. A caller that sends `Prefer: wait=<seconds>` waits for settlement instead and receives the re-read token, the hashes that carried the change, and a link back to the mutated resource.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenModuleReadback"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"modules":[{"moduleAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","typeId":"push-airdrop","name":"Core holdings","parameters":{"addresses":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"],"countries":[0],"capped":{"maxSupply":"1"},"collateral":{"proofTopic":"1","ratioBps":0,"trustedIssuers":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"tokenSupplyLimit":{"maxSupply":"1","periodLength":0,"rolling":false,"useBasePrice":false,"global":false},"capitalRaiseLimit":{"maxSupply":"1","periodLength":0,"rolling":false,"priceResolver":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","priceTopicId":"1"},"issuanceVolumeLimit":{"maxSupply":"1","periodLength":0,"rolling":false},"minimumHolding":{"minimumHolding":"1","exemptWallets":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"claimExpiry":{"topics":["1"],"gracePeriod":0,"requireExpiry":false},"investorCount":{"maxInvestors":0,"global":false,"countryCodes":[0],"countryLimits":[0],"topicFilter":[{"nodeType":0,"value":"1000000000000000000"}]},"investorCountV2":{"maxInvestors":0,"countingPolicy":"lifetime","countryCodes":[0],"countryLimits":[0]},"identityCount":{"maxInvestors":0,"countingPolicy":"lifetime","countryCodes":[0],"countryLimits":[0]},"timeLock":{"holdPeriod":0,"allowExemptions":false,"exemptionExpression":[{"nodeType":0,"value":"1000000000000000000"}]},"transferApproval":{"approvalAuthorities":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"],"allowExemptions":false,"oneTimeUse":false,"approvalMode":0,"exemptionExpression":[{"nodeType":0,"value":"1000000000000000000"}],"approvalExpiry":0},"identityVerification":[{"nodeType":0,"value":"1000000000000000000"}]},"scope":{"executionMode":0,"senderInclusion":[{"nodeType":0,"value":"EUR"}],"senderExemption":[{"nodeType":0,"value":"EUR"}],"receiverInclusion":[{"nodeType":0,"value":"EUR"}],"receiverExemption":[{"nodeType":0,"value":"EUR"}],"tokenInclusion":[{"nodeType":0,"value":"EUR"}],"tokenExemption":[{"nodeType":0,"value":"EUR"}],"senderCountryInclusion":[0],"senderCountryExclusion":[0],"receiverCountryInclusion":[0],"receiverCountryExclusion":[0]},"active":true,"isV2":false}]},"meta":{"txHashes":["0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/compliance-modules"}}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false}}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false},"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"compliance.expression.NOT_NARROWED","status":422,"message":"The compliance expression is too broad to enforce","data":{"id":"DALP-12287","why":"The compliance expression has no positive condition that narrows who it admits.","fix":"Add a positive condition, or acknowledge the allowed warning.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.DEPENDENCY_UNAVAILABLE","status":503,"message":"KYC data temporarily unavailable","data":{"id":"DALP-12248","why":"A store the KYC or user profile route reads did not answer, so the route could not complete. `data.dependency` names the store.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header and `data.dependency`.","retryable":true,"category":"dependency","dependency":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Replaces the encoded parameters and the scope of the binding at the `instanceAddress` path parameter in a single transaction. The binding therefore never holds new parameters under the old scope, and one wallet verification covers both changes. The binding must be active on this token. The parameters of a `capital-raise-limit` binding never change after install, so this route rejects them with `409`.","summary":"Replace the parameters and scope of an installed compliance module","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenComplianceModuleSetScopedParamsBody"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/compliance-module-parameters":{"patch":{"tags":["Compliance rules"],"operationId":"tokenComplianceV2.tokenComplianceModuleConfigure","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255,"description":"The asset's own identifier: the token contract address, or a Canton instrument id.","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The route accepts the parameter update. By default it queues the transaction and answers `202` with the transaction identifier, its current state, and the status URL to poll. A caller that sends `Prefer: wait=<seconds>` waits for settlement instead and receives the re-read token, the hashes that carried the change, and a link back to the mutated resource.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenModuleReadback"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"modules":[{"moduleAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","typeId":"push-airdrop","name":"Core holdings","parameters":{"addresses":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"],"countries":[0],"capped":{"maxSupply":"1"},"collateral":{"proofTopic":"1","ratioBps":0,"trustedIssuers":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"tokenSupplyLimit":{"maxSupply":"1","periodLength":0,"rolling":false,"useBasePrice":false,"global":false},"capitalRaiseLimit":{"maxSupply":"1","periodLength":0,"rolling":false,"priceResolver":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","priceTopicId":"1"},"issuanceVolumeLimit":{"maxSupply":"1","periodLength":0,"rolling":false},"minimumHolding":{"minimumHolding":"1","exemptWallets":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"claimExpiry":{"topics":["1"],"gracePeriod":0,"requireExpiry":false},"investorCount":{"maxInvestors":0,"global":false,"countryCodes":[0],"countryLimits":[0],"topicFilter":[{"nodeType":0,"value":"1000000000000000000"}]},"investorCountV2":{"maxInvestors":0,"countingPolicy":"lifetime","countryCodes":[0],"countryLimits":[0]},"identityCount":{"maxInvestors":0,"countingPolicy":"lifetime","countryCodes":[0],"countryLimits":[0]},"timeLock":{"holdPeriod":0,"allowExemptions":false,"exemptionExpression":[{"nodeType":0,"value":"1000000000000000000"}]},"transferApproval":{"approvalAuthorities":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"],"allowExemptions":false,"oneTimeUse":false,"approvalMode":0,"exemptionExpression":[{"nodeType":0,"value":"1000000000000000000"}],"approvalExpiry":0},"identityVerification":[{"nodeType":0,"value":"1000000000000000000"}]},"scope":{"executionMode":0,"senderInclusion":[{"nodeType":0,"value":"EUR"}],"senderExemption":[{"nodeType":0,"value":"EUR"}],"receiverInclusion":[{"nodeType":0,"value":"EUR"}],"receiverExemption":[{"nodeType":0,"value":"EUR"}],"tokenInclusion":[{"nodeType":0,"value":"EUR"}],"tokenExemption":[{"nodeType":0,"value":"EUR"}],"senderCountryInclusion":[0],"senderCountryExclusion":[0],"receiverCountryInclusion":[0],"receiverCountryExclusion":[0]},"active":true,"isV2":false}]},"meta":{"txHashes":["0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/compliance-modules"}}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false}}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false},"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"compliance.expression.NOT_NARROWED","status":422,"message":"The compliance expression is too broad to enforce","data":{"id":"DALP-12287","why":"The compliance expression has no positive condition that narrows who it admits.","fix":"Add a positive condition, or acknowledge the allowed warning.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.DEPENDENCY_UNAVAILABLE","status":503,"message":"KYC data temporarily unavailable","data":{"id":"DALP-12248","why":"A store the KYC or user profile route reads did not answer, so the route could not complete. `data.dependency` names the store.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header and `data.dependency`.","retryable":true,"category":"dependency","dependency":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Replaces the encoded parameters of an active binding and leaves its scope as it stands. The binding must be active on this token, and `params.typeId` must be the registered identifier of the module at `params.module`. The parameters of a `capital-raise-limit` binding never change after install, so this route rejects them with `409`.","summary":"Replace the parameters of an installed compliance module","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenComplianceModuleConfigureBody"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/compliance-modules/attesters":{"put":{"tags":["Compliance rules"],"operationId":"tokenComplianceV2.v2/token/updateAttesterRegistry","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255,"description":"The asset's own identifier: the token contract address, or a Canton instrument id.","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The route accepts the attester registry rotation. By default it queues the transaction and answers `202` with the transaction identifier, its current state, and the status URL to poll. A caller that sends `Prefer: wait=<seconds>` waits for settlement instead and receives the re-read token, the hashes that carried the change, and a link back to the mutated resource.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"operationId":{"type":"string","minLength":1},"submissionId":{"type":"string","minLength":1},"ledgerSubmissionId":{"type":"string","minLength":1},"preparedHashHex":{"type":"string","minLength":1},"consistencyToken":{"type":"string","minLength":1,"examples":["reached=10427;drained=10427"]},"contractId":{"type":"string","minLength":1}},"required":["operationId","submissionId","ledgerSubmissionId","preparedHashHex","consistencyToken"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"operationId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","submissionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","ledgerSubmissionId":"canton-ledger-sub-1","preparedHashHex":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","consistencyToken":"reached=10427;drained=10427","contractId":"00a1b2c3d4e5f60718293a4b5c6d7e8f90a1b2c3d4e5f60718293a4b5c6d7e8f90"},"meta":{"txHashes":["0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false}}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false},"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CANTON_APPROVAL_DECISION_FORBIDDEN","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_COMMAND_NO_LONGER_APPLIES","CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CANTON_COMMAND_NO_LONGER_APPLIES","status":409,"message":"The approved Canton command no longer applies","data":{"id":"DALP-9314","why":"The DAML command was approved, then the target contract or ledger state changed so the same command cannot settle.","fix":"Submit a new command. The existing approval is not reopened.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_NETWORK_NOT_CONFIGURED","CANTON_SUBMISSION_REJECTED","CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"CANTON_NETWORK_NOT_CONFIGURED","status":422,"message":"No Canton participant network is configured","data":{"id":"DALP-9313","why":"This deployment has no Canton participant network, so the platform cannot allocate a party or submit a DAML command.","fix":"Ask an operator to add a Canton network to the platform configuration, then retry.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_CAPABILITY_UNAVAILABLE","DALP-0083","SESSION_RESOLUTION_FAILED","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"CANTON_CAPABILITY_UNAVAILABLE","status":503,"message":"A required Canton capability is unavailable","data":{"id":"DALP-12233","why":"The Canton participant or a service it depends on did not provide a capability this operation needs, so the platform did not complete the request.","fix":"Retry later. If the refusal persists, ask an operator to restore the Canton participant connection.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Replaces the D1 trusted attester registry of the instrument's admin in full: the parties whose attestations count, and the claim kinds that count as a pass. Replacement rather than a delta, which is what makes revoking one attester a single operation. The ledger choice is consuming, so the successor registry lives at a new contract id: submitters present the current one per submission, and a stale pin with no override fails closed. There is no EVM arm, so an EVM-family request is refused. A finished operation returns 200; an accepted one returns 202 with a status URL.","summary":"Rotate a Canton instrument admin's trusted attesters","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenComplianceUpdateAttesterRegistryBody"}}},"required":false},"x-dalp-auth":"session-or-api-key"}},"/api/v2/kyc-profiles/{userId}":{"get":{"tags":["KYC"],"operationId":"kycV2.v2/userKycProfile/read","parameters":[{"name":"userId","in":"path","schema":{"type":"string","minLength":1,"description":"Better Auth user identifier"},"required":true}],"responses":{"200":{"description":"The KYC profile of the requested user, with a link to this resource.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/KycProfileReadOutput"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0193fa5d-4b17-7c88-8e51-9a2f0d6c3b71","userId":"0193fa5c-9c31-7a4d-b0e2-3f6c9d1a7b45","status":"approved","hasPendingUpdate":false,"approvedVersion":{"id":"0194a7d1-2f88-7c05-9b3a-51d0e7c4a962","versionNumber":2,"firstName":"Amara","lastName":"Okafor","contentHash":"ad8bfb5243fffeb4db2aa581ae965be67c08059dd899e23a76afdb05d71bd8e0","approvedAt":"2026-06-05T14:05:00.000Z","approvedBy":"0193fa5e-7d20-7b63-9f14-8c5a2e70d419"},"latestVersion":{"id":"0194a7d1-2f88-7c05-9b3a-51d0e7c4a962","versionNumber":2,"status":"approved","isDraft":false,"createdAt":"2026-06-02T08:15:00.000Z"},"openActionRequestsCount":0,"createdAt":"2026-06-02T08:15:00.000Z","updatedAt":"2026-06-05T14:05:00.000Z"},"links":{"self":"/v2/kyc-profiles/0193fa5c-9c31-7a4d-b0e2-3f6c9d1a7b45"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"compliance.expression.NOT_NARROWED","status":422,"message":"The compliance expression is too broad to enforce","data":{"id":"DALP-12287","why":"The compliance expression has no positive condition that narrows who it admits.","fix":"Add a positive condition, or acknowledge the allowed warning.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.DEPENDENCY_UNAVAILABLE","status":503,"message":"KYC data temporarily unavailable","data":{"id":"DALP-12248","why":"A store the KYC or user profile route reads did not answer, so the route could not complete. `data.dependency` names the store.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header and `data.dependency`.","retryable":true,"category":"dependency","dependency":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the KYC profile of one user, with the review status, the pending-update flag, the approved version, the most recent version, and the number of open action requests. `approvedVersion` and `latestVersion` read as `null` until the user holds a version in that state. A user reads their own profile; reading another user's profile requires the claim issuer or identity manager role in the active organization.","summary":"Read a KYC profile","x-dalp-auth":"session-or-api-key"}},"/api/v2/kyc-profiles/{userId}/versions":{"get":{"tags":["KYC"],"operationId":"kycV2.v2/userKycVersions/list","parameters":[{"name":"userId","in":"path","schema":{"type":"string","minLength":1,"description":"Better Auth user identifier"},"required":true},{"name":"filter","in":"query","schema":{"type":"object","properties":{"createdAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"reviewedAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"status":{"anyOf":[{"type":"string","enum":["draft","submitted","under_review","approved","rejected"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"submittedAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"versionNumber":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"string"}]},{"type":"object","properties":{"eq":{"anyOf":[{"type":"number"},{"type":"string"}]},"ne":{"anyOf":[{"type":"number"},{"type":"string"}]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"anyOf":[{"type":"number"},{"type":"string"}]},"gte":{"anyOf":[{"type":"number"},{"type":"string"}]},"lt":{"anyOf":[{"type":"number"},{"type":"string"}]},"lte":{"anyOf":[{"type":"number"},{"type":"string"}]},"between":{"type":"string","maxLength":64}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"A page of KYC versions for the requested user, with paging links and the total count.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/KycProfileVersionsV2ListItem"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"0194a7d1-2f88-7c05-9b3a-51d0e7c4a962","versionNumber":1,"status":"approved","createdAt":"2026-06-02T08:15:00.000Z","createdBy":"0193fa5c-9c31-7a4d-b0e2-3f6c9d1a7b45","submittedAt":"2026-06-04T10:22:00.000Z","submittedBy":"0193fa5c-9c31-7a4d-b0e2-3f6c9d1a7b45","reviewedAt":"2026-06-05T14:05:00.000Z","reviewedBy":"0193fa5e-7d20-7b63-9f14-8c5a2e70d419","reviewOutcome":"approved","isDraft":false,"isUnderReview":false,"isApproved":true,"isCurrent":true},{"id":"0194a7d9-0e44-7a19-b6c3-72f81d4a0e55","versionNumber":2,"status":"draft","createdAt":"2026-06-02T08:15:00.000Z","createdBy":"0193fa5c-9c31-7a4d-b0e2-3f6c9d1a7b45","submittedAt":null,"submittedBy":null,"reviewedAt":null,"reviewedBy":null,"reviewOutcome":null,"isDraft":true,"isUnderReview":false,"isApproved":false,"isCurrent":false}],"meta":{"total":2},"links":{"self":"/v2/kyc-profiles/0193fa5c-9c31-7a4d-b0e2-3f6c9d1a7b45/versions?sort=versionNumber&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/kyc-profiles/0193fa5c-9c31-7a4d-b0e2-3f6c9d1a7b45/versions?sort=versionNumber&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/kyc-profiles/0193fa5c-9c31-7a4d-b0e2-3f6c9d1a7b45/versions?sort=versionNumber&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"compliance.expression.NOT_NARROWED","status":422,"message":"The compliance expression is too broad to enforce","data":{"id":"DALP-12287","why":"The compliance expression has no positive condition that narrows who it admits.","fix":"Add a positive condition, or acknowledge the allowed warning.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.DEPENDENCY_UNAVAILABLE","status":503,"message":"KYC data temporarily unavailable","data":{"id":"DALP-12248","why":"A store the KYC or user profile route reads did not answer, so the route could not complete. `data.dependency` names the store.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header and `data.dependency`.","retryable":true,"category":"dependency","dependency":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the KYC versions of one user as a page, ordered by `versionNumber` from the oldest version by default. Each entry carries the review timestamps and the derived state flags, so a client renders the review history without reading each version. A user lists their own versions; listing another user's versions requires the claim issuer or identity manager role in the active organization.","summary":"List KYC versions","x-dalp-auth":"session-or-api-key"},"post":{"tags":["KYC"],"operationId":"kycV2.v2/userKycVersions/create","parameters":[{"name":"userId","in":"path","schema":{"type":"string","minLength":1,"description":"Better Auth user identifier"},"required":true},{"name":"Idempotency-Key","in":"header","schema":{"type":"string"},"required":false},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The draft version that this call created, with a link to this resource.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/KycProfileVersionsCreateOutput"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0194a7d9-0e44-7a19-b6c3-72f81d4a0e55","versionNumber":2,"status":"draft","userId":"0193fa5c-9c31-7a4d-b0e2-3f6c9d1a7b45","firstName":"Amara","lastName":"Okafor","dob":"1988-04-12T00:00:00.000Z","country":"NL","residencyStatus":"resident","nationalId":"NL-8842-1177","createdAt":"2026-06-02T08:15:00.000Z","createdBy":"0193fa5c-9c31-7a4d-b0e2-3f6c9d1a7b45"},"links":{"self":"/v2/kyc-profiles/0193fa5c-9c31-7a4d-b0e2-3f6c9d1a7b45/versions/0194a7d9-0e44-7a19-b6c3-72f81d4a0e55"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"compliance.expression.NOT_NARROWED","status":422,"message":"The compliance expression is too broad to enforce","data":{"id":"DALP-12287","why":"The compliance expression has no positive condition that narrows who it admits.","fix":"Add a positive condition, or acknowledge the allowed warning.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.DEPENDENCY_UNAVAILABLE","status":503,"message":"KYC data temporarily unavailable","data":{"id":"DALP-12248","why":"A store the KYC or user profile route reads did not answer, so the route could not complete. `data.dependency` names the store.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header and `data.dependency`.","retryable":true,"category":"dependency","dependency":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Creates a draft version for one user and returns it. The draft takes the next version number and copies its field values from `initialData` when the request carries it, from `cloneFromVersionId` when the request supplies it, and otherwise from the version that `cloneFrom` selects. A user holds one draft at a time, so set `overwriteDraft` to `true` to replace an existing draft. A user creates a draft on their own profile; creating one for another user requires the claim issuer or identity manager role in the active organization.","summary":"Create a KYC draft version","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KycProfileVersionsCreatePayload"}}},"required":false},"x-dalp-auth":"session-or-api-key"}},"/api/v2/kyc-profile-versions/{versionId}":{"get":{"tags":["KYC"],"operationId":"kycV2.v2/userKycVersion/read","parameters":[{"name":"versionId","in":"path","schema":{"type":"string","minLength":1},"required":true}],"responses":{"200":{"description":"The requested KYC version, with a link to this resource.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/KycProfileVersionReadOutput"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0194a7d1-2f88-7c05-9b3a-51d0e7c4a962","userId":"0193fa5c-9c31-7a4d-b0e2-3f6c9d1a7b45","versionNumber":1,"status":"approved","firstName":"Amara","lastName":"Okafor","dob":"1988-04-12T00:00:00.000Z","country":"NL","residencyStatus":"resident","nationalId":"NL-8842-1177","createdAt":"2026-06-02T08:15:00.000Z","createdBy":"0193fa5c-9c31-7a4d-b0e2-3f6c9d1a7b45","createdByName":"Amara Okafor","submittedAt":"2026-06-04T10:22:00.000Z","submittedBy":"0193fa5c-9c31-7a4d-b0e2-3f6c9d1a7b45","submittedByName":"Amara Okafor","reviewedAt":"2026-06-05T14:05:00.000Z","reviewedBy":"0193fa5e-7d20-7b63-9f14-8c5a2e70d419","reviewedByName":"Ada Lovelace","reviewOutcome":"approved","reviewNotes":"Passport and address document match the submitted data.","rejectionReason":null,"documentsCount":2,"openActionRequest":{"reason":"Extending the coupon window matches the harvest calendar.","requiredFields":[],"requestedBy":null,"requestedByName":null,"requestedAt":"2026-03-11T16:02:08.000Z","dueAt":"2026-06-12T00:00:00.000Z"},"canEdit":false,"canSubmit":false,"canReview":false},"links":{"self":"/v2/kyc-profile-versions/0194a7d1-2f88-7c05-9b3a-51d0e7c4a962"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"compliance.expression.NOT_NARROWED","status":422,"message":"The compliance expression is too broad to enforce","data":{"id":"DALP-12287","why":"The compliance expression has no positive condition that narrows who it admits.","fix":"Add a positive condition, or acknowledge the allowed warning.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.DEPENDENCY_UNAVAILABLE","status":503,"message":"KYC data temporarily unavailable","data":{"id":"DALP-12248","why":"A store the KYC or user profile route reads did not answer, so the route could not complete. `data.dependency` names the store.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header and `data.dependency`.","retryable":true,"category":"dependency","dependency":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one KYC version with its identity fields, its submission and review trail, the number of attached documents, and the `canEdit`, `canSubmit`, and `canReview` flags that state what the calling participant does next. A user reads their own versions; reading another user's version requires the identity manager or claim issuer role in the active organization.","summary":"Read a KYC version","x-dalp-auth":"session-or-api-key"},"patch":{"tags":["KYC"],"operationId":"kycV2.v2/userKycVersion/update","parameters":[{"name":"versionId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"name":"Idempotency-Key","in":"header","schema":{"type":"string"},"required":false},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The draft version as it now stands, with a link to this resource.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/KycProfileVersionUpdateOutput"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0194a7d9-0e44-7a19-b6c3-72f81d4a0e55","userId":"0193fa5c-9c31-7a4d-b0e2-3f6c9d1a7b45","versionNumber":2,"status":"draft","firstName":"Amara","lastName":"Okafor","dob":"1988-04-12T00:00:00.000Z","country":"NL","residencyStatus":"resident","nationalId":"NL-8842-1177","createdAt":"2026-06-02T08:15:00.000Z","createdBy":"0193fa5c-9c31-7a4d-b0e2-3f6c9d1a7b45"},"links":{"self":"/v2/kyc-profile-versions/0194a7d9-0e44-7a19-b6c3-72f81d4a0e55"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"compliance.expression.NOT_NARROWED","status":422,"message":"The compliance expression is too broad to enforce","data":{"id":"DALP-12287","why":"The compliance expression has no positive condition that narrows who it admits.","fix":"Add a positive condition, or acknowledge the allowed warning.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.DEPENDENCY_UNAVAILABLE","status":503,"message":"KYC data temporarily unavailable","data":{"id":"DALP-12248","why":"A store the KYC or user profile route reads did not answer, so the route could not complete. `data.dependency` names the store.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header and `data.dependency`.","retryable":true,"category":"dependency","dependency":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Changes the identity fields on the caller's own draft version and returns the stored result. A field that the request omits keeps its stored value, and a field sent as `null` clears it. The version stays a draft and keeps its version number, so submit it once the data is complete.","summary":"Update a KYC draft version","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KycProfileVersionUpdatePayload"}}},"required":false},"x-dalp-auth":"session-or-api-key"}},"/api/v2/kyc-profile-versions/{versionId}/submissions":{"post":{"tags":["KYC"],"operationId":"kycV2.v2/userKycVersion/submit","parameters":[{"name":"versionId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"name":"Idempotency-Key","in":"header","schema":{"type":"string"},"required":false},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The submitted version, with the submission time and the submitting participant.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/KycProfileVersionSubmitOutput"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0194a7d1-2f88-7c05-9b3a-51d0e7c4a962","status":"under_review","submittedAt":"2026-06-04T10:22:00.000Z","submittedBy":"0193fa5c-9c31-7a4d-b0e2-3f6c9d1a7b45"},"links":{"self":"/v2/kyc-profile-versions/0194a7d1-2f88-7c05-9b3a-51d0e7c4a962/submissions"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"compliance.expression.NOT_NARROWED","status":422,"message":"The compliance expression is too broad to enforce","data":{"id":"DALP-12287","why":"The compliance expression has no positive condition that narrows who it admits.","fix":"Add a positive condition, or acknowledge the allowed warning.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.DEPENDENCY_UNAVAILABLE","status":503,"message":"KYC data temporarily unavailable","data":{"id":"DALP-12248","why":"A store the KYC or user profile route reads did not answer, so the route could not complete. `data.dependency` names the store.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header and `data.dependency`.","retryable":true,"category":"dependency","dependency":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Moves the caller's own draft version to `under_review` and records the submission time and the submitting participant. A version under review holds its fields and its documents until a reviewer approves it, rejects it, or requests an update.","summary":"Submit a KYC version for review","x-dalp-auth":"session-or-api-key"}},"/api/v2/kyc-profile-versions/{versionId}/approvals":{"post":{"tags":["KYC"],"operationId":"kycV2.v2/userKycVersion/approve","parameters":[{"name":"versionId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"name":"Idempotency-Key","in":"header","schema":{"type":"string"},"required":false},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The approved version, with the recorded review decision.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/KycProfileVersionApproveOutput"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0194a7d1-2f88-7c05-9b3a-51d0e7c4a962","status":"approved","reviewOutcome":"approved","reviewedAt":"2026-06-05T14:05:00.000Z","reviewedBy":"0193fa5e-7d20-7b63-9f14-8c5a2e70d419","reviewNotes":"Passport and address document match the submitted data."},"links":{"self":"/v2/kyc-profile-versions/0194a7d1-2f88-7c05-9b3a-51d0e7c4a962/approvals"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"compliance.expression.NOT_NARROWED","status":422,"message":"The compliance expression is too broad to enforce","data":{"id":"DALP-12287","why":"The compliance expression has no positive condition that narrows who it admits.","fix":"Add a positive condition, or acknowledge the allowed warning.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.DEPENDENCY_UNAVAILABLE","status":503,"message":"KYC data temporarily unavailable","data":{"id":"DALP-12248","why":"A store the KYC or user profile route reads did not answer, so the route could not complete. `data.dependency` names the store.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header and `data.dependency`.","retryable":true,"category":"dependency","dependency":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Records an approval on a version that sits under review. The version becomes the approved version of the profile, the profile status moves to `approved`, the pending-update flag clears, and the platform closes the open action requests on the profile as fulfilled. The platform declines the approval while another user in the same organization holds an approved version that carries the same `nationalId` and `country`. This call requires the claim issuer or identity manager role in the active organization.","summary":"Approve a KYC version","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"reviewNotes":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false}}},"required":false},"x-dalp-auth":"session-or-api-key"}},"/api/v2/kyc-profile-versions/{versionId}/rejections":{"post":{"tags":["KYC"],"operationId":"kycV2.v2/userKycVersion/reject","parameters":[{"name":"versionId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"name":"Idempotency-Key","in":"header","schema":{"type":"string"},"required":false},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The rejected version, with the recorded reason and reviewer.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/KycProfileVersionRejectOutput"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0194a7d1-2f88-7c05-9b3a-51d0e7c4a962","status":"rejected","reviewOutcome":"rejected","rejectionReason":"The address document dates from more than three months ago.","reviewedAt":"2026-06-05T14:05:00.000Z","reviewedBy":"0193fa5e-7d20-7b63-9f14-8c5a2e70d419"},"links":{"self":"/v2/kyc-profile-versions/0194a7d1-2f88-7c05-9b3a-51d0e7c4a962/rejections"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"compliance.expression.NOT_NARROWED","status":422,"message":"The compliance expression is too broad to enforce","data":{"id":"DALP-12287","why":"The compliance expression has no positive condition that narrows who it admits.","fix":"Add a positive condition, or acknowledge the allowed warning.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.DEPENDENCY_UNAVAILABLE","status":503,"message":"KYC data temporarily unavailable","data":{"id":"DALP-12248","why":"A store the KYC or user profile route reads did not answer, so the route could not complete. `data.dependency` names the store.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header and `data.dependency`.","retryable":true,"category":"dependency","dependency":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Records a rejection with a reason on a version that sits under review. The rejected version keeps its data and its history, the profile keeps an earlier approved version, and the profile status returns to `approved` when an approved version exists or moves to `incomplete` when none does. This call requires the claim issuer or identity manager role in the active organization.","summary":"Reject a KYC version","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"rejectionReason":{"type":"string","minLength":10},"reviewNotes":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["rejectionReason"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/kyc-profile-versions/{versionId}/update-requests":{"post":{"tags":["KYC"],"operationId":"kycV2.v2/userKycVersion/requestUpdate","parameters":[{"name":"versionId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"name":"Idempotency-Key","in":"header","schema":{"type":"string"},"required":false},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The version under review and the action request that this call opened.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/KycProfileVersionRequestUpdateOutput"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"version":{"id":"0194a7d1-2f88-7c05-9b3a-51d0e7c4a962","status":"under_review"},"actionRequest":{"id":"0194a7d5-1c9f-7b62-9d47-8e0a3f52c714","status":"open","reason":"Upload a proof of address that a provider issued in the last three months.","requiredFields":["proof_of_address"],"dueAt":"2026-06-12T00:00:00.000Z","requestedAt":"2026-06-05T14:05:00.000Z"}},"links":{"self":"/v2/kyc-profile-versions/0194a7d1-2f88-7c05-9b3a-51d0e7c4a962/update-requests"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"compliance.expression.NOT_NARROWED","status":422,"message":"The compliance expression is too broad to enforce","data":{"id":"DALP-12287","why":"The compliance expression has no positive condition that narrows who it admits.","fix":"Add a positive condition, or acknowledge the allowed warning.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.DEPENDENCY_UNAVAILABLE","status":503,"message":"KYC data temporarily unavailable","data":{"id":"DALP-12248","why":"A store the KYC or user profile route reads did not answer, so the route could not complete. `data.dependency` names the store.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header and `data.dependency`.","retryable":true,"category":"dependency","dependency":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Opens an action request against a version that sits under review and asks the user for more information. The version stays `under_review`, and the response carries the open request with its reason, its requested fields, and its due date. Send `dueAt` as an ISO 8601 timestamp to record when the changes fall due; the platform stores that timestamp and returns it on the action request. This call requires the claim issuer or identity manager role in the active organization.","summary":"Request changes on a KYC version","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"type":"string","minLength":10},"requiredFields":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"dueAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"reviewNotes":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["reason"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/kyc-profile-versions/{versionId}/documents":{"get":{"tags":["KYC"],"operationId":"kycV2.v2/userKycDocuments/list","parameters":[{"name":"versionId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"name":"filter","in":"query","schema":{"type":"object","properties":{"documentType":{"anyOf":[{"type":"string","enum":["passport","drivers_license","national_id","proof_of_address","other"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"fileName":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"fileSize":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"string"}]},{"type":"object","properties":{"eq":{"anyOf":[{"type":"number"},{"type":"string"}]},"ne":{"anyOf":[{"type":"number"},{"type":"string"}]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"anyOf":[{"type":"number"},{"type":"string"}]},"gte":{"anyOf":[{"type":"number"},{"type":"string"}]},"lt":{"anyOf":[{"type":"number"},{"type":"string"}]},"lte":{"anyOf":[{"type":"number"},{"type":"string"}]},"between":{"type":"string","maxLength":64}},"additionalProperties":false}]},"mimeType":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"uploadedAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"A page of documents attached to the requested version, with paging links and the total count.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/KycProfileVersionDocumentsV2ListItem"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"0194a7d3-6b12-7e44-8a90-2c7f5d31b608","documentType":"proof_of_address","fileName":"proof-of-address.pdf","fileSize":28,"mimeType":"application/pdf","uploadedAt":"2026-06-04T09:58:00.000Z","uploadedBy":"0193fa5c-9c31-7a4d-b0e2-3f6c9d1a7b45"}],"meta":{"total":1},"links":{"self":"/v2/kyc-profile-versions/0194a7d1-2f88-7c05-9b3a-51d0e7c4a962/documents?sort=uploadedAt&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/kyc-profile-versions/0194a7d1-2f88-7c05-9b3a-51d0e7c4a962/documents?sort=uploadedAt&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/kyc-profile-versions/0194a7d1-2f88-7c05-9b3a-51d0e7c4a962/documents?sort=uploadedAt&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"compliance.expression.NOT_NARROWED","status":422,"message":"The compliance expression is too broad to enforce","data":{"id":"DALP-12287","why":"The compliance expression has no positive condition that narrows who it admits.","fix":"Add a positive condition, or acknowledge the allowed warning.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.DEPENDENCY_UNAVAILABLE","status":503,"message":"KYC data temporarily unavailable","data":{"id":"DALP-12248","why":"A store the KYC or user profile route reads did not answer, so the route could not complete. `data.dependency` names the store.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header and `data.dependency`.","retryable":true,"category":"dependency","dependency":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the documents attached to one KYC version as a page, ordered by `uploadedAt` from the earliest upload by default. Each entry carries the document type, the file name, the media type, the size in bytes, and the participant who uploaded it. This projection leaves out storage locations, so request a download link to read a file.","summary":"List KYC version documents","x-dalp-auth":"session-or-api-key"},"post":{"tags":["KYC"],"operationId":"kycV2.v2/userKycDocuments/confirmUpload","parameters":[{"name":"versionId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"name":"Idempotency-Key","in":"header","schema":{"type":"string"},"required":false},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The stored document record, with a link to this resource.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/KycProfileVersionDocumentConfirmUploadOutput"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0194a7d3-6b12-7e44-8a90-2c7f5d31b608","versionId":"0194a7d1-2f88-7c05-9b3a-51d0e7c4a962","documentType":"proof_of_address","fileName":"proof-of-address.pdf","fileSize":28,"mimeType":"application/pdf","uploadedAt":"2026-06-04T09:58:00.000Z","uploadedBy":"0193fa5c-9c31-7a4d-b0e2-3f6c9d1a7b45"},"links":{"self":"/v2/kyc-profile-versions/0194a7d1-2f88-7c05-9b3a-51d0e7c4a962/documents/0194a7d3-6b12-7e44-8a90-2c7f5d31b608"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"compliance.expression.NOT_NARROWED","status":422,"message":"The compliance expression is too broad to enforce","data":{"id":"DALP-12287","why":"The compliance expression has no positive condition that narrows who it admits.","fix":"Add a positive condition, or acknowledge the allowed warning.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.DEPENDENCY_UNAVAILABLE","status":503,"message":"KYC data temporarily unavailable","data":{"id":"DALP-12248","why":"A store the KYC or user profile route reads did not answer, so the route could not complete. `data.dependency` names the store.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header and `data.dependency`.","retryable":true,"category":"dependency","dependency":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Uploads one document to a draft version and returns the stored record. Send the file as base64 in `fileData`, set `fileSize` to the decoded byte length, and set `mimeType` to one of `application/pdf`, `image/jpeg`, `image/png`, or `image/webp`. Set `documentType` to what the file shows: `passport`, `drivers_license`, `national_id`, `proof_of_address`, or `other`. The platform reads the leading bytes of the decoded file and declines the upload when they describe a different media type. A user uploads to their own version; uploading for another user requires the identity manager role in the active organization.","summary":"Attach a document to a KYC version","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"documentType":{"type":"string","enum":["passport","drivers_license","national_id","proof_of_address","other"]},"fileName":{"type":"string","minLength":1,"maxLength":255,"pattern":"^[^\\p{Cc}\\p{Cs}/\\\\]+$"},"fileSize":{"type":"integer","exclusiveMinimum":0,"maximum":26214400},"mimeType":{"type":"string","enum":["application/pdf","image/jpeg","image/png","image/webp"]},"fileData":{"type":"string","minLength":1,"maxLength":34952536}},"required":["documentType","fileName","fileSize","mimeType","fileData"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/kyc-profile-versions/{versionId}/documents/{documentId}":{"delete":{"tags":["KYC"],"operationId":"kycV2.v2/userKycDocuments/delete","parameters":[{"name":"versionId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"name":"documentId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"name":"Idempotency-Key","in":"header","schema":{"type":"string"},"required":false},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"An empty `data` member, which confirms that the version no longer holds the document.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteResponse"},"examples":{"example-1":{"value":{"data":null}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"compliance.expression.NOT_NARROWED","status":422,"message":"The compliance expression is too broad to enforce","data":{"id":"DALP-12287","why":"The compliance expression has no positive condition that narrows who it admits.","fix":"Add a positive condition, or acknowledge the allowed warning.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.DEPENDENCY_UNAVAILABLE","status":503,"message":"KYC data temporarily unavailable","data":{"id":"DALP-12248","why":"A store the KYC or user profile route reads did not answer, so the route could not complete. `data.dependency` names the store.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header and `data.dependency`.","retryable":true,"category":"dependency","dependency":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Removes one document from the caller's own draft version. A version that sits under review or that a reviewer already decided keeps its documents, so create a new draft to change the attachments.","summary":"Remove a KYC document","x-dalp-auth":"session-or-api-key"}},"/api/v2/kyc-profile-versions/{versionId}/documents/{documentId}/downloads":{"post":{"tags":["KYC"],"operationId":"kycV2.v2/userKycDocuments/getDownloadUrl","parameters":[{"name":"versionId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"name":"documentId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"name":"Idempotency-Key","in":"header","schema":{"type":"string"},"required":false},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"A download link for the document, with its file name, its media type, and the link expiry.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/KycProfileVersionDocumentGetDownloadUrlOutput"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"downloadUrl":"/api/v2/kyc-profile-versions/0194a7d1-2f88-7c05-9b3a-51d0e7c4a962/documents/0194a7d3-6b12-7e44-8a90-2c7f5d31b608/download","fileName":"proof-of-address.pdf","mimeType":"application/pdf","expiresAt":"2026-06-05T15:05:00.000Z"},"links":{"self":"/v2/kyc-profile-versions/0194a7d1-2f88-7c05-9b3a-51d0e7c4a962/documents/0194a7d3-6b12-7e44-8a90-2c7f5d31b608/downloads"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"compliance.expression.NOT_NARROWED","status":422,"message":"The compliance expression is too broad to enforce","data":{"id":"DALP-12287","why":"The compliance expression has no positive condition that narrows who it admits.","fix":"Add a positive condition, or acknowledge the allowed warning.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.DEPENDENCY_UNAVAILABLE","status":503,"message":"KYC data temporarily unavailable","data":{"id":"DALP-12248","why":"A store the KYC or user profile route reads did not answer, so the route could not complete. `data.dependency` names the store.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header and `data.dependency`.","retryable":true,"category":"dependency","dependency":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns a download link for one document attached to a KYC version, together with the file name, the media type, and the `expiresAt` timestamp of the link. The link carries a one-hour lifetime, so request a fresh link once `expiresAt` passes.","summary":"Request a document download link","x-dalp-auth":"session-or-api-key"}},"/api/v2/kyc-profile-versions/{versionId}/documents/{documentId}/download":{"get":{"tags":["KYC"],"operationId":"kycV2.v2/userKycDocuments/download","parameters":[{"name":"versionId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"name":"documentId","in":"path","schema":{"type":"string","minLength":1},"required":true}],"responses":{"200":{"description":"The decrypted document bytes, returned with the media type recorded when the document was uploaded.","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"},"examples":{"example-1":{"value":"JVBERi0xLjcKJcfl8uXrp/Og0MTGCiUlRU9GCg=="}}}},"headers":{"content-disposition":{"schema":{"type":"string"},"required":true}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"compliance.expression.NOT_NARROWED","status":422,"message":"The compliance expression is too broad to enforce","data":{"id":"DALP-12287","why":"The compliance expression has no positive condition that narrows who it admits.","fix":"Add a positive condition, or acknowledge the allowed warning.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.DEPENDENCY_UNAVAILABLE","status":503,"message":"KYC data temporarily unavailable","data":{"id":"DALP-12248","why":"A store the KYC or user profile route reads did not answer, so the route could not complete. `data.dependency` names the store.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header and `data.dependency`.","retryable":true,"category":"dependency","dependency":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Return the decrypted bytes of one document attached to a KYC version. The caller must own the version or hold an authorized review role in its organization. Use the response media type and file metadata from the document record when saving or displaying the bytes.","summary":"Download a KYC document","x-dalp-auth":"session-or-api-key"}},"/api/v2/kyc-action-requests/{requestId}/fulfillments":{"post":{"tags":["KYC"],"operationId":"kycV2.v2/userKycActionRequest/fulfill","parameters":[{"name":"requestId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"name":"Idempotency-Key","in":"header","schema":{"type":"string"},"required":false},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The closed action request, with the time that the platform recorded.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/KycActionRequestFulfillOutput"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0194a7d5-1c9f-7b62-9d47-8e0a3f52c714","status":"fulfilled","fulfilledAt":"2026-06-05T14:05:00.000Z"},"links":{"self":"/v2/kyc-action-requests/0194a7d5-1c9f-7b62-9d47-8e0a3f52c714/fulfillments"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","USER_KYC_PROFILE_NOT_FOUND_ACTION","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"compliance.expression.NOT_NARROWED","status":422,"message":"The compliance expression is too broad to enforce","data":{"id":"DALP-12287","why":"The compliance expression has no positive condition that narrows who it admits.","fix":"Add a positive condition, or acknowledge the allowed warning.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.DEPENDENCY_UNAVAILABLE","status":503,"message":"KYC data temporarily unavailable","data":{"id":"DALP-12248","why":"A store the KYC or user profile route reads did not answer, so the route could not complete. `data.dependency` names the store.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header and `data.dependency`.","retryable":true,"category":"dependency","dependency":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Closes an open action request that the caller owns and records the time. Supply the requested information first, for example by updating the draft version or by attaching the missing document, because closing the request leaves the version it belongs to unchanged.","summary":"Fulfill a KYC action request","x-dalp-auth":"session-or-api-key"}},"/api/v2/kyc-action-requests":{"get":{"tags":["KYC"],"operationId":"kycV2.kycActionRequestsList","parameters":[],"responses":{"200":{"description":"Your KYC action requests, each with its status, reason, required fields, and request, due, and fulfilment times.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/KycActionRequest"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","versionId":"0194a7d1-2f88-7c05-9b3a-51d0e7c4a962","status":"open","reason":"Extending the coupon window matches the harvest calendar.","requiredFields":[],"requestedAt":"2026-03-11T16:02:08.000Z","requestedBy":"user_northwind_treasury","dueAt":"2026-06-12T00:00:00.000Z","fulfilledAt":"2026-06-05T14:05:00.000Z","fulfilledVersionId":null}],"meta":{"total":1,"facets":{}},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants","first":"/v2/accounts?sort=-firstSeenBlock&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/accounts?sort=-firstSeenBlock&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"compliance.expression.NOT_NARROWED","status":422,"message":"The compliance expression is too broad to enforce","data":{"id":"DALP-12287","why":"The compliance expression has no positive condition that narrows who it admits.","fix":"Add a positive condition, or acknowledge the allowed warning.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.DEPENDENCY_UNAVAILABLE","status":503,"message":"KYC data temporarily unavailable","data":{"id":"DALP-12248","why":"A store the KYC or user profile route reads did not answer, so the route could not complete. `data.dependency` names the store.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header and `data.dependency`.","retryable":true,"category":"dependency","dependency":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the KYC action requests addressed to you, with the reason a reviewer gave, the profile fields they need, when each is due, and whether you have fulfilled it. Repeating the request is safe.","summary":"List your KYC action requests","x-dalp-auth":"session-or-api-key"}},"/api/v2/users/{userId}/profile":{"get":{"tags":["Users"],"operationId":"v2UserProfile.v2/userProfile/read","parameters":[{"name":"userId","in":"path","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"The profile of the requested user, with a link to this resource.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/UserProfile"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"userId":"0193fa5c-9c31-7a4d-b0e2-3f6c9d1a7b45","status":"approved","personalInfoCompleted":true,"approvedVersionId":"0194a7d7-58e3-7f10-9c26-4b7d0e91a400","latestVersionId":"0194a7d7-58e3-7f10-9c26-4b7d0e91a400","fixed":[{"key":"firstName","value":"Alice","review":{"state":"approved","note":null}},{"key":"lastName","value":"Martin","review":{"state":"approved","note":null}},{"key":"country","value":"BE","review":{"state":"approved","note":null}},{"key":"nationalId","value":"BE-90041212345","review":{"state":"approved","note":null}}],"sections":[{"sectionId":"019c0000-0000-7000-8000-0000000d0001","slug":"identity-details","name":"Identity details","fields":[{"key":"dob","field":{"type":"date","mutability":"restricted-mutable","storage":"offchain","audience":"user","label":"Date of birth","required":true},"value":"1990-04-12","suggested":null,"review":{"state":"approved","note":null}}]}]},"links":{"self":"/v2/users/0193fa5c-9c31-7a4d-b0e2-3f6c9d1a7b45/profile"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"compliance.expression.NOT_NARROWED","status":422,"message":"The compliance expression is too broad to enforce","data":{"id":"DALP-12287","why":"The compliance expression has no positive condition that narrows who it admits.","fix":"Add a positive condition, or acknowledge the allowed warning.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.DEPENDENCY_UNAVAILABLE","status":503,"message":"KYC data temporarily unavailable","data":{"id":"DALP-12248","why":"A store the KYC or user profile route reads did not answer, so the route could not complete. `data.dependency` names the store.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header and `data.dependency`.","retryable":true,"category":"dependency","dependency":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the profile one user holds in the active organization: the fixed fields and every profile section the organization sees, in position order, each field with its definition, the value the latest version holds, and its review state. `status` derives from the field reviews. On the user's own read through `me`, an empty user-filled field of a system section carries `suggested`: the user's newest approved value for it from another organization. A claim issuer reads another user's profile without suggestions; neither receives manager-filled fields, their definitions, or who edited or reviewed a field. An identity manager of the active organization receives every field.","summary":"Read a user profile","x-dalp-auth":"session-or-api-key"},"patch":{"tags":["Users"],"operationId":"v2UserProfile.v2/userProfile/update","parameters":[{"name":"userId","in":"path","schema":{"type":"string"},"required":true},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","description":"Caller-generated key that makes a repeated request resolve to the first attempt instead of starting a second one.","examples":["3f1c9a26-4c1e-4a53-9c6a-9c9d3e1b7a11"]},"required":false},{"name":"Prefer","in":"header","schema":{"type":"string","description":"RFC 7240 preference. Send `wait=N` (5 to 99 seconds) to wait for settlement, `respond-async` to take the 202 handle at once, or both to wait and then degrade to 202.","examples":["wait=30","respond-async, wait=30"]},"required":false}],"responses":{"200":{"description":"The profile after the write, as the caller may read it, with a link to this resource.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/UserProfile"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"userId":"0193fa5c-9c31-7a4d-b0e2-3f6c9d1a7b45","status":"approved","personalInfoCompleted":true,"approvedVersionId":"0194a7d7-58e3-7f10-9c26-4b7d0e91a400","latestVersionId":"0194a7d7-58e3-7f10-9c26-4b7d0e91a400","fixed":[{"key":"firstName","value":"Alice","review":{"state":"approved","note":null}},{"key":"lastName","value":"Martin","review":{"state":"approved","note":null}},{"key":"country","value":"BE","review":{"state":"approved","note":null}},{"key":"nationalId","value":"BE-90041212345","review":{"state":"approved","note":null}}],"sections":[{"sectionId":"019c0000-0000-7000-8000-0000000d0001","slug":"identity-details","name":"Identity details","fields":[{"key":"dob","field":{"type":"date","mutability":"restricted-mutable","storage":"offchain","audience":"user","label":"Date of birth","required":true},"value":"1990-04-12","suggested":null,"review":{"state":"approved","note":null}}]}]},"links":{"self":"/v2/users/0193fa5c-9c31-7a4d-b0e2-3f6c9d1a7b45/profile"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"compliance.expression.NOT_NARROWED","status":422,"message":"The compliance expression is too broad to enforce","data":{"id":"DALP-12287","why":"The compliance expression has no positive condition that narrows who it admits.","fix":"Add a positive condition, or acknowledge the allowed warning.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.DEPENDENCY_UNAVAILABLE","status":503,"message":"KYC data temporarily unavailable","data":{"id":"DALP-12248","why":"A store the KYC or user profile route reads did not answer, so the route could not complete. `data.dependency` names the store.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header and `data.dependency`.","retryable":true,"category":"dependency","dependency":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Saves profile values keyed by section slug and field key, and fixed fields by name, as one new version of the profile the user holds in the active organization; a key left out keeps its value and an empty string clears it. A user saves their own fixed and user-filled fields. An identity manager of the active organization saves any field of another user. A saved fixed or user-filled field becomes unreviewed; a manager-filled field is approved by the manager who saved it. With `approve: true` (Save and approve), an identity manager also approves every unreviewed field as of the new version. Only sections the organization sees are written. A field outside them, a field the caller may not write, or a value that does not fit its definition answers 400 naming each field as `<slug>.<key>`, never a value.","summary":"Save a user profile","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserProfileUpdateBody"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/users/{userId}/profile/approve":{"post":{"tags":["Users"],"operationId":"v2UserProfile.v2/userProfile/approveFields","parameters":[{"name":"userId","in":"path","schema":{"type":"string"},"required":true},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","description":"Caller-generated key that makes a repeated request resolve to the first attempt instead of starting a second one.","examples":["3f1c9a26-4c1e-4a53-9c6a-9c9d3e1b7a11"]},"required":false},{"name":"Prefer","in":"header","schema":{"type":"string","description":"RFC 7240 preference. Send `wait=N` (5 to 99 seconds) to wait for settlement, `respond-async` to take the 202 handle at once, or both to wait and then degrade to 202.","examples":["wait=30","respond-async, wait=30"]},"required":false}],"responses":{"200":{"description":"The profile after the review, with a link to this resource.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/UserProfile"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"userId":"0193fa5c-9c31-7a4d-b0e2-3f6c9d1a7b45","status":"approved","personalInfoCompleted":true,"approvedVersionId":"0194a7d7-58e3-7f10-9c26-4b7d0e91a400","latestVersionId":"0194a7d7-58e3-7f10-9c26-4b7d0e91a400","fixed":[{"key":"firstName","value":"Alice","review":{"state":"approved","note":null}},{"key":"lastName","value":"Martin","review":{"state":"approved","note":null}},{"key":"country","value":"BE","review":{"state":"approved","note":null}},{"key":"nationalId","value":"BE-90041212345","review":{"state":"approved","note":null}}],"sections":[{"sectionId":"019c0000-0000-7000-8000-0000000d0001","slug":"identity-details","name":"Identity details","fields":[{"key":"dob","field":{"type":"date","mutability":"restricted-mutable","storage":"offchain","audience":"user","label":"Date of birth","required":true},"value":"1990-04-12","suggested":null,"review":{"state":"approved","note":null}}]}]},"links":{"self":"/v2/users/0193fa5c-9c31-7a4d-b0e2-3f6c9d1a7b45/profile"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client","errors":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"compliance.expression.NOT_NARROWED","status":422,"message":"The compliance expression is too broad to enforce","data":{"id":"DALP-12287","why":"The compliance expression has no positive condition that narrows who it admits.","fix":"Add a positive condition, or acknowledge the allowed warning.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.DEPENDENCY_UNAVAILABLE","status":503,"message":"KYC data temporarily unavailable","data":{"id":"DALP-12248","why":"A store the KYC or user profile route reads did not answer, so the route could not complete. `data.dependency` names the store.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header and `data.dependency`.","retryable":true,"category":"dependency","dependency":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"An identity manager of the active organization approves fields of another user's profile as of the named version: `all` approves every unreviewed field, a list names fixed fields by name and section fields as `<slug>.<key>`. A version older than a named field's last save answers 409; a manager-filled field or a field the profile does not hold answers 400 naming it.","summary":"Approve user profile fields","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserProfileApproveBody"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/users/{userId}/profile/request-changes":{"post":{"tags":["Users"],"operationId":"v2UserProfile.v2/userProfile/requestChanges","parameters":[{"name":"userId","in":"path","schema":{"type":"string"},"required":true},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","description":"Caller-generated key that makes a repeated request resolve to the first attempt instead of starting a second one.","examples":["3f1c9a26-4c1e-4a53-9c6a-9c9d3e1b7a11"]},"required":false},{"name":"Prefer","in":"header","schema":{"type":"string","description":"RFC 7240 preference. Send `wait=N` (5 to 99 seconds) to wait for settlement, `respond-async` to take the 202 handle at once, or both to wait and then degrade to 202.","examples":["wait=30","respond-async, wait=30"]},"required":false}],"responses":{"200":{"description":"The profile after the review, with a link to this resource.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/UserProfile"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"userId":"0193fa5c-9c31-7a4d-b0e2-3f6c9d1a7b45","status":"approved","personalInfoCompleted":true,"approvedVersionId":"0194a7d7-58e3-7f10-9c26-4b7d0e91a400","latestVersionId":"0194a7d7-58e3-7f10-9c26-4b7d0e91a400","fixed":[{"key":"firstName","value":"Alice","review":{"state":"approved","note":null}},{"key":"lastName","value":"Martin","review":{"state":"approved","note":null}},{"key":"country","value":"BE","review":{"state":"approved","note":null}},{"key":"nationalId","value":"BE-90041212345","review":{"state":"approved","note":null}}],"sections":[{"sectionId":"019c0000-0000-7000-8000-0000000d0001","slug":"identity-details","name":"Identity details","fields":[{"key":"dob","field":{"type":"date","mutability":"restricted-mutable","storage":"offchain","audience":"user","label":"Date of birth","required":true},"value":"1990-04-12","suggested":null,"review":{"state":"approved","note":null}}]}]},"links":{"self":"/v2/users/0193fa5c-9c31-7a4d-b0e2-3f6c9d1a7b45/profile"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client","errors":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"compliance.expression.NOT_NARROWED","status":422,"message":"The compliance expression is too broad to enforce","data":{"id":"DALP-12287","why":"The compliance expression has no positive condition that narrows who it admits.","fix":"Add a positive condition, or acknowledge the allowed warning.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.DEPENDENCY_UNAVAILABLE","status":503,"message":"KYC data temporarily unavailable","data":{"id":"DALP-12248","why":"A store the KYC or user profile route reads did not answer, so the route could not complete. `data.dependency` names the store.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header and `data.dependency`.","retryable":true,"category":"dependency","dependency":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"An identity manager of the active organization asks the user to change named fixed or user-filled fields, as of the named version, with a note the user sees on each field and an optional due date. The user's next save of a named field returns it to review. A version older than a named field's last save answers 409; a manager-filled field answers 400 naming it.","summary":"Request changes to user profile fields","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserProfileChangesBody"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/users/{userId}/profile/versions":{"get":{"tags":["Users"],"operationId":"v2UserProfile.v2/userProfile/versions","parameters":[{"name":"userId","in":"path","schema":{"type":"string"},"required":true},{"name":"filter","in":"query","schema":{"type":"object","additionalProperties":true},"required":false},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"A page of the versions of the user's profile in the active organization, with paging links.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/UserProfileVersion"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"0194a7d7-58e3-7f10-9c26-4b7d0e91a400","versionNumber":1,"status":"approved","createdAt":"2026-04-12T09:00:00.000Z","submittedAt":"2026-04-12T09:05:00.000Z","reviewedAt":"2026-04-12T09:30:00.000Z","reviewOutcome":"approved","isDraft":false,"isUnderReview":false,"isApproved":true,"isCurrent":true,"values":{"identity-details":{"dob":"1990-04-12"}}}],"meta":{"total":1},"links":{"self":"/v2/users/0193fa5c-9c31-7a4d-b0e2-3f6c9d1a7b45/profile/versions","first":"/v2/users/0193fa5c-9c31-7a4d-b0e2-3f6c9d1a7b45/profile/versions","prev":null,"next":null,"last":"/v2/users/0193fa5c-9c31-7a4d-b0e2-3f6c9d1a7b45/profile/versions"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"compliance.expression.NOT_NARROWED","status":422,"message":"The compliance expression is too broad to enforce","data":{"id":"DALP-12287","why":"The compliance expression has no positive condition that narrows who it admits.","fix":"Add a positive condition, or acknowledge the allowed warning.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.DEPENDENCY_UNAVAILABLE","status":503,"message":"KYC data temporarily unavailable","data":{"id":"DALP-12248","why":"A store the KYC or user profile route reads did not answer, so the route could not complete. `data.dependency` names the store.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header and `data.dependency`.","retryable":true,"category":"dependency","dependency":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the versions of the profile one user holds in the active organization as a page, ordered by `versionNumber`, which counts from 1 within that profile. Saved values include retired sections. A user lists their own versions; listing another user's versions requires the claim issuer or identity manager role in the active organization. Manager-filled values and editor or reviewer identities reach identity managers only.","summary":"List user profile versions","x-dalp-auth":"session-or-api-key"}},"/api/v2/compliance/providers":{"get":{"tags":["Compliance providers"],"operationId":"complianceProvidersV2.complianceProvidersList","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"createdAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"providerKind":{"anyOf":[{"type":"string","enum":["sumsub","sumsub-aml","sumsub-kyt","complyadvantage","elliptic","jumio","middesk","onfido","persona","trulioo","veriff"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"q":{"type":"string","minLength":1,"maxLength":1000},"status":{"anyOf":[{"type":"string","enum":["pending","active","paused","revoked","failed"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"updatedAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"A page of compliance providers, with the total match count and the links for reaching the other pages.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ComplianceProviderView"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"b6f2c0a4-1d83-4f1e-9c47-2a5e8d0b7311","participantId":"c0b8d4b0-3c5a-4b62-9a2e-2f0f6f4a5f10","providerKind":"sumsub","status":"active","statusExplanation":"Active and accepting provider webhooks.","lastHealthCheck":{"status":"healthy","checkedAt":"2026-03-11T09:24:05.418Z","message":"All credential references resolved."},"issuerEoaAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","onchainIdentityAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","providerApiKeyRef":"compliance/provider/b6f2c0a4-1d83-4f1e-9c47-2a5e8d0b7311/api-key","webhookUrlToken":"7c4e19d2-58a6-4b0f-9d31-e2f60c8a4517","webhookAuthMode":"hmac","webhookIpAllowlist":null,"pendingSecretExpiresAt":null,"lastActivity":null,"topics":[{"providerId":"b6f2c0a4-1d83-4f1e-9c47-2a5e8d0b7311","topicName":"knowYourCustomer","topicId":"10101010","webhookUrlToken":"7c4e19d2-58a6-4b0f-9d31-e2f60c8a4517","status":"active","revocationSeverityThreshold":80,"claimValiditySeconds":null,"notificationChannels":[{}],"lastActivity":null,"createdAt":"2026-02-27T14:08:51.002Z","updatedAt":"2026-03-11T09:24:05.418Z"}],"topicsCount":1,"activeTopicsCount":1,"revokedTopicsCount":0,"createdAt":"2026-02-27T14:08:51.002Z","updatedAt":"2026-03-11T09:24:05.418Z"}],"meta":{"total":1,"facets":{}},"links":{"self":"/v2/compliance/providers?sort=-updatedAt&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/compliance/providers?sort=-updatedAt&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/compliance/providers?sort=-updatedAt&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"compliance.expression.NOT_NARROWED","status":422,"message":"The compliance expression is too broad to enforce","data":{"id":"DALP-12287","why":"The compliance expression has no positive condition that narrows who it admits.","fix":"Add a positive condition, or acknowledge the allowed warning.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","compliance.executor.DEPENDENCY_UNAVAILABLE","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"compliance.executor.DEPENDENCY_UNAVAILABLE","status":503,"message":"Compliance authorization temporarily unavailable","data":{"id":"DALP-12268","why":"The custody account directory did not resolve the executor needed to check this caller's compliance role.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the compliance providers registered for the active organization and system, each with its topic counts and most recent verdict or alert. Supports sorting, offset pagination, field filters, and global search. The platform orders results by `-updatedAt` unless `sort` says otherwise.","summary":"List compliance providers","x-dalp-auth":"session-or-api-key"},"post":{"tags":["Compliance providers"],"operationId":"complianceProvidersV2.complianceProvidersCreate","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The compliance provider as it now stands, with the topics configured under it.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ComplianceProviderView"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"b6f2c0a4-1d83-4f1e-9c47-2a5e8d0b7311","participantId":"c0b8d4b0-3c5a-4b62-9a2e-2f0f6f4a5f10","providerKind":"sumsub","status":"active","statusExplanation":"Active and accepting provider webhooks.","lastHealthCheck":{"status":"healthy","checkedAt":"2026-03-11T09:24:05.418Z","message":"All credential references resolved."},"issuerEoaAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","onchainIdentityAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","providerApiKeyRef":"compliance/provider/b6f2c0a4-1d83-4f1e-9c47-2a5e8d0b7311/api-key","webhookUrlToken":"7c4e19d2-58a6-4b0f-9d31-e2f60c8a4517","webhookAuthMode":"hmac","webhookIpAllowlist":null,"pendingSecretExpiresAt":null,"lastActivity":null,"topics":[{"providerId":"b6f2c0a4-1d83-4f1e-9c47-2a5e8d0b7311","topicName":"knowYourCustomer","topicId":"10101010","webhookUrlToken":"7c4e19d2-58a6-4b0f-9d31-e2f60c8a4517","status":"active","revocationSeverityThreshold":80,"claimValiditySeconds":null,"notificationChannels":[{}],"lastActivity":null,"createdAt":"2026-02-27T14:08:51.002Z","updatedAt":"2026-03-11T09:24:05.418Z"}],"topicsCount":1,"activeTopicsCount":1,"revokedTopicsCount":0,"createdAt":"2026-02-27T14:08:51.002Z","updatedAt":"2026-03-11T09:24:05.418Z"},"links":{"self":"/v2/compliance/providers/b6f2c0a4-1d83-4f1e-9c47-2a5e8d0b7311"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"compliance.expression.NOT_NARROWED","status":422,"message":"The compliance expression is too broad to enforce","data":{"id":"DALP-12287","why":"The compliance expression has no positive condition that narrows who it admits.","fix":"Add a positive condition, or acknowledge the allowed warning.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","compliance.executor.DEPENDENCY_UNAVAILABLE","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"compliance.executor.DEPENDENCY_UNAVAILABLE","status":503,"message":"Compliance authorization temporarily unavailable","data":{"id":"DALP-12268","why":"The custody account directory did not resolve the executor needed to check this caller's compliance role.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Stores the provider credentials and the webhook signing secret, then provisions a claim-issuer identity for the first topic. Requires wallet verification. When provisioning does not complete, the platform deletes the secrets it stored for the provider that was never created. A session caller also sends the `X-Step-Up-Challenge` header, issued by `POST /api/v2/step-up-challenges` for this operation, target, and body; the challenge is single-use.","summary":"Create a compliance provider","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComplianceProviderCreateBody"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/compliance/providers/write-authority":{"get":{"tags":["Compliance providers"],"operationId":"complianceProvidersV2.complianceProviderWriteAuthority","parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ComplianceProviderWriteAuthority"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"allowed":false,"requiredRoles":["addonManager"],"reason":"Extending the coupon window matches the harvest calendar."},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"compliance.expression.NOT_NARROWED","status":422,"message":"The compliance expression is too broad to enforce","data":{"id":"DALP-12287","why":"The compliance expression has no positive condition that narrows who it admits.","fix":"Add a positive condition, or acknowledge the allowed warning.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","compliance.executor.DEPENDENCY_UNAVAILABLE","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"compliance.executor.DEPENDENCY_UNAVAILABLE","status":503,"message":"Compliance authorization temporarily unavailable","data":{"id":"DALP-12268","why":"The custody account directory did not resolve the executor needed to check this caller's compliance role.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"x-dalp-auth":"session-or-api-key"}},"/api/v2/compliance/providers/{providerId}":{"get":{"tags":["Compliance providers"],"operationId":"complianceProvidersV2.complianceProviderRead","parameters":[{"name":"providerId","in":"path","schema":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"required":true},{"name":"includeRevoked","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"The compliance provider as it now stands, with the topics configured under it.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ComplianceProviderView"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"b6f2c0a4-1d83-4f1e-9c47-2a5e8d0b7311","participantId":"c0b8d4b0-3c5a-4b62-9a2e-2f0f6f4a5f10","providerKind":"sumsub","status":"active","statusExplanation":"Active and accepting provider webhooks.","lastHealthCheck":{"status":"healthy","checkedAt":"2026-03-11T09:24:05.418Z","message":"All credential references resolved."},"issuerEoaAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","onchainIdentityAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","providerApiKeyRef":"compliance/provider/b6f2c0a4-1d83-4f1e-9c47-2a5e8d0b7311/api-key","webhookUrlToken":"7c4e19d2-58a6-4b0f-9d31-e2f60c8a4517","webhookAuthMode":"hmac","webhookIpAllowlist":null,"pendingSecretExpiresAt":null,"lastActivity":null,"topics":[{"providerId":"b6f2c0a4-1d83-4f1e-9c47-2a5e8d0b7311","topicName":"knowYourCustomer","topicId":"10101010","webhookUrlToken":"7c4e19d2-58a6-4b0f-9d31-e2f60c8a4517","status":"active","revocationSeverityThreshold":80,"claimValiditySeconds":null,"notificationChannels":[{}],"lastActivity":null,"createdAt":"2026-02-27T14:08:51.002Z","updatedAt":"2026-03-11T09:24:05.418Z"}],"topicsCount":1,"activeTopicsCount":1,"revokedTopicsCount":0,"createdAt":"2026-02-27T14:08:51.002Z","updatedAt":"2026-03-11T09:24:05.418Z"},"links":{"self":"/v2/compliance/providers/b6f2c0a4-1d83-4f1e-9c47-2a5e8d0b7311"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"compliance.expression.NOT_NARROWED","status":422,"message":"The compliance expression is too broad to enforce","data":{"id":"DALP-12287","why":"The compliance expression has no positive condition that narrows who it admits.","fix":"Add a positive condition, or acknowledge the allowed warning.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","compliance.executor.DEPENDENCY_UNAVAILABLE","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"compliance.executor.DEPENDENCY_UNAVAILABLE","status":503,"message":"Compliance authorization temporarily unavailable","data":{"id":"DALP-12268","why":"The custody account directory did not resolve the executor needed to check this caller's compliance role.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one compliance provider with its topics, its most recent verdict or alert, and its last recorded health check. Revoked topics stay out of `topics` unless `includeRevoked` is `true`.","summary":"Read a compliance provider","x-dalp-auth":"session-or-api-key"}},"/api/v2/compliance/providers/validate-credentials":{"post":{"tags":["Compliance providers"],"operationId":"complianceProvidersV2.complianceProvidersValidateCredentials","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The outcome of checking the supplied credentials against the provider.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ComplianceProviderValidation"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"valid":true,"providerMessage":"Credentials accepted."},"links":{"self":"/v2/compliance/providers/validate-credentials"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"compliance.expression.NOT_NARROWED","status":422,"message":"The compliance expression is too broad to enforce","data":{"id":"DALP-12287","why":"The compliance expression has no positive condition that narrows who it admits.","fix":"Add a positive condition, or acknowledge the allowed warning.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","compliance.executor.DEPENDENCY_UNAVAILABLE","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"compliance.executor.DEPENDENCY_UNAVAILABLE","status":503,"message":"Compliance authorization temporarily unavailable","data":{"id":"DALP-12268","why":"The custody account directory did not resolve the executor needed to check this caller's compliance role.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Sends the supplied credentials to the provider and reports whether the provider accepts them. Stores nothing and creates no provider record. `providerMessage` carries the provider's own response text when the provider returns one.","summary":"Validate compliance provider credentials","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComplianceProviderCredentials"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/compliance/providers/{providerId}/test-connection":{"post":{"tags":["Compliance providers"],"operationId":"complianceProvidersV2.complianceProviderTestConnection","parameters":[{"name":"providerId","in":"path","schema":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The outcome of checking the stored credentials against the provider.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ComplianceProviderValidation"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"valid":false,"providerMessage":"Sumsub has no level named \"basic-kyc-level\". Levels on this account: id-and-liveness, id-only."},"links":{"self":"/v2/compliance/providers/b6f2c0a4-1d83-4f1e-9c47-2a5e8d0b7311/test-connection"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"compliance.expression.NOT_NARROWED","status":422,"message":"The compliance expression is too broad to enforce","data":{"id":"DALP-12287","why":"The compliance expression has no positive condition that narrows who it admits.","fix":"Add a positive condition, or acknowledge the allowed warning.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","compliance.executor.DEPENDENCY_UNAVAILABLE","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"compliance.executor.DEPENDENCY_UNAVAILABLE","status":503,"message":"Compliance authorization temporarily unavailable","data":{"id":"DALP-12268","why":"The custody account directory did not resolve the executor needed to check this caller's compliance role.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Sends the credentials stored for this provider to the provider and reports whether the provider accepts them. Changes nothing and needs no wallet verification. `valid` is `false` with a `providerMessage` when the provider refuses the credentials, cannot be reached, or, for Sumsub, has no level with the configured name. It is also `false` when the stored credentials cannot be read, and then the provider is not contacted. Responds `503` when the secret store cannot be reached.","summary":"Test a compliance provider's stored credentials","x-dalp-auth":"session-or-api-key"}},"/api/v2/compliance/providers/{providerId}/transitions":{"post":{"tags":["Compliance providers"],"operationId":"complianceProvidersV2.complianceProviderTransition","parameters":[{"name":"providerId","in":"path","schema":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The compliance provider as it now stands, with the topics configured under it.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ComplianceProviderView"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"b6f2c0a4-1d83-4f1e-9c47-2a5e8d0b7311","participantId":"c0b8d4b0-3c5a-4b62-9a2e-2f0f6f4a5f10","providerKind":"sumsub","status":"active","statusExplanation":"Active and accepting provider webhooks.","lastHealthCheck":{"status":"healthy","checkedAt":"2026-03-11T09:24:05.418Z","message":"All credential references resolved."},"issuerEoaAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","onchainIdentityAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","providerApiKeyRef":"compliance/provider/b6f2c0a4-1d83-4f1e-9c47-2a5e8d0b7311/api-key","webhookUrlToken":"7c4e19d2-58a6-4b0f-9d31-e2f60c8a4517","webhookAuthMode":"hmac","webhookIpAllowlist":null,"pendingSecretExpiresAt":null,"lastActivity":null,"topics":[{"providerId":"b6f2c0a4-1d83-4f1e-9c47-2a5e8d0b7311","topicName":"knowYourCustomer","topicId":"10101010","webhookUrlToken":"7c4e19d2-58a6-4b0f-9d31-e2f60c8a4517","status":"active","revocationSeverityThreshold":80,"claimValiditySeconds":null,"notificationChannels":[{}],"lastActivity":null,"createdAt":"2026-02-27T14:08:51.002Z","updatedAt":"2026-03-11T09:24:05.418Z"}],"topicsCount":1,"activeTopicsCount":1,"revokedTopicsCount":0,"createdAt":"2026-02-27T14:08:51.002Z","updatedAt":"2026-03-11T09:24:05.418Z"},"links":{"self":"/v2/compliance/providers/b6f2c0a4-1d83-4f1e-9c47-2a5e8d0b7311"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"compliance.expression.NOT_NARROWED","status":422,"message":"The compliance expression is too broad to enforce","data":{"id":"DALP-12287","why":"The compliance expression has no positive condition that narrows who it admits.","fix":"Add a positive condition, or acknowledge the allowed warning.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","compliance.executor.DEPENDENCY_UNAVAILABLE","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"compliance.executor.DEPENDENCY_UNAVAILABLE","status":503,"message":"Compliance authorization temporarily unavailable","data":{"id":"DALP-12268","why":"The custody account directory did not resolve the executor needed to check this caller's compliance role.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Moves the provider and every topic under it to the status named in `to`. `paused` pauses an `active` provider so inbound webhook deliveries stop before signature checking, and `active` resumes a `paused` one; either responds `409` when the provider holds another status, or when another request changes the status first. `revoked` removes the provider's claim-issuer entry from the trusted-issuers registry and revokes the provider; it requires wallet verification, answers the provider record with its revoked topics included, and a repeat call rejoins the in-flight revocation instead of starting a second one. A session caller also sends the `X-Step-Up-Challenge` header, issued by `POST /api/v2/step-up-challenges` for this operation, target, and body; the challenge is single-use.","summary":"Move a compliance provider to another status","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComplianceProviderTransitionBody"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/compliance/providers/{providerId}/retry-provisioning":{"post":{"tags":["Compliance providers"],"operationId":"complianceProvidersV2.complianceProviderRetryProvisioning","parameters":[{"name":"providerId","in":"path","schema":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The compliance provider as it now stands, with the topics configured under it.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ComplianceProviderView"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"b6f2c0a4-1d83-4f1e-9c47-2a5e8d0b7311","participantId":"c0b8d4b0-3c5a-4b62-9a2e-2f0f6f4a5f10","providerKind":"sumsub","status":"active","statusExplanation":"Active and accepting provider webhooks.","lastHealthCheck":{"status":"healthy","checkedAt":"2026-03-11T09:24:05.418Z","message":"All credential references resolved."},"issuerEoaAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","onchainIdentityAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","providerApiKeyRef":"compliance/provider/b6f2c0a4-1d83-4f1e-9c47-2a5e8d0b7311/api-key","webhookUrlToken":"7c4e19d2-58a6-4b0f-9d31-e2f60c8a4517","webhookAuthMode":"hmac","webhookIpAllowlist":null,"pendingSecretExpiresAt":null,"lastActivity":null,"topics":[{"providerId":"b6f2c0a4-1d83-4f1e-9c47-2a5e8d0b7311","topicName":"knowYourCustomer","topicId":"10101010","webhookUrlToken":"7c4e19d2-58a6-4b0f-9d31-e2f60c8a4517","status":"active","revocationSeverityThreshold":80,"claimValiditySeconds":null,"notificationChannels":[{}],"lastActivity":null,"createdAt":"2026-02-27T14:08:51.002Z","updatedAt":"2026-03-11T09:24:05.418Z"}],"topicsCount":1,"activeTopicsCount":1,"revokedTopicsCount":0,"createdAt":"2026-02-27T14:08:51.002Z","updatedAt":"2026-03-11T09:24:05.418Z"},"links":{"self":"/v2/compliance/providers/b6f2c0a4-1d83-4f1e-9c47-2a5e8d0b7311"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"compliance.expression.NOT_NARROWED","status":422,"message":"The compliance expression is too broad to enforce","data":{"id":"DALP-12287","why":"The compliance expression has no positive condition that narrows who it admits.","fix":"Add a positive condition, or acknowledge the allowed warning.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","compliance.executor.DEPENDENCY_UNAVAILABLE","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"compliance.executor.DEPENDENCY_UNAVAILABLE","status":503,"message":"Compliance authorization temporarily unavailable","data":{"id":"DALP-12268","why":"The custody account directory did not resolve the executor needed to check this caller's compliance role.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Starts a fresh claim-issuer provisioning attempt for a provider whose earlier attempt did not finish, and returns the provider record afterwards. Each call is a new attempt rather than a rejoin of the previous one.","summary":"Retry compliance provider provisioning","x-dalp-auth":"session-or-api-key"}},"/api/v2/compliance/providers/{providerId}/monitoring":{"get":{"tags":["Compliance providers"],"operationId":"complianceProvidersV2.complianceProviderMonitoring","parameters":[{"name":"providerId","in":"path","schema":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"required":true},{"name":"filter","in":"query","schema":{"type":"object","properties":{"createdAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"outcome":{"anyOf":[{"type":"string","enum":["applied","replayed","rejected_out_of_order","rejected_unmapped","rejected_topic_mismatch","rejected_paused","rejected_over_cap","rejected_unsponsorable","failed","pending"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"providerEventId":{"anyOf":[{"type":"string","minLength":1},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"q":{"type":"string","minLength":1,"maxLength":1000},"severity":{"anyOf":[{"type":"number"},{"type":"object","properties":{"eq":{"anyOf":[{"type":"number"},{"type":"string"}]},"ne":{"anyOf":[{"type":"number"},{"type":"string"}]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"anyOf":[{"type":"number"},{"type":"string"}]},"gte":{"anyOf":[{"type":"number"},{"type":"string"}]},"lt":{"anyOf":[{"type":"number"},{"type":"string"}]},"lte":{"anyOf":[{"type":"number"},{"type":"string"}]},"between":{"type":"string","maxLength":64}},"additionalProperties":false}]},"subjectAddress":{"anyOf":[{"type":"string","minLength":1},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"topicName":{"anyOf":[{"type":"string","minLength":1},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"A page of monitoring alerts for the provider, with the total match count and the links for reaching the other pages.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ComplianceMonitoringEventView"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"3f0a71c8-6d24-4b9e-8a15-c72e0d4b9f36","providerEventId":"evt_7d1a5c93b0e24f68","subjectAddress":"0x5C2f81aE0b7D394cA6f10e83b2D57cA9F0417Bd3","topicName":"knowYourCustomer","severity":72,"outcome":"applied","rawPayload":{"applicantId":"6512c0a4f1d83b0007a91e42","reviewAnswer":"GREEN","riskScore":72},"processedAt":"2026-03-11T09:24:07.113Z","createdAt":"2026-03-11T09:24:05.418Z"}],"meta":{"total":1},"links":{"self":"/v2/compliance/providers/cp_northwind_kyc/monitoring?page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/compliance/providers/cp_northwind_kyc/monitoring?page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/compliance/providers/cp_northwind_kyc/monitoring?page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"compliance.expression.NOT_NARROWED","status":422,"message":"The compliance expression is too broad to enforce","data":{"id":"DALP-12287","why":"The compliance expression has no positive condition that narrows who it admits.","fix":"Add a positive condition, or acknowledge the allowed warning.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","compliance.executor.DEPENDENCY_UNAVAILABLE","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"compliance.executor.DEPENDENCY_UNAVAILABLE","status":503,"message":"Compliance authorization temporarily unavailable","data":{"id":"DALP-12268","why":"The custody account directory did not resolve the executor needed to check this caller's compliance role.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the monitoring alerts recorded for one provider, newest first. Supports offset pagination, filtering on `topicName`, and global search. Each entry keeps the provider payload that produced it.","summary":"List compliance provider monitoring events","x-dalp-auth":"session-or-api-key"}},"/api/v2/compliance/providers/{providerId}/webhooks":{"post":{"tags":["Compliance providers"],"operationId":"complianceProviderWebhooksV2.complianceProviderWebhooksAdd","parameters":[{"name":"providerId","in":"path","schema":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The topic webhook this call added or updated, nested under `data.topic`.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ComplianceProviderWebhookAction"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"topic":{"providerId":"b6f2c0a4-1d83-4f1e-9c47-2a5e8d0b7311","topicName":"knowYourCustomer","topicId":"10101010","webhookUrlToken":"7c4e19d2-58a6-4b0f-9d31-e2f60c8a4517","status":"active","revocationSeverityThreshold":80,"claimValiditySeconds":null,"notificationChannels":[{"type":"email","address":"compliance@northwind.example"}],"lastActivity":null,"createdAt":"2026-02-27T14:08:51.002Z","updatedAt":"2026-03-11T09:24:05.418Z"}},"links":{"self":"/v2/compliance/providers/b6f2c0a4-1d83-4f1e-9c47-2a5e8d0b7311/webhooks"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"compliance.expression.NOT_NARROWED","status":422,"message":"The compliance expression is too broad to enforce","data":{"id":"DALP-12287","why":"The compliance expression has no positive condition that narrows who it admits.","fix":"Add a positive condition, or acknowledge the allowed warning.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","compliance.executor.DEPENDENCY_UNAVAILABLE","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"compliance.executor.DEPENDENCY_UNAVAILABLE","status":503,"message":"Compliance authorization temporarily unavailable","data":{"id":"DALP-12268","why":"The custody account directory did not resolve the executor needed to check this caller's compliance role.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Adds a claim topic webhook under an existing provider. Requires wallet verification. The first topic is created with the provider; use this route to add later topics. A topic the provider kind does not support returns 400. A session caller also sends the `X-Step-Up-Challenge` header, issued by `POST /api/v2/step-up-challenges` for this operation, target, and body; the challenge is single-use.","summary":"Add a compliance provider webhook topic","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComplianceProviderWebhookAddBody"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/compliance/providers/{providerId}/webhooks/{webhookId}/transitions":{"post":{"tags":["Compliance providers"],"operationId":"complianceProviderWebhooksV2.complianceProviderWebhookTransition","parameters":[{"name":"providerId","in":"path","schema":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"required":true},{"name":"webhookId","in":"path","schema":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The topic webhook this call added or updated, nested under `data.topic`.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ComplianceProviderWebhookAction"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"topic":{"providerId":"b6f2c0a4-1d83-4f1e-9c47-2a5e8d0b7311","topicName":"knowYourCustomer","topicId":"10101010","webhookUrlToken":"7c4e19d2-58a6-4b0f-9d31-e2f60c8a4517","status":"paused","revocationSeverityThreshold":80,"claimValiditySeconds":null,"notificationChannels":[{"type":"email","address":"compliance@northwind.example"}],"lastActivity":null,"createdAt":"2026-02-27T14:08:51.002Z","updatedAt":"2026-03-11T09:24:05.418Z"}},"links":{"self":"/v2/compliance/providers/b6f2c0a4-1d83-4f1e-9c47-2a5e8d0b7311/webhooks"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"compliance.expression.NOT_NARROWED","status":422,"message":"The compliance expression is too broad to enforce","data":{"id":"DALP-12287","why":"The compliance expression has no positive condition that narrows who it admits.","fix":"Add a positive condition, or acknowledge the allowed warning.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","compliance.executor.DEPENDENCY_UNAVAILABLE","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"compliance.executor.DEPENDENCY_UNAVAILABLE","status":503,"message":"Compliance authorization temporarily unavailable","data":{"id":"DALP-12268","why":"The custody account directory did not resolve the executor needed to check this caller's compliance role.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Moves one topic webhook to the status named in `to`. `paused` pauses an active topic so inbound deliveries stop before signature checking. `active` resumes a paused topic, or reactivates a revoked one and re-registers its trusted-issuer claim topic, which requires wallet verification. `revoked` revokes an active topic and removes its trusted-issuer claim topic, which requires wallet verification and is refused for the last active topic of a provider kind that serves one topic. Responds 409 when the topic cannot make the move. A session caller also sends the `X-Step-Up-Challenge` header, issued by `POST /api/v2/step-up-challenges` for this operation, target, and body; the challenge is single-use.","summary":"Move a compliance provider webhook to another status","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComplianceProviderWebhookTransitionBody"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/compliance/providers/{providerId}/webhooks/{webhookId}/rotate-secret":{"post":{"tags":["Compliance providers"],"operationId":"complianceProviderWebhooksV2.complianceProviderWebhookRotateSecret","parameters":[{"name":"providerId","in":"path","schema":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"required":true},{"name":"webhookId","in":"path","schema":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The topic webhook this call added or updated, nested under `data.topic`.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ComplianceProviderWebhookAction"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"topic":{"providerId":"b6f2c0a4-1d83-4f1e-9c47-2a5e8d0b7311","topicName":"knowYourCustomer","topicId":"10101010","webhookUrlToken":"7c4e19d2-58a6-4b0f-9d31-e2f60c8a4517","status":"active","revocationSeverityThreshold":80,"claimValiditySeconds":null,"notificationChannels":[{"type":"email","address":"compliance@northwind.example"}],"lastActivity":null,"createdAt":"2026-02-27T14:08:51.002Z","updatedAt":"2026-03-11T09:24:05.418Z"}},"links":{"self":"/v2/compliance/providers/b6f2c0a4-1d83-4f1e-9c47-2a5e8d0b7311/webhooks"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"compliance.expression.NOT_NARROWED","status":422,"message":"The compliance expression is too broad to enforce","data":{"id":"DALP-12287","why":"The compliance expression has no positive condition that narrows who it admits.","fix":"Add a positive condition, or acknowledge the allowed warning.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","compliance.executor.DEPENDENCY_UNAVAILABLE","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"compliance.executor.DEPENDENCY_UNAVAILABLE","status":503,"message":"Compliance authorization temporarily unavailable","data":{"id":"DALP-12268","why":"The custody account directory did not resolve the executor needed to check this caller's compliance role.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Stores a new signing secret for one topic webhook. Inbound deliveries verify against the new secret after this call. A session caller also sends the `X-Step-Up-Challenge` header, issued by `POST /api/v2/step-up-challenges` for this operation, target, and body; the challenge is single-use.","summary":"Rotate a webhook signing secret","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComplianceProviderRotateSecretBody"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/compliance/subjects/sdk-access-token":{"post":{"tags":["Compliance providers"],"operationId":"complianceSubjectsV2.complianceSubjectIssueSdkAccessToken","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Access token for the identity's Sumsub applicant, with its expiry and level.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ComplianceSubjectSdkAccessToken"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"token":"_act-sbx-example-access-token","expiresAt":"2026-09-28T16:10:00.000Z","levelName":"id-and-liveness"},"links":{"self":"/v2/compliance/subjects/sdk-access-token"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"compliance.expression.NOT_NARROWED","status":422,"message":"The compliance expression is too broad to enforce","data":{"id":"DALP-12287","why":"The compliance expression has no positive condition that narrows who it admits.","fix":"Add a positive condition, or acknowledge the allowed warning.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","compliance.executor.DEPENDENCY_UNAVAILABLE","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"compliance.executor.DEPENDENCY_UNAVAILABLE","status":503,"message":"Compliance authorization temporarily unavailable","data":{"id":"DALP-12268","why":"The custody account directory did not resolve the executor needed to check this caller's compliance role.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns a short-lived Sumsub WebSDK or MobileSDK access token for one identity, at the level the provider is configured with, so an app can run the identity check in-app without holding Sumsub credentials. Omit `identityAddress` to use the caller's own registered identity; naming another identity needs a compliance provider role. The applicant is created first when the identity has none.","summary":"Issue a Sumsub SDK access token","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComplianceSubjectSdkAccessTokenBody"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/compliance-expression":{"get":{"tags":["Compliance rules"],"operationId":"tokenComplianceExpressionV2.tokenComplianceExpressionRead","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255,"description":"The asset's own identifier: the token contract address, or a Canton instrument id.","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true}],"responses":{"200":{"description":"The compliance expression currently indexed for the token's identity registry.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ComplianceExpressionReadback"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"expression":[{"nodeType":0,"value":"26984799302505749158794800959285050858086405868089409909048783980951278841746"},{"nodeType":0,"value":"66602700950116947137359654609674923607788815289970476259958745144319039408766"},{"nodeType":1,"value":"0"}]},"links":{"self":"/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/compliance-expression"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"compliance.expression.NOT_NARROWED","status":422,"message":"The compliance expression is too broad to enforce","data":{"id":"DALP-12287","why":"The compliance expression has no positive condition that narrows who it admits.","fix":"Add a positive condition, or acknowledge the allowed warning.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","compliance.executor.DEPENDENCY_UNAVAILABLE","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"compliance.executor.DEPENDENCY_UNAVAILABLE","status":503,"message":"Compliance authorization temporarily unavailable","data":{"id":"DALP-12268","why":"The custody account directory did not resolve the executor needed to check this caller's compliance role.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the compliance expression indexed for the token's identity registry in the active organization's system. Nodes come back in evaluation order, exactly as the indexer stored them and without coercion, so an expression written outside this API stays readable and can be replaced through the update endpoint.","summary":"Read a token's compliance expression","x-dalp-auth":"session-or-api-key"},"put":{"tags":["Compliance rules"],"operationId":"tokenComplianceExpressionV2.tokenComplianceExpressionUpdate","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255,"description":"The asset's own identifier: the token contract address, or a Canton instrument id.","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The platform accepted the replacement expression. A synchronous result carries the submitted transaction hash in `data.txHash` and in `meta.txHashes`. An asynchronous result carries `transactionId`, `status`, and a `statusUrl` you poll for the outcome.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ComplianceExpressionWritten"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"txHash":"0x9f2c1a4d6b8e0f3572a1c9d4e6b8f0a2c4d6e8b0f2a4c6d8e0b2f4a6c8d0e2b4"},"meta":{"txHashes":["0x9f2c1a4d6b8e0f3572a1c9d4e6b8f0a2c4d6e8b0f2a4c6d8e0b2f4a6c8d0e2b4"]},"links":{"self":"/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/compliance-expression"}}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false}}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false},"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","compliance.provider.CREDENTIALS_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_COMPLIANCE_MODULE_NOT_REGISTERED_REGISTRY","compliance.kyc.EVIDENCE_DENIED","compliance.scope.DENIED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.EVIDENCE_DENIED","status":404,"message":"KYC record not found","data":{"id":"DALP-12255","why":"No KYC record visible to the current caller matches this request.","fix":"Confirm the record belongs to the active organization and use an identifier returned for that organization.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","COMPLIANCE_INVALID_STATE_TRANSITION","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","compliance.kyc.DOCUMENT_CONFLICT","compliance.module.STATE_INVALID"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","compliance.expression.NOT_NARROWED","compliance.module.CONFIG_CONTRADICTION"]}},"required":["code"]}],"examples":[{"code":"compliance.expression.NOT_NARROWED","status":422,"message":"The compliance expression is too broad to enforce","data":{"id":"DALP-12287","why":"The compliance expression has no positive condition that narrows who it admits.","fix":"Add a positive condition, or acknowledge the allowed warning.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"502":{"description":"A required upstream service returned an invalid response. Retry after a short delay.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError502"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_APPLICANT_CREATE_FAILED","COMPLIANCE_TRANSACTION_REGISTER_FAILED"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","compliance.kyc.DEPENDENCY_UNAVAILABLE","compliance.provider.UNAVAILABLE","compliance.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"compliance.kyc.DEPENDENCY_UNAVAILABLE","status":503,"message":"KYC data temporarily unavailable","data":{"id":"DALP-12248","why":"A store the KYC or user profile route reads did not answer, so the route could not complete. `data.dependency` names the store.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header and `data.dependency`.","retryable":true,"category":"dependency","dependency":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Replaces the token's whole compliance expression. The platform validates the submitted array before it reaches the chain: at most 32 nodes, every node value within the uint256 range, no claim-topic operand carrying id 0, and a well-formed postfix ordering. The registry contract runs no syntax or size check of its own, so an expression that skipped this validation would store successfully and then revert every later transfer. An empty array clears the expression, after which every holder passes verification. You need the governance role on the token and a wallet verification challenge.","summary":"Replace a token's compliance expression","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenComplianceExpressionReplaceBody"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/custody/accounts/managed":{"post":{"tags":["Custody"],"operationId":"custodyAccountsV2.createManaged","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Identifier and status of the lifecycle request that provisions the managed account.","content":{"application/json":{"schema":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/CustodyAccountLifecycleRequestId"},"status":{"type":"string","enum":["accepted","running","completed","failed"]}},"required":["requestId","status"],"additionalProperties":false},"examples":{"example-1":{"value":{"requestId":"019c0000-0000-7000-8000-000000000004","status":"accepted"}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","CUSTODY_APPROVAL_REJECTED","CUSTODY_WALLET_NOT_SIGNER","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","status":404,"message":"Custody account not found","data":{"id":"DALP-12257","why":"No custody account visible to the caller in the active organization matches this identifier.","fix":"Refresh the active organization's account list and choose an account returned there.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","CUSTODY_APPROVAL_PENDING","CUSTODY_PROVIDER_CONFIG_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_PROOF_INVALID","CUSTODY_PROVIDER_CONFIG_INVALID"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_PROOF_INVALID","status":422,"message":"The custody proof does not bind this account","data":{"id":"DALP-12274","why":"The control proof, external control artifact, provider binding, or step-up confirmation sent with this request does not bind the account on this ledger, or the custody provider does not support the ledger.","fix":"Produce a new proof or confirmation for this account and ledger, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","custody.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"custody.write.OUTCOME_UNKNOWN","status":503,"message":"The smart-wallet write outcome is unknown","data":{"id":"DALP-12109","why":"The queue may have accepted this wallet write, but its final outcome could not be confirmed.","fix":"Look up the transaction request before taking further action. Do not submit a replacement write under a new idempotency key.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Starts provisioning of a custody account that a managed custody provider holds for a participant. The platform returns the lifecycle request identifier and its status. Poll the provisioning status until it completes.","summary":"Create a managed custody account","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"lifecycle":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/CustodyAccountLifecycleRequestId"},"custodyAccountId":{"$ref":"#/components/schemas/CustodyAccountId"},"organizationContextId":{"$ref":"#/components/schemas/CustodyAccountOrganizationContextId"},"participantId":{"$ref":"#/components/schemas/ParticipantId"},"organizationId":{"$ref":"#/components/schemas/OrganizationId"},"providerConfigurationId":{"$ref":"#/components/schemas/CustodyProviderConfigurationId"},"operation":{"type":"string","enum":["onboard","add","reset"]},"ledger":{"type":"string","enum":["evm","canton"]},"network":{"type":"string","minLength":1},"actorUserId":{"$ref":"#/components/schemas/UserId"},"domain":{"type":"string","minLength":1},"origin":{"type":"string","minLength":1},"audience":{"type":"string","minLength":1},"nonce":{"type":"string","minLength":1},"proofDigest":{"type":"string","minLength":1},"expiresAt":{"type":"string"}},"required":["requestId","custodyAccountId","organizationContextId","participantId","organizationId","providerConfigurationId","operation","ledger","network","actorUserId","domain","origin","audience","nonce","proofDigest","expiresAt"],"additionalProperties":false},"idempotencyKey":{"type":"string","minLength":1},"participantResetEpoch":{"type":"integer"},"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["lifecycle","idempotencyKey","participantResetEpoch","chainId"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/custody/accounts/lifecycle":{"post":{"tags":["Custody"],"operationId":"custodyAccountsV2.lifecycleStart","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The lifecycle request in its current state: awaiting proof, awaiting approval, or the next step to run.","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["awaiting-proof"]},"id":{"$ref":"#/components/schemas/CustodyAccountLifecycleRequestId"},"accountId":{"$ref":"#/components/schemas/CustodyAccountId"},"operation":{"type":"string","enum":["onboard","add","reset"]},"challengeDigest":{"type":"string","minLength":1},"expiresAt":{"type":"string"}},"required":["_tag","id","accountId","operation","challengeDigest","expiresAt"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["awaiting-approval"]},"id":{"$ref":"#/components/schemas/CustodyAccountLifecycleRequestId"},"accountId":{"$ref":"#/components/schemas/CustodyAccountId"},"operation":{"type":"string","enum":["onboard","add","reset"]},"proof":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["managed-attestation"]},"attestationReference":{"type":"string","minLength":1},"digest":{"type":"string","minLength":1}},"required":["_tag","attestationReference","digest"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["evm-signature"]},"address":{"$ref":"#/components/schemas/EvmAddress"},"signature":{"$ref":"#/components/schemas/EthereumHexEncoded"},"digest":{"type":"string","minLength":1}},"required":["_tag","address","signature","digest"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["canton-signature"]},"partyId":{"type":"string","minLength":1},"signature":{"$ref":"#/components/schemas/CantonEd25519SignatureHex"},"digest":{"type":"string","minLength":1}},"required":["_tag","partyId","signature","digest"],"additionalProperties":false}]},"approvalDigest":{"type":"string","minLength":1}},"required":["_tag","id","accountId","operation","proof","approvalDigest"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["ready"]},"id":{"$ref":"#/components/schemas/CustodyAccountLifecycleRequestId"},"accountId":{"$ref":"#/components/schemas/CustodyAccountId"},"operation":{"type":"string","enum":["onboard","add","reset"]},"proof":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["managed-attestation"]},"attestationReference":{"type":"string","minLength":1},"digest":{"type":"string","minLength":1}},"required":["_tag","attestationReference","digest"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["evm-signature"]},"address":{"$ref":"#/components/schemas/EvmAddress"},"signature":{"$ref":"#/components/schemas/EthereumHexEncoded"},"digest":{"type":"string","minLength":1}},"required":["_tag","address","signature","digest"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["canton-signature"]},"partyId":{"type":"string","minLength":1},"signature":{"$ref":"#/components/schemas/CantonEd25519SignatureHex"},"digest":{"type":"string","minLength":1}},"required":["_tag","partyId","signature","digest"],"additionalProperties":false}]},"approval":{"anyOf":[{"type":"object","properties":{"signerWalletId":{"$ref":"#/components/schemas/WalletId"},"requestDigest":{"type":"string","minLength":1},"signature":{"$ref":"#/components/schemas/EthereumHexEncoded"}},"required":["signerWalletId","requestDigest","signature"],"additionalProperties":false},{"type":"null"}]}},"required":["_tag","id","accountId","operation","proof"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["finalized"]},"id":{"$ref":"#/components/schemas/CustodyAccountLifecycleRequestId"},"accountId":{"$ref":"#/components/schemas/CustodyAccountId"},"operation":{"type":"string","enum":["onboard","add","reset"]},"account":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/CustodyAccountId"},"participantId":{"$ref":"#/components/schemas/ParticipantId"},"lifecycle":{"type":"string","enum":["pending","active","unavailable","revoked","archived"]},"detail":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["evm"]},"address":{"$ref":"#/components/schemas/EvmAddress"},"ownerWalletId":{"$ref":"#/components/schemas/WalletId"}},"required":["_tag","address","ownerWalletId"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["canton"]},"accountLocator":{"type":"string","minLength":1},"partyId":{"type":"string","minLength":1}},"required":["_tag","accountLocator","partyId"],"additionalProperties":false}]}},"required":["id","participantId","lifecycle","detail"],"additionalProperties":false}},"required":["_tag","id","accountId","operation","account"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["failed"]},"id":{"$ref":"#/components/schemas/CustodyAccountLifecycleRequestId"},"accountId":{"$ref":"#/components/schemas/CustodyAccountId"},"operation":{"type":"string","enum":["onboard","add","reset"]},"terminalCode":{"type":"string","minLength":1}},"required":["_tag","id","accountId","operation","terminalCode"],"additionalProperties":false}]},"examples":{"example-1":{"value":{"_tag":"ready","id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","accountId":"treasury-main","operation":"onboard","proof":{"_tag":"evm-signature","address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","signature":"0x5208","digest":"0xabc1230000000000000000000000000000000000000000000000000000000000"},"approval":null}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","CUSTODY_APPROVAL_REJECTED","CUSTODY_WALLET_NOT_SIGNER","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","status":404,"message":"Custody account not found","data":{"id":"DALP-12257","why":"No custody account visible to the caller in the active organization matches this identifier.","fix":"Refresh the active organization's account list and choose an account returned there.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","CUSTODY_APPROVAL_PENDING","CUSTODY_PROVIDER_CONFIG_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_PROOF_INVALID","CUSTODY_PROVIDER_CONFIG_INVALID"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_PROOF_INVALID","status":422,"message":"The custody proof does not bind this account","data":{"id":"DALP-12274","why":"The control proof, external control artifact, provider binding, or step-up confirmation sent with this request does not bind the account on this ledger, or the custody provider does not support the ledger.","fix":"Produce a new proof or confirmation for this account and ledger, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","custody.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"custody.write.OUTCOME_UNKNOWN","status":503,"message":"The smart-wallet write outcome is unknown","data":{"id":"DALP-12109","why":"The queue may have accepted this wallet write, but its final outcome could not be confirmed.","fix":"Look up the transaction request before taking further action. Do not submit a replacement write under a new idempotency key.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Starts a lifecycle request that onboards, adds, or resets a custody account for a participant on a ledger and network. The platform returns the request in its first state. Most requests start by waiting for a proof of control over the account.","summary":"Start a custody account lifecycle request","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/CustodyAccountLifecycleRequestId"},"custodyAccountId":{"$ref":"#/components/schemas/CustodyAccountId"},"organizationContextId":{"$ref":"#/components/schemas/CustodyAccountOrganizationContextId"},"participantId":{"$ref":"#/components/schemas/ParticipantId"},"organizationId":{"$ref":"#/components/schemas/OrganizationId"},"providerConfigurationId":{"$ref":"#/components/schemas/CustodyProviderConfigurationId"},"operation":{"type":"string","enum":["onboard","add","reset"]},"ledger":{"type":"string","enum":["evm","canton"]},"network":{"type":"string","minLength":1},"actorUserId":{"$ref":"#/components/schemas/UserId"},"domain":{"type":"string","minLength":1},"origin":{"type":"string","minLength":1},"audience":{"type":"string","minLength":1},"nonce":{"type":"string","minLength":1},"proofDigest":{"type":"string","minLength":1},"expiresAt":{"type":"string"},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["requestId","custodyAccountId","organizationContextId","participantId","organizationId","providerConfigurationId","operation","ledger","network","actorUserId","domain","origin","audience","nonce","proofDigest","expiresAt"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/custody/accounts/lifecycle/{requestId}/continue":{"post":{"tags":["Custody"],"operationId":"custodyAccountsV2.lifecycleContinue","parameters":[{"name":"requestId","in":"path","schema":{"type":"string","minLength":1,"description":"Durable custody account lifecycle request identifier"},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The lifecycle request in its current state: awaiting proof, awaiting approval, or the next step to run.","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["awaiting-proof"]},"id":{"$ref":"#/components/schemas/CustodyAccountLifecycleRequestId"},"accountId":{"$ref":"#/components/schemas/CustodyAccountId"},"operation":{"type":"string","enum":["onboard","add","reset"]},"challengeDigest":{"type":"string","minLength":1},"expiresAt":{"type":"string"}},"required":["_tag","id","accountId","operation","challengeDigest","expiresAt"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["awaiting-approval"]},"id":{"$ref":"#/components/schemas/CustodyAccountLifecycleRequestId"},"accountId":{"$ref":"#/components/schemas/CustodyAccountId"},"operation":{"type":"string","enum":["onboard","add","reset"]},"proof":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["managed-attestation"]},"attestationReference":{"type":"string","minLength":1},"digest":{"type":"string","minLength":1}},"required":["_tag","attestationReference","digest"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["evm-signature"]},"address":{"$ref":"#/components/schemas/EvmAddress"},"signature":{"$ref":"#/components/schemas/EthereumHexEncoded"},"digest":{"type":"string","minLength":1}},"required":["_tag","address","signature","digest"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["canton-signature"]},"partyId":{"type":"string","minLength":1},"signature":{"$ref":"#/components/schemas/CantonEd25519SignatureHex"},"digest":{"type":"string","minLength":1}},"required":["_tag","partyId","signature","digest"],"additionalProperties":false}]},"approvalDigest":{"type":"string","minLength":1}},"required":["_tag","id","accountId","operation","proof","approvalDigest"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["ready"]},"id":{"$ref":"#/components/schemas/CustodyAccountLifecycleRequestId"},"accountId":{"$ref":"#/components/schemas/CustodyAccountId"},"operation":{"type":"string","enum":["onboard","add","reset"]},"proof":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["managed-attestation"]},"attestationReference":{"type":"string","minLength":1},"digest":{"type":"string","minLength":1}},"required":["_tag","attestationReference","digest"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["evm-signature"]},"address":{"$ref":"#/components/schemas/EvmAddress"},"signature":{"$ref":"#/components/schemas/EthereumHexEncoded"},"digest":{"type":"string","minLength":1}},"required":["_tag","address","signature","digest"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["canton-signature"]},"partyId":{"type":"string","minLength":1},"signature":{"$ref":"#/components/schemas/CantonEd25519SignatureHex"},"digest":{"type":"string","minLength":1}},"required":["_tag","partyId","signature","digest"],"additionalProperties":false}]},"approval":{"anyOf":[{"type":"object","properties":{"signerWalletId":{"$ref":"#/components/schemas/WalletId"},"requestDigest":{"type":"string","minLength":1},"signature":{"$ref":"#/components/schemas/EthereumHexEncoded"}},"required":["signerWalletId","requestDigest","signature"],"additionalProperties":false},{"type":"null"}]}},"required":["_tag","id","accountId","operation","proof"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["finalized"]},"id":{"$ref":"#/components/schemas/CustodyAccountLifecycleRequestId"},"accountId":{"$ref":"#/components/schemas/CustodyAccountId"},"operation":{"type":"string","enum":["onboard","add","reset"]},"account":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/CustodyAccountId"},"participantId":{"$ref":"#/components/schemas/ParticipantId"},"lifecycle":{"type":"string","enum":["pending","active","unavailable","revoked","archived"]},"detail":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["evm"]},"address":{"$ref":"#/components/schemas/EvmAddress"},"ownerWalletId":{"$ref":"#/components/schemas/WalletId"}},"required":["_tag","address","ownerWalletId"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["canton"]},"accountLocator":{"type":"string","minLength":1},"partyId":{"type":"string","minLength":1}},"required":["_tag","accountLocator","partyId"],"additionalProperties":false}]}},"required":["id","participantId","lifecycle","detail"],"additionalProperties":false}},"required":["_tag","id","accountId","operation","account"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["failed"]},"id":{"$ref":"#/components/schemas/CustodyAccountLifecycleRequestId"},"accountId":{"$ref":"#/components/schemas/CustodyAccountId"},"operation":{"type":"string","enum":["onboard","add","reset"]},"terminalCode":{"type":"string","minLength":1}},"required":["_tag","id","accountId","operation","terminalCode"],"additionalProperties":false}]},"examples":{"example-1":{"value":{"_tag":"ready","id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","accountId":"treasury-main","operation":"onboard","proof":{"_tag":"evm-signature","address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","signature":"0x5208","digest":"0xabc1230000000000000000000000000000000000000000000000000000000000"},"approval":null}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","CUSTODY_APPROVAL_REJECTED","CUSTODY_WALLET_NOT_SIGNER","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","status":404,"message":"Custody account not found","data":{"id":"DALP-12257","why":"No custody account visible to the caller in the active organization matches this identifier.","fix":"Refresh the active organization's account list and choose an account returned there.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","CUSTODY_APPROVAL_PENDING","CUSTODY_PROVIDER_CONFIG_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_PROOF_INVALID","CUSTODY_PROVIDER_CONFIG_INVALID"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_PROOF_INVALID","status":422,"message":"The custody proof does not bind this account","data":{"id":"DALP-12274","why":"The control proof, external control artifact, provider binding, or step-up confirmation sent with this request does not bind the account on this ledger, or the custody provider does not support the ledger.","fix":"Produce a new proof or confirmation for this account and ledger, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","custody.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"custody.write.OUTCOME_UNKNOWN","status":503,"message":"The smart-wallet write outcome is unknown","data":{"id":"DALP-12109","why":"The queue may have accepted this wallet write, but its final outcome could not be confirmed.","fix":"Look up the transaction request before taking further action. Do not submit a replacement write under a new idempotency key.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Runs the named next step of the lifecycle request in the path, such as claiming the first account or requesting approval. The platform returns the request in its next state. Run only the step the request currently offers.","summary":"Continue a custody account lifecycle request","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"step":{"type":"string","enum":["claim-first-account","request-approval","claim-side-effect","authorize-external"]},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["step"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/custody/accounts/lifecycle/{requestId}/proof":{"post":{"tags":["Custody"],"operationId":"custodyAccountsV2.lifecycleProof","parameters":[{"name":"requestId","in":"path","schema":{"type":"string","minLength":1,"description":"Durable custody account lifecycle request identifier"},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The lifecycle request in its current state: awaiting proof, awaiting approval, or the next step to run.","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["awaiting-proof"]},"id":{"$ref":"#/components/schemas/CustodyAccountLifecycleRequestId"},"accountId":{"$ref":"#/components/schemas/CustodyAccountId"},"operation":{"type":"string","enum":["onboard","add","reset"]},"challengeDigest":{"type":"string","minLength":1},"expiresAt":{"type":"string"}},"required":["_tag","id","accountId","operation","challengeDigest","expiresAt"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["awaiting-approval"]},"id":{"$ref":"#/components/schemas/CustodyAccountLifecycleRequestId"},"accountId":{"$ref":"#/components/schemas/CustodyAccountId"},"operation":{"type":"string","enum":["onboard","add","reset"]},"proof":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["managed-attestation"]},"attestationReference":{"type":"string","minLength":1},"digest":{"type":"string","minLength":1}},"required":["_tag","attestationReference","digest"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["evm-signature"]},"address":{"$ref":"#/components/schemas/EvmAddress"},"signature":{"$ref":"#/components/schemas/EthereumHexEncoded"},"digest":{"type":"string","minLength":1}},"required":["_tag","address","signature","digest"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["canton-signature"]},"partyId":{"type":"string","minLength":1},"signature":{"$ref":"#/components/schemas/CantonEd25519SignatureHex"},"digest":{"type":"string","minLength":1}},"required":["_tag","partyId","signature","digest"],"additionalProperties":false}]},"approvalDigest":{"type":"string","minLength":1}},"required":["_tag","id","accountId","operation","proof","approvalDigest"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["ready"]},"id":{"$ref":"#/components/schemas/CustodyAccountLifecycleRequestId"},"accountId":{"$ref":"#/components/schemas/CustodyAccountId"},"operation":{"type":"string","enum":["onboard","add","reset"]},"proof":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["managed-attestation"]},"attestationReference":{"type":"string","minLength":1},"digest":{"type":"string","minLength":1}},"required":["_tag","attestationReference","digest"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["evm-signature"]},"address":{"$ref":"#/components/schemas/EvmAddress"},"signature":{"$ref":"#/components/schemas/EthereumHexEncoded"},"digest":{"type":"string","minLength":1}},"required":["_tag","address","signature","digest"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["canton-signature"]},"partyId":{"type":"string","minLength":1},"signature":{"$ref":"#/components/schemas/CantonEd25519SignatureHex"},"digest":{"type":"string","minLength":1}},"required":["_tag","partyId","signature","digest"],"additionalProperties":false}]},"approval":{"anyOf":[{"type":"object","properties":{"signerWalletId":{"$ref":"#/components/schemas/WalletId"},"requestDigest":{"type":"string","minLength":1},"signature":{"$ref":"#/components/schemas/EthereumHexEncoded"}},"required":["signerWalletId","requestDigest","signature"],"additionalProperties":false},{"type":"null"}]}},"required":["_tag","id","accountId","operation","proof"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["finalized"]},"id":{"$ref":"#/components/schemas/CustodyAccountLifecycleRequestId"},"accountId":{"$ref":"#/components/schemas/CustodyAccountId"},"operation":{"type":"string","enum":["onboard","add","reset"]},"account":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/CustodyAccountId"},"participantId":{"$ref":"#/components/schemas/ParticipantId"},"lifecycle":{"type":"string","enum":["pending","active","unavailable","revoked","archived"]},"detail":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["evm"]},"address":{"$ref":"#/components/schemas/EvmAddress"},"ownerWalletId":{"$ref":"#/components/schemas/WalletId"}},"required":["_tag","address","ownerWalletId"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["canton"]},"accountLocator":{"type":"string","minLength":1},"partyId":{"type":"string","minLength":1}},"required":["_tag","accountLocator","partyId"],"additionalProperties":false}]}},"required":["id","participantId","lifecycle","detail"],"additionalProperties":false}},"required":["_tag","id","accountId","operation","account"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["failed"]},"id":{"$ref":"#/components/schemas/CustodyAccountLifecycleRequestId"},"accountId":{"$ref":"#/components/schemas/CustodyAccountId"},"operation":{"type":"string","enum":["onboard","add","reset"]},"terminalCode":{"type":"string","minLength":1}},"required":["_tag","id","accountId","operation","terminalCode"],"additionalProperties":false}]},"examples":{"example-1":{"value":{"_tag":"ready","id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","accountId":"treasury-main","operation":"onboard","proof":{"_tag":"evm-signature","address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","signature":"0x5208","digest":"0xabc1230000000000000000000000000000000000000000000000000000000000"},"approval":null}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","CUSTODY_APPROVAL_REJECTED","CUSTODY_WALLET_NOT_SIGNER","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","status":404,"message":"Custody account not found","data":{"id":"DALP-12257","why":"No custody account visible to the caller in the active organization matches this identifier.","fix":"Refresh the active organization's account list and choose an account returned there.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","CUSTODY_APPROVAL_PENDING","CUSTODY_PROVIDER_CONFIG_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_PROOF_INVALID","CUSTODY_PROVIDER_CONFIG_INVALID"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_PROOF_INVALID","status":422,"message":"The custody proof does not bind this account","data":{"id":"DALP-12274","why":"The control proof, external control artifact, provider binding, or step-up confirmation sent with this request does not bind the account on this ledger, or the custody provider does not support the ledger.","fix":"Produce a new proof or confirmation for this account and ledger, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","custody.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"custody.write.OUTCOME_UNKNOWN","status":503,"message":"The smart-wallet write outcome is unknown","data":{"id":"DALP-12109","why":"The queue may have accepted this wallet write, but its final outcome could not be confirmed.","fix":"Look up the transaction request before taking further action. Do not submit a replacement write under a new idempotency key.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Submits the proof that the lifecycle request in the path waits for. Send either a managed provider attestation or an EVM signature over the challenge digest. The platform checks the proof and returns the request in its next state.","summary":"Submit a custody account proof","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["managed-attestation"]},"attestationReference":{"type":"string","minLength":1},"digest":{"type":"string","minLength":1},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["_tag","attestationReference","digest"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["evm-signature"]},"address":{"$ref":"#/components/schemas/EvmAddress"},"signature":{"$ref":"#/components/schemas/EthereumHexEncoded"},"digest":{"type":"string","minLength":1},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["_tag","address","signature","digest"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["canton-signature"]},"partyId":{"type":"string","minLength":1},"signature":{"$ref":"#/components/schemas/CantonEd25519SignatureHex"},"digest":{"type":"string","minLength":1},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["_tag","partyId","signature","digest"],"additionalProperties":false}]}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/custody/accounts/lifecycle/{requestId}/approve":{"post":{"tags":["Custody"],"operationId":"custodyAccountsV2.lifecycleApprove","parameters":[{"name":"requestId","in":"path","schema":{"type":"string","minLength":1,"description":"Durable custody account lifecycle request identifier"},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The lifecycle request in its current state: awaiting proof, awaiting approval, or the next step to run.","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["awaiting-proof"]},"id":{"$ref":"#/components/schemas/CustodyAccountLifecycleRequestId"},"accountId":{"$ref":"#/components/schemas/CustodyAccountId"},"operation":{"type":"string","enum":["onboard","add","reset"]},"challengeDigest":{"type":"string","minLength":1},"expiresAt":{"type":"string"}},"required":["_tag","id","accountId","operation","challengeDigest","expiresAt"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["awaiting-approval"]},"id":{"$ref":"#/components/schemas/CustodyAccountLifecycleRequestId"},"accountId":{"$ref":"#/components/schemas/CustodyAccountId"},"operation":{"type":"string","enum":["onboard","add","reset"]},"proof":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["managed-attestation"]},"attestationReference":{"type":"string","minLength":1},"digest":{"type":"string","minLength":1}},"required":["_tag","attestationReference","digest"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["evm-signature"]},"address":{"$ref":"#/components/schemas/EvmAddress"},"signature":{"$ref":"#/components/schemas/EthereumHexEncoded"},"digest":{"type":"string","minLength":1}},"required":["_tag","address","signature","digest"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["canton-signature"]},"partyId":{"type":"string","minLength":1},"signature":{"$ref":"#/components/schemas/CantonEd25519SignatureHex"},"digest":{"type":"string","minLength":1}},"required":["_tag","partyId","signature","digest"],"additionalProperties":false}]},"approvalDigest":{"type":"string","minLength":1}},"required":["_tag","id","accountId","operation","proof","approvalDigest"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["ready"]},"id":{"$ref":"#/components/schemas/CustodyAccountLifecycleRequestId"},"accountId":{"$ref":"#/components/schemas/CustodyAccountId"},"operation":{"type":"string","enum":["onboard","add","reset"]},"proof":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["managed-attestation"]},"attestationReference":{"type":"string","minLength":1},"digest":{"type":"string","minLength":1}},"required":["_tag","attestationReference","digest"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["evm-signature"]},"address":{"$ref":"#/components/schemas/EvmAddress"},"signature":{"$ref":"#/components/schemas/EthereumHexEncoded"},"digest":{"type":"string","minLength":1}},"required":["_tag","address","signature","digest"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["canton-signature"]},"partyId":{"type":"string","minLength":1},"signature":{"$ref":"#/components/schemas/CantonEd25519SignatureHex"},"digest":{"type":"string","minLength":1}},"required":["_tag","partyId","signature","digest"],"additionalProperties":false}]},"approval":{"anyOf":[{"type":"object","properties":{"signerWalletId":{"$ref":"#/components/schemas/WalletId"},"requestDigest":{"type":"string","minLength":1},"signature":{"$ref":"#/components/schemas/EthereumHexEncoded"}},"required":["signerWalletId","requestDigest","signature"],"additionalProperties":false},{"type":"null"}]}},"required":["_tag","id","accountId","operation","proof"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["finalized"]},"id":{"$ref":"#/components/schemas/CustodyAccountLifecycleRequestId"},"accountId":{"$ref":"#/components/schemas/CustodyAccountId"},"operation":{"type":"string","enum":["onboard","add","reset"]},"account":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/CustodyAccountId"},"participantId":{"$ref":"#/components/schemas/ParticipantId"},"lifecycle":{"type":"string","enum":["pending","active","unavailable","revoked","archived"]},"detail":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["evm"]},"address":{"$ref":"#/components/schemas/EvmAddress"},"ownerWalletId":{"$ref":"#/components/schemas/WalletId"}},"required":["_tag","address","ownerWalletId"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["canton"]},"accountLocator":{"type":"string","minLength":1},"partyId":{"type":"string","minLength":1}},"required":["_tag","accountLocator","partyId"],"additionalProperties":false}]}},"required":["id","participantId","lifecycle","detail"],"additionalProperties":false}},"required":["_tag","id","accountId","operation","account"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["failed"]},"id":{"$ref":"#/components/schemas/CustodyAccountLifecycleRequestId"},"accountId":{"$ref":"#/components/schemas/CustodyAccountId"},"operation":{"type":"string","enum":["onboard","add","reset"]},"terminalCode":{"type":"string","minLength":1}},"required":["_tag","id","accountId","operation","terminalCode"],"additionalProperties":false}]},"examples":{"example-1":{"value":{"_tag":"ready","id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","accountId":"treasury-main","operation":"onboard","proof":{"_tag":"evm-signature","address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","signature":"0x5208","digest":"0xabc1230000000000000000000000000000000000000000000000000000000000"},"approval":null}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","CUSTODY_APPROVAL_REJECTED","CUSTODY_WALLET_NOT_SIGNER","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","status":404,"message":"Custody account not found","data":{"id":"DALP-12257","why":"No custody account visible to the caller in the active organization matches this identifier.","fix":"Refresh the active organization's account list and choose an account returned there.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","CUSTODY_APPROVAL_PENDING","CUSTODY_PROVIDER_CONFIG_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_PROOF_INVALID","CUSTODY_PROVIDER_CONFIG_INVALID"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_PROOF_INVALID","status":422,"message":"The custody proof does not bind this account","data":{"id":"DALP-12274","why":"The control proof, external control artifact, provider binding, or step-up confirmation sent with this request does not bind the account on this ledger, or the custody provider does not support the ledger.","fix":"Produce a new proof or confirmation for this account and ledger, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","custody.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"custody.write.OUTCOME_UNKNOWN","status":503,"message":"The smart-wallet write outcome is unknown","data":{"id":"DALP-12109","why":"The queue may have accepted this wallet write, but its final outcome could not be confirmed.","fix":"Look up the transaction request before taking further action. Do not submit a replacement write under a new idempotency key.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Records an existing signer's approval of the lifecycle request in the path. Send the signer wallet, the request digest, and the signature over that digest. The platform returns the request in its next state.","summary":"Approve a custody account lifecycle request","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"signerWalletId":{"$ref":"#/components/schemas/WalletId"},"requestDigest":{"type":"string","minLength":1},"signature":{"$ref":"#/components/schemas/EthereumHexEncoded"},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["signerWalletId","requestDigest","signature"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/custody/accounts/lifecycle/{requestId}/finalize":{"post":{"tags":["Custody"],"operationId":"custodyAccountsV2.lifecycleFinalize","parameters":[{"name":"requestId","in":"path","schema":{"type":"string","minLength":1,"description":"Durable custody account lifecycle request identifier"},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The custody account the request created or changed, with its lifecycle state and ledger detail.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/CustodyAccountId"},"participantId":{"$ref":"#/components/schemas/ParticipantId"},"lifecycle":{"type":"string","enum":["pending","active","unavailable","revoked","archived"]},"detail":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["evm"]},"address":{"$ref":"#/components/schemas/EvmAddress"},"ownerWalletId":{"$ref":"#/components/schemas/WalletId"}},"required":["_tag","address","ownerWalletId"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["canton"]},"accountLocator":{"type":"string","minLength":1},"partyId":{"type":"string","minLength":1}},"required":["_tag","accountLocator","partyId"],"additionalProperties":false}]}},"required":["id","participantId","lifecycle","detail"],"additionalProperties":false},"examples":{"example-1":{"value":{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","participantId":"c0b8d4b0-3c5a-4b62-9a2e-2f0f6f4a5f10","lifecycle":"pending","detail":{"_tag":"evm","address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","ownerWalletId":"wallet_northwind_owner"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","CUSTODY_APPROVAL_REJECTED","CUSTODY_WALLET_NOT_SIGNER","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","status":404,"message":"Custody account not found","data":{"id":"DALP-12257","why":"No custody account visible to the caller in the active organization matches this identifier.","fix":"Refresh the active organization's account list and choose an account returned there.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","CUSTODY_APPROVAL_PENDING","CUSTODY_PROVIDER_CONFIG_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_PROOF_INVALID","CUSTODY_PROVIDER_CONFIG_INVALID"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_PROOF_INVALID","status":422,"message":"The custody proof does not bind this account","data":{"id":"DALP-12274","why":"The control proof, external control artifact, provider binding, or step-up confirmation sent with this request does not bind the account on this ledger, or the custody provider does not support the ledger.","fix":"Produce a new proof or confirmation for this account and ledger, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","custody.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"custody.write.OUTCOME_UNKNOWN","status":503,"message":"The smart-wallet write outcome is unknown","data":{"id":"DALP-12109","why":"The queue may have accepted this wallet write, but its final outcome could not be confirmed.","fix":"Look up the transaction request before taking further action. Do not submit a replacement write under a new idempotency key.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Completes the lifecycle request in the path after its proof and approvals are in place. The platform returns the custody account with its lifecycle state and its EVM or Canton detail.","summary":"Finalize a custody account lifecycle request","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]}}},"required":false},"x-dalp-auth":"session-or-api-key"}},"/api/v2/custody/accounts/{custodyAccountId}":{"delete":{"tags":["Custody"],"operationId":"custodyAccountsV2.archive","parameters":[{"name":"custodyAccountId","in":"path","schema":{"type":"string","minLength":1,"description":"Global custody account identifier"},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"204":{"description":"The custody account is archived. The response has no body.","headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","CUSTODY_APPROVAL_REJECTED","CUSTODY_WALLET_NOT_SIGNER","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","status":404,"message":"Custody account not found","data":{"id":"DALP-12257","why":"No custody account visible to the caller in the active organization matches this identifier.","fix":"Refresh the active organization's account list and choose an account returned there.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","CUSTODY_APPROVAL_PENDING","CUSTODY_PROVIDER_CONFIG_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_PROOF_INVALID","CUSTODY_PROVIDER_CONFIG_INVALID"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_PROOF_INVALID","status":422,"message":"The custody proof does not bind this account","data":{"id":"DALP-12274","why":"The control proof, external control artifact, provider binding, or step-up confirmation sent with this request does not bind the account on this ledger, or the custody provider does not support the ledger.","fix":"Produce a new proof or confirmation for this account and ledger, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","custody.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"custody.write.OUTCOME_UNKNOWN","status":503,"message":"The smart-wallet write outcome is unknown","data":{"id":"DALP-12109","why":"The queue may have accepted this wallet write, but its final outcome could not be confirmed.","fix":"Look up the transaction request before taking further action. Do not submit a replacement write under a new idempotency key.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Archives the custody account in the path so it is no longer offered for new operations. Your session may need a wallet verification code for this change.","summary":"Archive a custody account","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]}}},"required":false},"x-dalp-auth":"session-or-api-key"}},"/api/v2/custody/accounts/lifecycle/{requestId}/provisioning":{"get":{"tags":["Custody"],"operationId":"custodyAccountsV2.provisioningStatus","parameters":[{"name":"requestId","in":"path","schema":{"type":"string","minLength":1,"description":"Durable custody account lifecycle request identifier"},"required":true}],"responses":{"200":{"description":"Provisioning status of the lifecycle request: accepted, running, completed, or failed.","content":{"application/json":{"schema":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/CustodyAccountLifecycleRequestId"},"status":{"type":"string","enum":["accepted","running","completed","failed"]}},"required":["requestId","status"],"additionalProperties":false},"examples":{"example-1":{"value":{"requestId":"019c0000-0000-7000-8000-000000000004","status":"accepted"}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","CUSTODY_APPROVAL_REJECTED","CUSTODY_WALLET_NOT_SIGNER","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","status":404,"message":"Custody account not found","data":{"id":"DALP-12257","why":"No custody account visible to the caller in the active organization matches this identifier.","fix":"Refresh the active organization's account list and choose an account returned there.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","CUSTODY_APPROVAL_PENDING","CUSTODY_PROVIDER_CONFIG_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_PROOF_INVALID","CUSTODY_PROVIDER_CONFIG_INVALID"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_PROOF_INVALID","status":422,"message":"The custody proof does not bind this account","data":{"id":"DALP-12274","why":"The control proof, external control artifact, provider binding, or step-up confirmation sent with this request does not bind the account on this ledger, or the custody provider does not support the ledger.","fix":"Produce a new proof or confirmation for this account and ledger, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","custody.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"custody.write.OUTCOME_UNKNOWN","status":503,"message":"The smart-wallet write outcome is unknown","data":{"id":"DALP-12109","why":"The queue may have accepted this wallet write, but its final outcome could not be confirmed.","fix":"Look up the transaction request before taking further action. Do not submit a replacement write under a new idempotency key.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the provisioning status of the lifecycle request in the path: accepted, running, completed, or failed. Poll it after a managed account creation until it completes or fails. Repeating the request is safe.","summary":"Read custody account provisioning status","x-dalp-auth":"session-or-api-key"}},"/api/v2/custody/wallets":{"get":{"tags":["Smart accounts"],"operationId":"smartWalletsV2.walletsList","parameters":[],"responses":{"200":{"description":"Wallets of the organization with their participant, kind, address, and archive flag.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/WalletId"},"participantId":{"$ref":"#/components/schemas/ParticipantId"},"kind":{"type":"string","enum":["eoa","smart","canton"]},"address":{"type":"string","minLength":1},"archived":{"type":"boolean"}},"required":["id","participantId","kind","address","archived"],"additionalProperties":false}},"examples":{"example-1":{"value":[{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","participantId":"c0b8d4b0-3c5a-4b62-9a2e-2f0f6f4a5f10","kind":"eoa","address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","archived":false}]}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","CUSTODY_APPROVAL_REJECTED","CUSTODY_WALLET_NOT_SIGNER","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","status":404,"message":"Custody account not found","data":{"id":"DALP-12257","why":"No custody account visible to the caller in the active organization matches this identifier.","fix":"Refresh the active organization's account list and choose an account returned there.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","CUSTODY_APPROVAL_PENDING","CUSTODY_PROVIDER_CONFIG_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_PROOF_INVALID","CUSTODY_PROVIDER_CONFIG_INVALID"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_PROOF_INVALID","status":422,"message":"The custody proof does not bind this account","data":{"id":"DALP-12274","why":"The control proof, external control artifact, provider binding, or step-up confirmation sent with this request does not bind the account on this ledger, or the custody provider does not support the ledger.","fix":"Produce a new proof or confirmation for this account and ledger, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","custody.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"custody.write.OUTCOME_UNKNOWN","status":503,"message":"The smart-wallet write outcome is unknown","data":{"id":"DALP-12109","why":"The queue may have accepted this wallet write, but its final outcome could not be confirmed.","fix":"Look up the transaction request before taking further action. Do not submit a replacement write under a new idempotency key.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the wallets of the active organization, each with its participant, kind, address, and archive flag. Repeating the request is safe.","summary":"List smart account wallets","x-dalp-auth":"session-or-api-key"},"post":{"tags":["Smart accounts"],"operationId":"smartWalletsV2.walletCreate","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Identifier and status of the request that applies the change: accepted, running, completed, or failed.","content":{"application/json":{"schema":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"status":{"type":"string","enum":["accepted","running","completed","failed"]}},"required":["requestId","status"],"additionalProperties":false},"examples":{"example-1":{"value":{"requestId":"019c0000-0000-7000-8000-000000000004","status":"accepted"}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","CUSTODY_APPROVAL_REJECTED","CUSTODY_WALLET_NOT_SIGNER","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","status":404,"message":"Custody account not found","data":{"id":"DALP-12257","why":"No custody account visible to the caller in the active organization matches this identifier.","fix":"Refresh the active organization's account list and choose an account returned there.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","CUSTODY_APPROVAL_PENDING","CUSTODY_PROVIDER_CONFIG_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_PROOF_INVALID","CUSTODY_PROVIDER_CONFIG_INVALID"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_PROOF_INVALID","status":422,"message":"The custody proof does not bind this account","data":{"id":"DALP-12274","why":"The control proof, external control artifact, provider binding, or step-up confirmation sent with this request does not bind the account on this ledger, or the custody provider does not support the ledger.","fix":"Produce a new proof or confirmation for this account and ledger, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","custody.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"custody.write.OUTCOME_UNKNOWN","status":503,"message":"The smart-wallet write outcome is unknown","data":{"id":"DALP-12109","why":"The queue may have accepted this wallet write, but its final outcome could not be confirmed.","fix":"Look up the transaction request before taking further action. Do not submit a replacement write under a new idempotency key.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Starts creation of a multisig smart account for a participant with the controller addresses and signer threshold you send. The platform returns the request identifier and status.","summary":"Create a smart account wallet","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"participantId":{"$ref":"#/components/schemas/ParticipantId"},"controllerAddresses":{"type":"array","items":{"type":"string","minLength":1}},"threshold":{"type":"integer"},"network":{"type":"string","minLength":1},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["participantId","controllerAddresses","threshold","network"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/custody/wallets/{walletId}":{"get":{"tags":["Smart accounts"],"operationId":"smartWalletsV2.walletRead","parameters":[{"name":"walletId","in":"path","schema":{"type":"string","minLength":1,"description":"Persisted wallet identifier"},"required":true}],"responses":{"200":{"description":"The wallet with its participant, kind, address, archive flag, and signer threshold.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/WalletId"},"participantId":{"$ref":"#/components/schemas/ParticipantId"},"kind":{"type":"string","enum":["smart"]},"address":{"type":"string","minLength":1},"archived":{"type":"boolean"},"threshold":{"type":"integer"}},"required":["id","participantId","kind","address","archived","threshold"],"additionalProperties":false},"examples":{"example-1":{"value":{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","participantId":"c0b8d4b0-3c5a-4b62-9a2e-2f0f6f4a5f10","kind":"smart","address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","archived":false,"threshold":2}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","CUSTODY_APPROVAL_REJECTED","CUSTODY_WALLET_NOT_SIGNER","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","status":404,"message":"Custody account not found","data":{"id":"DALP-12257","why":"No custody account visible to the caller in the active organization matches this identifier.","fix":"Refresh the active organization's account list and choose an account returned there.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","CUSTODY_APPROVAL_PENDING","CUSTODY_PROVIDER_CONFIG_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_PROOF_INVALID","CUSTODY_PROVIDER_CONFIG_INVALID"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_PROOF_INVALID","status":422,"message":"The custody proof does not bind this account","data":{"id":"DALP-12274","why":"The control proof, external control artifact, provider binding, or step-up confirmation sent with this request does not bind the account on this ledger, or the custody provider does not support the ledger.","fix":"Produce a new proof or confirmation for this account and ledger, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","custody.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"custody.write.OUTCOME_UNKNOWN","status":503,"message":"The smart-wallet write outcome is unknown","data":{"id":"DALP-12109","why":"The queue may have accepted this wallet write, but its final outcome could not be confirmed.","fix":"Look up the transaction request before taking further action. Do not submit a replacement write under a new idempotency key.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the wallet in the path with its participant, kind, address, archive flag, and weighted signer threshold. A participant must control a weighted signer of the wallet to read it.","summary":"Read a smart account wallet","x-dalp-auth":"session-or-api-key"},"patch":{"tags":["Smart accounts"],"operationId":"smartWalletsV2.walletUpdate","parameters":[{"name":"walletId","in":"path","schema":{"type":"string","minLength":1,"description":"Persisted wallet identifier"},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Identifier and status of the request that applies the change: accepted, running, completed, or failed.","content":{"application/json":{"schema":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"status":{"type":"string","enum":["accepted","running","completed","failed"]}},"required":["requestId","status"],"additionalProperties":false},"examples":{"example-1":{"value":{"requestId":"019c0000-0000-7000-8000-000000000004","status":"accepted"}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","CUSTODY_APPROVAL_REJECTED","CUSTODY_WALLET_NOT_SIGNER","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","status":404,"message":"Custody account not found","data":{"id":"DALP-12257","why":"No custody account visible to the caller in the active organization matches this identifier.","fix":"Refresh the active organization's account list and choose an account returned there.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","CUSTODY_APPROVAL_PENDING","CUSTODY_PROVIDER_CONFIG_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_PROOF_INVALID","CUSTODY_PROVIDER_CONFIG_INVALID"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_PROOF_INVALID","status":422,"message":"The custody proof does not bind this account","data":{"id":"DALP-12274","why":"The control proof, external control artifact, provider binding, or step-up confirmation sent with this request does not bind the account on this ledger, or the custody provider does not support the ledger.","fix":"Produce a new proof or confirmation for this account and ledger, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","custody.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"custody.write.OUTCOME_UNKNOWN","status":503,"message":"The smart-wallet write outcome is unknown","data":{"id":"DALP-12109","why":"The queue may have accepted this wallet write, but its final outcome could not be confirmed.","fix":"Look up the transaction request before taking further action. Do not submit a replacement write under a new idempotency key.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Applies one change to the smart account in the path: add or remove a signer, set the threshold, or install a module. The platform returns the request identifier and status of the change.","summary":"Change a smart account","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","minLength":1},"walletId":{"$ref":"#/components/schemas/WalletId"},"operation":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["add-signer"]},"signer":{"$ref":"#/components/schemas/EvmAddress"}},"required":["kind","signer"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["remove-signer"]},"signer":{"$ref":"#/components/schemas/EvmAddress"}},"required":["kind","signer"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["set-threshold"]},"threshold":{"type":"integer","exclusiveMinimum":0}},"required":["kind","threshold"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["install-module"]},"module":{"$ref":"#/components/schemas/EvmAddress"},"initData":{"anyOf":[{"$ref":"#/components/schemas/EthereumHexEncoded"},{"type":"null"}]}},"required":["kind","module"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["uninstall-module"]},"module":{"$ref":"#/components/schemas/EvmAddress"}},"required":["kind","module"],"additionalProperties":false}]},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["id","walletId","operation"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/custody/wallets/{walletId}/signers":{"get":{"tags":["Smart accounts"],"operationId":"smartWalletsV2.signersList","parameters":[{"name":"walletId","in":"path","schema":{"type":"string","minLength":1,"description":"Persisted wallet identifier"},"required":true}],"responses":{"200":{"description":"Weighted signer addresses and their participant links for the smart account.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"participantId":{"anyOf":[{"$ref":"#/components/schemas/ParticipantId"},{"type":"null"}]},"signer":{"$ref":"#/components/schemas/EvmAddress"},"weight":{"type":"integer"}},"required":["participantId","signer","weight"],"additionalProperties":false}},"examples":{"example-1":{"value":[{"participantId":"c0b8d4b0-3c5a-4b62-9a2e-2f0f6f4a5f10","signer":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","weight":1}]}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","CUSTODY_APPROVAL_REJECTED","CUSTODY_WALLET_NOT_SIGNER","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","status":404,"message":"Custody account not found","data":{"id":"DALP-12257","why":"No custody account visible to the caller in the active organization matches this identifier.","fix":"Refresh the active organization's account list and choose an account returned there.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","CUSTODY_APPROVAL_PENDING","CUSTODY_PROVIDER_CONFIG_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_PROOF_INVALID","CUSTODY_PROVIDER_CONFIG_INVALID"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_PROOF_INVALID","status":422,"message":"The custody proof does not bind this account","data":{"id":"DALP-12274","why":"The control proof, external control artifact, provider binding, or step-up confirmation sent with this request does not bind the account on this ledger, or the custody provider does not support the ledger.","fix":"Produce a new proof or confirmation for this account and ledger, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","custody.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"custody.write.OUTCOME_UNKNOWN","status":503,"message":"The smart-wallet write outcome is unknown","data":{"id":"DALP-12109","why":"The queue may have accepted this wallet write, but its final outcome could not be confirmed.","fix":"Look up the transaction request before taking further action. Do not submit a replacement write under a new idempotency key.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns each weighted signer's address, weight, and participant when custody can identify one in this organization. A participant must control a weighted signer of the wallet to read the list.","summary":"List smart account signers","x-dalp-auth":"session-or-api-key"}},"/api/v2/custody/wallets/{walletId}/controllers":{"get":{"tags":["Smart accounts"],"operationId":"smartWalletsV2.controllersList","parameters":[{"name":"walletId","in":"path","schema":{"type":"string","minLength":1,"description":"Persisted wallet identifier"},"required":true}],"responses":{"200":{"description":"The wallet's weighted controller set and signing threshold.","content":{"application/json":{"schema":{"type":"object","properties":{"walletId":{"$ref":"#/components/schemas/WalletId"},"controllers":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["platform"]},"participantId":{"$ref":"#/components/schemas/ParticipantId"},"address":{"$ref":"#/components/schemas/EvmAddress"},"walletId":{"$ref":"#/components/schemas/WalletId"},"weight":{"type":"integer"}},"required":["_tag","participantId","address","walletId","weight"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["external"]},"address":{"$ref":"#/components/schemas/EvmAddress"},"weight":{"type":"integer"}},"required":["_tag","address","weight"],"additionalProperties":false}]}},"threshold":{"type":"integer"}},"required":["walletId","controllers","threshold"],"additionalProperties":false},"examples":{"example-1":{"value":{"walletId":"wallet-custody-001","controllers":[{"_tag":"platform","participantId":"c0b8d4b0-3c5a-4b62-9a2e-2f0f6f4a5f10","address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","walletId":"wallet-custody-001","weight":1}],"threshold":2}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","CUSTODY_APPROVAL_REJECTED","CUSTODY_WALLET_NOT_SIGNER","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","status":404,"message":"Custody account not found","data":{"id":"DALP-12257","why":"No custody account visible to the caller in the active organization matches this identifier.","fix":"Refresh the active organization's account list and choose an account returned there.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","CUSTODY_APPROVAL_PENDING","CUSTODY_PROVIDER_CONFIG_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_PROOF_INVALID","CUSTODY_PROVIDER_CONFIG_INVALID"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_PROOF_INVALID","status":422,"message":"The custody proof does not bind this account","data":{"id":"DALP-12274","why":"The control proof, external control artifact, provider binding, or step-up confirmation sent with this request does not bind the account on this ledger, or the custody provider does not support the ledger.","fix":"Produce a new proof or confirmation for this account and ledger, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","custody.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"custody.write.OUTCOME_UNKNOWN","status":503,"message":"The smart-wallet write outcome is unknown","data":{"id":"DALP-12109","why":"The queue may have accepted this wallet write, but its final outcome could not be confirmed.","fix":"Look up the transaction request before taking further action. Do not submit a replacement write under a new idempotency key.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the weighted controllers and signing threshold for the smart wallet in the path. Use this read before choosing a signer for a user operation, and repeat it after a wallet mutation settles.","summary":"Read a smart wallet's controllers","x-dalp-auth":"session-or-api-key"}},"/api/v2/custody/wallets/{walletId}/approvals":{"get":{"tags":["Smart accounts"],"operationId":"smartWalletsV2.approvalsList","parameters":[{"name":"walletId","in":"path","schema":{"type":"string","minLength":1,"description":"Persisted wallet identifier"},"required":true}],"responses":{"200":{"description":"Multisig approvals of the smart account with their status and signer weight.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"walletId":{"$ref":"#/components/schemas/WalletId"},"preview":{"type":"object","properties":{"marker":{"type":"string","enum":["dalp-user-op-preview-v1"]},"sender":{"$ref":"#/components/schemas/EvmAddress"},"nonce":{"type":"string","examples":["0"]},"callData":{"$ref":"#/components/schemas/EthereumHexEncoded"},"callGasLimit":{"type":"string","examples":["100000"]},"verificationGasLimit":{"type":"string","examples":["150000"]},"preVerificationGas":{"type":"string","examples":["50000"]},"maxFeePerGas":{"type":"string","examples":["2000000000"]},"maxPriorityFeePerGas":{"type":"string","examples":["1000000000"]},"userOpHash":{"$ref":"#/components/schemas/EthereumHashEncoded"},"entryPointAddress":{"$ref":"#/components/schemas/EvmAddress"},"chainId":{"type":"integer"},"factory":{"$ref":"#/components/schemas/EvmAddress"},"factoryData":{"$ref":"#/components/schemas/EthereumHexEncoded"},"paymaster":{"$ref":"#/components/schemas/EvmAddress"},"paymasterVerificationGasLimit":{"type":"string"},"paymasterPostOpGasLimit":{"type":"string"},"paymasterData":{"$ref":"#/components/schemas/EthereumHexEncoded"}},"required":["marker","sender","nonce","callData","callGasLimit","verificationGasLimit","preVerificationGas","maxFeePerGas","maxPriorityFeePerGas","userOpHash"],"additionalProperties":false},"status":{"type":"string","enum":["pending","threshold-reached","submitted","landed","rejected","expired"]},"requiredWeight":{"type":"integer"},"collectedWeight":{"type":"integer"},"expiresAt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","walletId","preview","status","requiredWeight","collectedWeight","expiresAt"],"additionalProperties":false}},"examples":{"example-1":{"value":[{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","walletId":"wallet-custody-001","preview":{"marker":"dalp-user-op-preview-v1","sender":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","nonce":"0","callData":"0x5208","callGasLimit":"100000","verificationGasLimit":"150000","preVerificationGas":"50000","maxFeePerGas":"2000000000","maxPriorityFeePerGas":"1000000000","userOpHash":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae","entryPointAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","chainId":1,"factory":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","factoryData":"0x5208","paymaster":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","paymasterData":"0x5208"},"status":"pending","requiredWeight":0,"collectedWeight":0,"expiresAt":"2026-04-20T16:00:00.000Z"}]}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","CUSTODY_APPROVAL_REJECTED","CUSTODY_WALLET_NOT_SIGNER","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","status":404,"message":"Custody account not found","data":{"id":"DALP-12257","why":"No custody account visible to the caller in the active organization matches this identifier.","fix":"Refresh the active organization's account list and choose an account returned there.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","CUSTODY_APPROVAL_PENDING","CUSTODY_PROVIDER_CONFIG_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_PROOF_INVALID","CUSTODY_PROVIDER_CONFIG_INVALID"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_PROOF_INVALID","status":422,"message":"The custody proof does not bind this account","data":{"id":"DALP-12274","why":"The control proof, external control artifact, provider binding, or step-up confirmation sent with this request does not bind the account on this ledger, or the custody provider does not support the ledger.","fix":"Produce a new proof or confirmation for this account and ledger, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","custody.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"custody.write.OUTCOME_UNKNOWN","status":503,"message":"The smart-wallet write outcome is unknown","data":{"id":"DALP-12109","why":"The queue may have accepted this wallet write, but its final outcome could not be confirmed.","fix":"Look up the transaction request before taking further action. Do not submit a replacement write under a new idempotency key.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the multisig approvals of the smart account in the path, each with its user operation preview, status, required and collected signer weight, and expiry when one exists. A participant must control a weighted signer of the wallet to read the list.","summary":"List multisig approvals","x-dalp-auth":"session-or-api-key"},"post":{"tags":["Smart accounts"],"operationId":"smartWalletsV2.approvalCreate","parameters":[{"name":"walletId","in":"path","schema":{"type":"string","minLength":1,"description":"Persisted wallet identifier"},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The multisig approval with its user operation preview, status, and collected signer weight.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","minLength":1},"walletId":{"$ref":"#/components/schemas/WalletId"},"preview":{"type":"object","properties":{"marker":{"type":"string","enum":["dalp-user-op-preview-v1"]},"sender":{"$ref":"#/components/schemas/EvmAddress"},"nonce":{"type":"string","examples":["0"]},"callData":{"$ref":"#/components/schemas/EthereumHexEncoded"},"callGasLimit":{"type":"string","examples":["100000"]},"verificationGasLimit":{"type":"string","examples":["150000"]},"preVerificationGas":{"type":"string","examples":["50000"]},"maxFeePerGas":{"type":"string","examples":["2000000000"]},"maxPriorityFeePerGas":{"type":"string","examples":["1000000000"]},"userOpHash":{"$ref":"#/components/schemas/EthereumHashEncoded"},"entryPointAddress":{"$ref":"#/components/schemas/EvmAddress"},"chainId":{"type":"integer"},"factory":{"$ref":"#/components/schemas/EvmAddress"},"factoryData":{"$ref":"#/components/schemas/EthereumHexEncoded"},"paymaster":{"$ref":"#/components/schemas/EvmAddress"},"paymasterVerificationGasLimit":{"type":"string"},"paymasterPostOpGasLimit":{"type":"string"},"paymasterData":{"$ref":"#/components/schemas/EthereumHexEncoded"}},"required":["marker","sender","nonce","callData","callGasLimit","verificationGasLimit","preVerificationGas","maxFeePerGas","maxPriorityFeePerGas","userOpHash"],"additionalProperties":false},"status":{"type":"string","enum":["pending","threshold-reached","submitted","landed","rejected","expired"]},"requiredWeight":{"type":"integer"},"collectedWeight":{"type":"integer"},"expiresAt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","walletId","preview","status","requiredWeight","collectedWeight","expiresAt"],"additionalProperties":false},"examples":{"example-1":{"value":{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","walletId":"wallet-custody-001","preview":{"marker":"dalp-user-op-preview-v1","sender":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","nonce":"0","callData":"0x5208","callGasLimit":"100000","verificationGasLimit":"150000","preVerificationGas":"50000","maxFeePerGas":"2000000000","maxPriorityFeePerGas":"1000000000","userOpHash":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae","entryPointAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","chainId":1,"factory":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","factoryData":"0x5208","paymaster":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","paymasterData":"0x5208"},"status":"pending","requiredWeight":0,"collectedWeight":0,"expiresAt":"2026-04-20T16:00:00.000Z"}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","CUSTODY_APPROVAL_REJECTED","CUSTODY_WALLET_NOT_SIGNER","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","status":404,"message":"Custody account not found","data":{"id":"DALP-12257","why":"No custody account visible to the caller in the active organization matches this identifier.","fix":"Refresh the active organization's account list and choose an account returned there.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","CUSTODY_APPROVAL_PENDING","CUSTODY_PROVIDER_CONFIG_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_PROOF_INVALID","CUSTODY_PROVIDER_CONFIG_INVALID"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_PROOF_INVALID","status":422,"message":"The custody proof does not bind this account","data":{"id":"DALP-12274","why":"The control proof, external control artifact, provider binding, or step-up confirmation sent with this request does not bind the account on this ledger, or the custody provider does not support the ledger.","fix":"Produce a new proof or confirmation for this account and ledger, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","custody.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"custody.write.OUTCOME_UNKNOWN","status":503,"message":"The smart-wallet write outcome is unknown","data":{"id":"DALP-12109","why":"The queue may have accepted this wallet write, but its final outcome could not be confirmed.","fix":"Look up the transaction request before taking further action. Do not submit a replacement write under a new idempotency key.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Creates a pending multisig approval for the user operation preview you send on the smart account in the path. Signers then add signatures until the collected weight reaches the threshold.","summary":"Create a multisig approval","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","minLength":1},"walletId":{"$ref":"#/components/schemas/WalletId"},"preview":{"type":"object","properties":{"marker":{"type":"string","enum":["dalp-user-op-preview-v1"]},"sender":{"$ref":"#/components/schemas/EvmAddress"},"nonce":{"type":"string","examples":["0"]},"callData":{"$ref":"#/components/schemas/EthereumHexEncoded"},"callGasLimit":{"type":"string","examples":["100000"]},"verificationGasLimit":{"type":"string","examples":["150000"]},"preVerificationGas":{"type":"string","examples":["50000"]},"maxFeePerGas":{"type":"string","examples":["2000000000"]},"maxPriorityFeePerGas":{"type":"string","examples":["1000000000"]},"userOpHash":{"$ref":"#/components/schemas/EthereumHashEncoded"},"entryPointAddress":{"$ref":"#/components/schemas/EvmAddress"},"chainId":{"type":"integer"},"factory":{"$ref":"#/components/schemas/EvmAddress"},"factoryData":{"$ref":"#/components/schemas/EthereumHexEncoded"},"paymaster":{"$ref":"#/components/schemas/EvmAddress"},"paymasterVerificationGasLimit":{"type":"string"},"paymasterPostOpGasLimit":{"type":"string"},"paymasterData":{"$ref":"#/components/schemas/EthereumHexEncoded"}},"required":["marker","sender","nonce","callData","callGasLimit","verificationGasLimit","preVerificationGas","maxFeePerGas","maxPriorityFeePerGas","userOpHash"],"additionalProperties":false},"status":{"type":"string","enum":["pending","threshold-reached","submitted","landed","rejected","expired"]},"requiredWeight":{"type":"integer"},"collectedWeight":{"type":"integer"},"expiresAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["id","walletId","preview","status","requiredWeight","collectedWeight","expiresAt"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/custody/approvals/{approvalId}":{"get":{"tags":["Smart accounts"],"operationId":"smartWalletsV2.approvalRead","parameters":[{"name":"approvalId","in":"path","schema":{"type":"string","minLength":1},"required":true}],"responses":{"200":{"description":"The approval, its collected weight, and its counted signer signatures.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","minLength":1},"walletId":{"$ref":"#/components/schemas/WalletId"},"preview":{"type":"object","properties":{"marker":{"type":"string","enum":["dalp-user-op-preview-v1"]},"sender":{"$ref":"#/components/schemas/EvmAddress"},"nonce":{"type":"string","examples":["0"]},"callData":{"$ref":"#/components/schemas/EthereumHexEncoded"},"callGasLimit":{"type":"string","examples":["100000"]},"verificationGasLimit":{"type":"string","examples":["150000"]},"preVerificationGas":{"type":"string","examples":["50000"]},"maxFeePerGas":{"type":"string","examples":["2000000000"]},"maxPriorityFeePerGas":{"type":"string","examples":["1000000000"]},"userOpHash":{"$ref":"#/components/schemas/EthereumHashEncoded"},"entryPointAddress":{"$ref":"#/components/schemas/EvmAddress"},"chainId":{"type":"integer"},"factory":{"$ref":"#/components/schemas/EvmAddress"},"factoryData":{"$ref":"#/components/schemas/EthereumHexEncoded"},"paymaster":{"$ref":"#/components/schemas/EvmAddress"},"paymasterVerificationGasLimit":{"type":"string"},"paymasterPostOpGasLimit":{"type":"string"},"paymasterData":{"$ref":"#/components/schemas/EthereumHexEncoded"}},"required":["marker","sender","nonce","callData","callGasLimit","verificationGasLimit","preVerificationGas","maxFeePerGas","maxPriorityFeePerGas","userOpHash"],"additionalProperties":false},"status":{"type":"string","enum":["pending","threshold-reached","submitted","landed","rejected","expired"]},"requiredWeight":{"type":"integer"},"collectedWeight":{"type":"integer"},"expiresAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"signatures":{"type":"array","items":{"type":"object","properties":{"signerAddress":{"$ref":"#/components/schemas/EvmAddress"},"signature":{"$ref":"#/components/schemas/EthereumHexEncoded"},"weight":{"type":"integer"}},"required":["signerAddress","signature","weight"],"additionalProperties":false}}},"required":["id","walletId","preview","status","requiredWeight","collectedWeight","expiresAt","signatures"],"additionalProperties":false},"examples":{"example-1":{"value":{"id":"0x7d2d8f95814a1b56f2387bab9ae0351bbc618196626a704f552d95159a199206","walletId":"wallet_smart","preview":{"marker":"dalp-user-op-preview-v1","sender":"0x1111111111111111111111111111111111111111","nonce":"1","callData":"0xdeadbeef","callGasLimit":"100000","verificationGasLimit":"100000","preVerificationGas":"50000","maxFeePerGas":"1000000000","maxPriorityFeePerGas":"1000000","userOpHash":"0x7d2d8f95814a1b56f2387bab9ae0351bbc618196626a704f552d95159a199206"},"status":"pending","requiredWeight":2,"collectedWeight":1,"expiresAt":"2026-10-01T12:00:00.000Z","signatures":[{"signerAddress":"0x2222222222222222222222222222222222222222","signature":"0xfeed","weight":1}]}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","CUSTODY_APPROVAL_REJECTED","CUSTODY_WALLET_NOT_SIGNER","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","status":404,"message":"Custody account not found","data":{"id":"DALP-12257","why":"No custody account visible to the caller in the active organization matches this identifier.","fix":"Refresh the active organization's account list and choose an account returned there.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","CUSTODY_APPROVAL_PENDING","CUSTODY_PROVIDER_CONFIG_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_PROOF_INVALID","CUSTODY_PROVIDER_CONFIG_INVALID"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_PROOF_INVALID","status":422,"message":"The custody proof does not bind this account","data":{"id":"DALP-12274","why":"The control proof, external control artifact, provider binding, or step-up confirmation sent with this request does not bind the account on this ledger, or the custody provider does not support the ledger.","fix":"Produce a new proof or confirmation for this account and ledger, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","custody.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"custody.write.OUTCOME_UNKNOWN","status":503,"message":"The smart-wallet write outcome is unknown","data":{"id":"DALP-12109","why":"The queue may have accepted this wallet write, but its final outcome could not be confirmed.","fix":"Look up the transaction request before taking further action. Do not submit a replacement write under a new idempotency key.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns an approval by its identifier or user operation hash and the signatures that count toward its threshold. Only a participant controlling a weighted signer of the wallet may read it.","summary":"Read a multisig approval and its signatures","x-dalp-auth":"session-or-api-key"}},"/api/v2/custody/approvals/{approvalId}/signatures":{"post":{"tags":["Smart accounts"],"operationId":"smartWalletsV2.approvalSign","parameters":[{"name":"approvalId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The multisig approval with its user operation preview, status, and collected signer weight.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","minLength":1},"walletId":{"$ref":"#/components/schemas/WalletId"},"preview":{"type":"object","properties":{"marker":{"type":"string","enum":["dalp-user-op-preview-v1"]},"sender":{"$ref":"#/components/schemas/EvmAddress"},"nonce":{"type":"string","examples":["0"]},"callData":{"$ref":"#/components/schemas/EthereumHexEncoded"},"callGasLimit":{"type":"string","examples":["100000"]},"verificationGasLimit":{"type":"string","examples":["150000"]},"preVerificationGas":{"type":"string","examples":["50000"]},"maxFeePerGas":{"type":"string","examples":["2000000000"]},"maxPriorityFeePerGas":{"type":"string","examples":["1000000000"]},"userOpHash":{"$ref":"#/components/schemas/EthereumHashEncoded"},"entryPointAddress":{"$ref":"#/components/schemas/EvmAddress"},"chainId":{"type":"integer"},"factory":{"$ref":"#/components/schemas/EvmAddress"},"factoryData":{"$ref":"#/components/schemas/EthereumHexEncoded"},"paymaster":{"$ref":"#/components/schemas/EvmAddress"},"paymasterVerificationGasLimit":{"type":"string"},"paymasterPostOpGasLimit":{"type":"string"},"paymasterData":{"$ref":"#/components/schemas/EthereumHexEncoded"}},"required":["marker","sender","nonce","callData","callGasLimit","verificationGasLimit","preVerificationGas","maxFeePerGas","maxPriorityFeePerGas","userOpHash"],"additionalProperties":false},"status":{"type":"string","enum":["pending","threshold-reached","submitted","landed","rejected","expired"]},"requiredWeight":{"type":"integer"},"collectedWeight":{"type":"integer"},"expiresAt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","walletId","preview","status","requiredWeight","collectedWeight","expiresAt"],"additionalProperties":false},"examples":{"example-1":{"value":{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","walletId":"wallet-custody-001","preview":{"marker":"dalp-user-op-preview-v1","sender":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","nonce":"0","callData":"0x5208","callGasLimit":"100000","verificationGasLimit":"150000","preVerificationGas":"50000","maxFeePerGas":"2000000000","maxPriorityFeePerGas":"1000000000","userOpHash":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae","entryPointAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","chainId":1,"factory":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","factoryData":"0x5208","paymaster":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","paymasterData":"0x5208"},"status":"pending","requiredWeight":0,"collectedWeight":0,"expiresAt":"2026-04-20T16:00:00.000Z"}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","CUSTODY_APPROVAL_REJECTED","CUSTODY_WALLET_NOT_SIGNER","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","status":404,"message":"Custody account not found","data":{"id":"DALP-12257","why":"No custody account visible to the caller in the active organization matches this identifier.","fix":"Refresh the active organization's account list and choose an account returned there.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","CUSTODY_APPROVAL_PENDING","CUSTODY_PROVIDER_CONFIG_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_PROOF_INVALID","CUSTODY_PROVIDER_CONFIG_INVALID"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_PROOF_INVALID","status":422,"message":"The custody proof does not bind this account","data":{"id":"DALP-12274","why":"The control proof, external control artifact, provider binding, or step-up confirmation sent with this request does not bind the account on this ledger, or the custody provider does not support the ledger.","fix":"Produce a new proof or confirmation for this account and ledger, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","custody.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"custody.write.OUTCOME_UNKNOWN","status":503,"message":"The smart-wallet write outcome is unknown","data":{"id":"DALP-12109","why":"The queue may have accepted this wallet write, but its final outcome could not be confirmed.","fix":"Look up the transaction request before taking further action. Do not submit a replacement write under a new idempotency key.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"After wallet step-up verification, accepts an external signature over the canonical user operation hash or signs that digest through a managed custody account controlled by the acting participant. The signer must belong to this wallet and contributes weight once. When the threshold is met, the approval can be submitted.","summary":"Sign a multisig approval","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"signer":{"$ref":"#/components/schemas/EvmAddress"},"signature":{"$ref":"#/components/schemas/EthereumHexEncoded"},"userOpHash":{"$ref":"#/components/schemas/EthereumHashEncoded"},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]},"mode":{"type":"string","enum":["external"]}},"required":["signer","signature","userOpHash","mode"],"additionalProperties":false},{"type":"object","properties":{"mode":{"type":"string","enum":["managed"]},"signer":{"$ref":"#/components/schemas/EvmAddress"},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["mode","signer"],"additionalProperties":false}]}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/custody/approvals/{approvalId}/submissions":{"post":{"tags":["Smart accounts"],"operationId":"smartWalletsV2.approvalSubmit","parameters":[{"name":"approvalId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Identifier and status of the request that submits the approved user operation.","content":{"application/json":{"schema":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"status":{"type":"string","enum":["accepted","running","completed","failed"]}},"required":["requestId","status"],"additionalProperties":false},"examples":{"example-1":{"value":{"requestId":"019c0000-0000-7000-8000-000000000004","status":"accepted"}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","CUSTODY_APPROVAL_REJECTED","CUSTODY_WALLET_NOT_SIGNER","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","status":404,"message":"Custody account not found","data":{"id":"DALP-12257","why":"No custody account visible to the caller in the active organization matches this identifier.","fix":"Refresh the active organization's account list and choose an account returned there.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","CUSTODY_APPROVAL_PENDING","CUSTODY_PROVIDER_CONFIG_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_PROOF_INVALID","CUSTODY_PROVIDER_CONFIG_INVALID"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_PROOF_INVALID","status":422,"message":"The custody proof does not bind this account","data":{"id":"DALP-12274","why":"The control proof, external control artifact, provider binding, or step-up confirmation sent with this request does not bind the account on this ledger, or the custody provider does not support the ledger.","fix":"Produce a new proof or confirmation for this account and ledger, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","custody.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"custody.write.OUTCOME_UNKNOWN","status":503,"message":"The smart-wallet write outcome is unknown","data":{"id":"DALP-12109","why":"The queue may have accepted this wallet write, but its final outcome could not be confirmed.","fix":"Look up the transaction request before taking further action. Do not submit a replacement write under a new idempotency key.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Submits the multisig approval in the path once its collected signer weight reaches the threshold. The platform returns the request identifier and status of the submission.","summary":"Submit a multisig approval","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]}}},"required":false},"x-dalp-auth":"session-or-api-key"}},"/api/v2/custody/wallets/{walletId}/gas":{"get":{"tags":["Smart accounts"],"operationId":"smartWalletsV2.gasStatus","parameters":[{"name":"walletId","in":"path","schema":{"type":"string","minLength":1,"description":"Persisted wallet identifier"},"required":true}],"responses":{"200":{"description":"Gas status of the smart account: funded, low, or empty.","content":{"application/json":{"schema":{"type":"string","enum":["funded","low","empty"]},"examples":{"example-1":{"value":"funded"}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","CUSTODY_APPROVAL_REJECTED","CUSTODY_WALLET_NOT_SIGNER","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","status":404,"message":"Custody account not found","data":{"id":"DALP-12257","why":"No custody account visible to the caller in the active organization matches this identifier.","fix":"Refresh the active organization's account list and choose an account returned there.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","CUSTODY_APPROVAL_PENDING","CUSTODY_PROVIDER_CONFIG_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_PROOF_INVALID","CUSTODY_PROVIDER_CONFIG_INVALID"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_PROOF_INVALID","status":422,"message":"The custody proof does not bind this account","data":{"id":"DALP-12274","why":"The control proof, external control artifact, provider binding, or step-up confirmation sent with this request does not bind the account on this ledger, or the custody provider does not support the ledger.","fix":"Produce a new proof or confirmation for this account and ledger, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","custody.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"custody.write.OUTCOME_UNKNOWN","status":503,"message":"The smart-wallet write outcome is unknown","data":{"id":"DALP-12109","why":"The queue may have accepted this wallet write, but its final outcome could not be confirmed.","fix":"Look up the transaction request before taking further action. Do not submit a replacement write under a new idempotency key.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns whether the smart account in the path holds enough native gas: funded, low, or empty. Repeating the request is safe.","summary":"Read smart account gas status","x-dalp-auth":"session-or-api-key"}},"/api/v2/custody/wallets/{walletId}/mutations":{"post":{"tags":["Smart accounts"],"operationId":"smartWalletsV2.mutation","parameters":[{"name":"walletId","in":"path","schema":{"type":"string","minLength":1,"description":"Persisted wallet identifier"},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Identifier and status of the request that applies the change: accepted, running, completed, or failed.","content":{"application/json":{"schema":{"type":"object","properties":{"requestId":{"type":"string","minLength":1},"status":{"type":"string","enum":["accepted","running","completed","failed"]}},"required":["requestId","status"],"additionalProperties":false},"examples":{"example-1":{"value":{"requestId":"019c0000-0000-7000-8000-000000000004","status":"accepted"}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","CUSTODY_APPROVAL_REJECTED","CUSTODY_WALLET_NOT_SIGNER","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","status":404,"message":"Custody account not found","data":{"id":"DALP-12257","why":"No custody account visible to the caller in the active organization matches this identifier.","fix":"Refresh the active organization's account list and choose an account returned there.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","CUSTODY_APPROVAL_PENDING","CUSTODY_PROVIDER_CONFIG_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_PROOF_INVALID","CUSTODY_PROVIDER_CONFIG_INVALID"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_PROOF_INVALID","status":422,"message":"The custody proof does not bind this account","data":{"id":"DALP-12274","why":"The control proof, external control artifact, provider binding, or step-up confirmation sent with this request does not bind the account on this ledger, or the custody provider does not support the ledger.","fix":"Produce a new proof or confirmation for this account and ledger, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","custody.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"custody.write.OUTCOME_UNKNOWN","status":503,"message":"The smart-wallet write outcome is unknown","data":{"id":"DALP-12109","why":"The queue may have accepted this wallet write, but its final outcome could not be confirmed.","fix":"Look up the transaction request before taking further action. Do not submit a replacement write under a new idempotency key.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Submits one change to the smart account in the path: add or remove a signer, set the threshold, or install a module. The platform returns the request identifier and status of the change.","summary":"Submit a smart account change","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","minLength":1},"walletId":{"$ref":"#/components/schemas/WalletId"},"operation":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["add-signer"]},"signer":{"$ref":"#/components/schemas/EvmAddress"}},"required":["kind","signer"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["remove-signer"]},"signer":{"$ref":"#/components/schemas/EvmAddress"}},"required":["kind","signer"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["set-threshold"]},"threshold":{"type":"integer","exclusiveMinimum":0}},"required":["kind","threshold"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["install-module"]},"module":{"$ref":"#/components/schemas/EvmAddress"},"initData":{"anyOf":[{"$ref":"#/components/schemas/EthereumHexEncoded"},{"type":"null"}]}},"required":["kind","module"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["uninstall-module"]},"module":{"$ref":"#/components/schemas/EvmAddress"}},"required":["kind","module"],"additionalProperties":false}]},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["id","walletId","operation"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/custody/provider-configurations":{"get":{"tags":["Custody"],"operationId":"custodyProviderConfigurationsV2.creationCatalog","parameters":[{"name":"invitationId","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"The redacted list of healthy provider capabilities available for new accounts.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/CustodyProviderConfigurationId"},"provider":{"type":"string","enum":["local","dfns","fireblocks","luna","ripple","anvil","privy","injected-browser","dynamic"]},"capabilities":{"type":"object","properties":{"accountCreation":{"type":"string","enum":["create","link"]},"accountProof":{"type":"string","enum":["provider-attestation","interactive-address"]},"managedSigning":{"type":"boolean"},"externalSigning":{"type":"boolean"},"accountAbstraction":{"type":"boolean"},"ledgerNetworks":{"type":"array","items":{"type":"object","properties":{"ledger":{"type":"string","enum":["evm","canton"]},"networks":{"type":"array","items":{"type":"string","minLength":1}}},"required":["ledger","networks"],"additionalProperties":false}}},"required":["accountCreation","accountProof","managedSigning","externalSigning","accountAbstraction","ledgerNetworks"],"additionalProperties":false},"clientConfiguration":{"anyOf":[{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["privy"]},"tenant":{"type":"string","enum":["platform","organization"]},"appId":{"type":"string","minLength":1},"clientId":{"type":"string","minLength":1}},"required":["kind","tenant","appId"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["injected-browser"]}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["dynamic"]},"tenant":{"type":"string","enum":["platform","organization"]},"environmentId":{"type":"string","minLength":1}},"required":["kind","tenant","environmentId"],"additionalProperties":false}]},{"type":"null"}]},"investorProvider":{"type":"boolean"},"offeredToInvestors":{"type":"boolean"}},"required":["id","provider","capabilities","clientConfiguration","investorProvider","offeredToInvestors"],"additionalProperties":false}}},"required":["data"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"019c0000-0000-7000-8000-000000000001","provider":"injected-browser","capabilities":{"accountCreation":"link","accountProof":"interactive-address","managedSigning":false,"externalSigning":true,"accountAbstraction":true,"ledgerNetworks":[{"ledger":"evm","networks":["sepolia"]}]},"clientConfiguration":{"kind":"injected-browser"},"investorProvider":true,"offeredToInvestors":false}]}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","CUSTODY_APPROVAL_REJECTED","CUSTODY_WALLET_NOT_SIGNER","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","status":404,"message":"Custody account not found","data":{"id":"DALP-12257","why":"No custody account visible to the caller in the active organization matches this identifier.","fix":"Refresh the active organization's account list and choose an account returned there.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","CUSTODY_APPROVAL_PENDING","CUSTODY_PROVIDER_CONFIG_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_PROOF_INVALID","CUSTODY_PROVIDER_CONFIG_INVALID"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_PROOF_INVALID","status":422,"message":"The custody proof does not bind this account","data":{"id":"DALP-12274","why":"The control proof, external control artifact, provider binding, or step-up confirmation sent with this request does not bind the account on this ledger, or the custody provider does not support the ledger.","fix":"Produce a new proof or confirmation for this account and ledger, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","custody.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"custody.write.OUTCOME_UNKNOWN","status":503,"message":"The smart-wallet write outcome is unknown","data":{"id":"DALP-12109","why":"The queue may have accepted this wallet write, but its final outcome could not be confirmed.","fix":"Look up the transaction request before taking further action. Do not submit a replacement write under a new idempotency key.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns only healthy, enabled provider capabilities, with credential provenance and execution diagnostics excluded. The catalog answers for the active organization. A caller whose session names none reads the inviting organization catalog by naming an open invitation addressed to them.","summary":"List provider configurations available for account creation","x-dalp-auth":"session-or-api-key"}},"/api/v2/custody/investor-provider":{"get":{"tags":["Custody"],"operationId":"custodyProviderConfigurationsV2.investorProvider","parameters":[],"responses":{"200":{"description":"The provider configuration this organization designated for its investors, redacted of credential provenance, or `null` when it designated none.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"anyOf":[{"type":"object","properties":{"id":{"$ref":"#/components/schemas/CustodyProviderConfigurationId"},"provider":{"type":"string","enum":["local","dfns","fireblocks","luna","ripple","anvil","privy","injected-browser","dynamic"]},"capabilities":{"type":"object","properties":{"accountCreation":{"type":"string","enum":["create","link"]},"accountProof":{"type":"string","enum":["provider-attestation","interactive-address"]},"managedSigning":{"type":"boolean"},"externalSigning":{"type":"boolean"},"accountAbstraction":{"type":"boolean"},"ledgerNetworks":{"type":"array","items":{"type":"object","properties":{"ledger":{"type":"string","enum":["evm","canton"]},"networks":{"type":"array","items":{"type":"string","minLength":1}}},"required":["ledger","networks"],"additionalProperties":false}}},"required":["accountCreation","accountProof","managedSigning","externalSigning","accountAbstraction","ledgerNetworks"],"additionalProperties":false},"clientConfiguration":{"anyOf":[{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["privy"]},"tenant":{"type":"string","enum":["platform","organization"]},"appId":{"type":"string","minLength":1},"clientId":{"type":"string","minLength":1}},"required":["kind","tenant","appId"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["injected-browser"]}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["dynamic"]},"tenant":{"type":"string","enum":["platform","organization"]},"environmentId":{"type":"string","minLength":1}},"required":["kind","tenant","environmentId"],"additionalProperties":false}]},{"type":"null"}]}},"required":["id","provider","capabilities","clientConfiguration"],"additionalProperties":false},{"type":"null"}]}},"required":["data"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"019c0000-0000-7000-8000-000000000001","provider":"injected-browser","capabilities":{"accountCreation":"link","accountProof":"interactive-address","managedSigning":false,"externalSigning":true,"accountAbstraction":true,"ledgerNetworks":[{"ledger":"evm","networks":["sepolia"]}]},"clientConfiguration":{"kind":"injected-browser"}}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","CUSTODY_APPROVAL_REJECTED","CUSTODY_WALLET_NOT_SIGNER","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","status":404,"message":"Custody account not found","data":{"id":"DALP-12257","why":"No custody account visible to the caller in the active organization matches this identifier.","fix":"Refresh the active organization's account list and choose an account returned there.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","CUSTODY_APPROVAL_PENDING","CUSTODY_PROVIDER_CONFIG_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_PROOF_INVALID","CUSTODY_PROVIDER_CONFIG_INVALID"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_PROOF_INVALID","status":422,"message":"The custody proof does not bind this account","data":{"id":"DALP-12274","why":"The control proof, external control artifact, provider binding, or step-up confirmation sent with this request does not bind the account on this ledger, or the custody provider does not support the ledger.","fix":"Produce a new proof or confirmation for this account and ledger, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","custody.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"custody.write.OUTCOME_UNKNOWN","status":503,"message":"The smart-wallet write outcome is unknown","data":{"id":"DALP-12109","why":"The queue may have accepted this wallet write, but its final outcome could not be confirmed.","fix":"Look up the transaction request before taking further action. Do not submit a replacement write under a new idempotency key.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the one healthy, enabled provider configuration this organization designated for its investors, or `null` when it designated none. The Investor portal creates on this answer alone; the account-creation catalog stays the surface for members choosing among everything the organization enabled.","summary":"Read the provider configuration designated for investors","x-dalp-auth":"session-or-api-key"}},"/api/v2/admin/custody/provider-configurations":{"get":{"tags":["Custody"],"operationId":"custodyProviderConfigurationsV2.adminList","parameters":[],"responses":{"200":{"description":"The administrator list of custody provider configurations for the active organization.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/CustodyProviderConfigurationId"},"organizationId":{"$ref":"#/components/schemas/OrganizationId"},"provider":{"type":"string","enum":["local","dfns","fireblocks","luna","ripple","anvil","privy","injected-browser","dynamic"]},"provenance":{"$ref":"#/components/schemas/CustodyProviderProvenance"},"capabilities":{"type":"object","properties":{"accountCreation":{"type":"string","enum":["create","link"]},"accountProof":{"type":"string","enum":["provider-attestation","interactive-address"]},"managedSigning":{"type":"boolean"},"externalSigning":{"type":"boolean"},"accountAbstraction":{"type":"boolean"},"ledgerNetworks":{"type":"array","items":{"type":"object","properties":{"ledger":{"type":"string","enum":["evm","canton"]},"networks":{"type":"array","items":{"type":"string","minLength":1}}},"required":["ledger","networks"],"additionalProperties":false}}},"required":["accountCreation","accountProof","managedSigning","externalSigning","accountAbstraction","ledgerNetworks"],"additionalProperties":false},"enabledForCreation":{"type":"boolean"},"executionHealth":{"type":"string","enum":["healthy","unhealthy","quarantined"]},"lastProbeStatus":{"type":"string","enum":["healthy","unhealthy"]},"lastProbedAt":{"type":"string"},"quarantinedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"quarantineReason":{"anyOf":[{"type":"string"},{"type":"null"}]},"quarantinedByUserId":{"anyOf":[{"type":"string"},{"type":"null"}]},"rotatedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"credentialIdentityKind":{"anyOf":[{"type":"string","enum":["provider-reported","declared","fingerprint","platform"]},{"type":"null"}]},"investorProvider":{"type":"boolean"},"offeredToInvestors":{"type":"boolean"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"latestAuditEvent":{"anyOf":[{"type":"object","properties":{"action":{"type":"string","enum":["quarantined","recovered","credential-identity-recorded","credential-identity-backfilled","investor-provider-designated"]},"actorUserId":{"$ref":"#/components/schemas/UserId"},"reason":{"type":"string","minLength":1},"createdAt":{"type":"string"}},"required":["action","actorUserId","reason","createdAt"],"additionalProperties":false},{"type":"null"}]}},"required":["id","organizationId","provider","provenance","capabilities","enabledForCreation","executionHealth","lastProbeStatus","lastProbedAt","quarantinedAt","quarantineReason","quarantinedByUserId","rotatedAt","credentialIdentityKind","investorProvider","offeredToInvestors","createdAt","updatedAt","latestAuditEvent"],"additionalProperties":false}},"templates":{"type":"array","items":{"type":"object","properties":{"provider":{"type":"string","enum":["local","dfns","fireblocks","luna","ripple","anvil","privy","injected-browser","dynamic"]},"accountCreation":{"type":"string","enum":["create","link"]},"accountProof":{"type":"string","enum":["provider-attestation","interactive-address"]},"managedSigning":{"type":"boolean"},"externalSigning":{"type":"boolean"},"accountAbstraction":{"type":"boolean"},"ledgers":{"type":"array","items":{"type":"string","enum":["evm","canton"]}},"allowsPlatformCredentials":{"type":"boolean"}},"required":["provider","accountCreation","accountProof","managedSigning","externalSigning","accountAbstraction","ledgers","allowsPlatformCredentials"],"additionalProperties":false}}},"required":["data","templates"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"019c0000-0000-7000-8000-000000000001","organizationId":"org_northwind_coffee","provider":"injected-browser","provenance":{"_tag":"InjectedBrowserProviderProvenance","kind":"external","provider":"injected-browser","connector":"eip6963-eip1193"},"capabilities":{"accountCreation":"link","accountProof":"interactive-address","managedSigning":false,"externalSigning":true,"accountAbstraction":true,"ledgerNetworks":[{"ledger":"evm","networks":["sepolia"]}]},"enabledForCreation":true,"executionHealth":"healthy","lastProbeStatus":"healthy","lastProbedAt":"2026-04-12T09:30:00.000Z","quarantinedAt":null,"quarantineReason":null,"quarantinedByUserId":null,"rotatedAt":null,"credentialIdentityKind":"platform","investorProvider":true,"offeredToInvestors":false,"createdAt":"2026-03-04T09:12:41.000Z","updatedAt":"2026-04-12T09:30:00.000Z","latestAuditEvent":null}],"templates":[{"provider":"local","accountCreation":"create","accountProof":"provider-attestation","managedSigning":true,"externalSigning":false,"accountAbstraction":true,"ledgers":["evm","canton"],"allowsPlatformCredentials":true},{"provider":"dfns","accountCreation":"create","accountProof":"provider-attestation","managedSigning":true,"externalSigning":false,"accountAbstraction":true,"ledgers":["evm"],"allowsPlatformCredentials":false},{"provider":"fireblocks","accountCreation":"create","accountProof":"provider-attestation","managedSigning":true,"externalSigning":false,"accountAbstraction":true,"ledgers":["evm"],"allowsPlatformCredentials":false},{"provider":"luna","accountCreation":"create","accountProof":"provider-attestation","managedSigning":true,"externalSigning":false,"accountAbstraction":true,"ledgers":["evm"],"allowsPlatformCredentials":false},{"provider":"ripple","accountCreation":"create","accountProof":"provider-attestation","managedSigning":true,"externalSigning":false,"accountAbstraction":true,"ledgers":["evm"],"allowsPlatformCredentials":false},{"provider":"anvil","accountCreation":"create","accountProof":"provider-attestation","managedSigning":true,"externalSigning":false,"accountAbstraction":true,"ledgers":["evm"],"allowsPlatformCredentials":true},{"provider":"privy","accountCreation":"create","accountProof":"interactive-address","managedSigning":false,"externalSigning":true,"accountAbstraction":true,"ledgers":["evm"],"allowsPlatformCredentials":true},{"provider":"injected-browser","accountCreation":"link","accountProof":"interactive-address","managedSigning":false,"externalSigning":true,"accountAbstraction":true,"ledgers":["evm"],"allowsPlatformCredentials":true},{"provider":"dynamic","accountCreation":"create","accountProof":"interactive-address","managedSigning":false,"externalSigning":true,"accountAbstraction":true,"ledgers":["evm"],"allowsPlatformCredentials":true}]}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","CUSTODY_APPROVAL_REJECTED","CUSTODY_WALLET_NOT_SIGNER","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","status":404,"message":"Custody account not found","data":{"id":"DALP-12257","why":"No custody account visible to the caller in the active organization matches this identifier.","fix":"Refresh the active organization's account list and choose an account returned there.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","CUSTODY_APPROVAL_PENDING","CUSTODY_PROVIDER_CONFIG_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_PROOF_INVALID","CUSTODY_PROVIDER_CONFIG_INVALID"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_PROOF_INVALID","status":422,"message":"The custody proof does not bind this account","data":{"id":"DALP-12274","why":"The control proof, external control artifact, provider binding, or step-up confirmation sent with this request does not bind the account on this ledger, or the custody provider does not support the ledger.","fix":"Produce a new proof or confirmation for this account and ledger, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","custody.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"custody.write.OUTCOME_UNKNOWN","status":503,"message":"The smart-wallet write outcome is unknown","data":{"id":"DALP-12109","why":"The queue may have accepted this wallet write, but its final outcome could not be confirmed.","fix":"Look up the transaction request before taking further action. Do not submit a replacement write under a new idempotency key.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the administrator view of stable provider configurations for the active organization.","summary":"List custody provider configurations","x-dalp-auth":"session-or-api-key"},"post":{"tags":["Custody"],"operationId":"custodyProviderConfigurationsV2.adminCreate","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The current administrator view of one custody provider configuration.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/CustodyProviderConfigurationId"},"organizationId":{"$ref":"#/components/schemas/OrganizationId"},"provider":{"type":"string","enum":["local","dfns","fireblocks","luna","ripple","anvil","privy","injected-browser","dynamic"]},"provenance":{"$ref":"#/components/schemas/CustodyProviderProvenance"},"capabilities":{"type":"object","properties":{"accountCreation":{"type":"string","enum":["create","link"]},"accountProof":{"type":"string","enum":["provider-attestation","interactive-address"]},"managedSigning":{"type":"boolean"},"externalSigning":{"type":"boolean"},"accountAbstraction":{"type":"boolean"},"ledgerNetworks":{"type":"array","items":{"type":"object","properties":{"ledger":{"type":"string","enum":["evm","canton"]},"networks":{"type":"array","items":{"type":"string","minLength":1}}},"required":["ledger","networks"],"additionalProperties":false}}},"required":["accountCreation","accountProof","managedSigning","externalSigning","accountAbstraction","ledgerNetworks"],"additionalProperties":false},"enabledForCreation":{"type":"boolean"},"executionHealth":{"type":"string","enum":["healthy","unhealthy","quarantined"]},"lastProbeStatus":{"type":"string","enum":["healthy","unhealthy"]},"lastProbedAt":{"type":"string"},"quarantinedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"quarantineReason":{"anyOf":[{"type":"string"},{"type":"null"}]},"quarantinedByUserId":{"anyOf":[{"type":"string"},{"type":"null"}]},"rotatedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"credentialIdentityKind":{"anyOf":[{"type":"string","enum":["provider-reported","declared","fingerprint","platform"]},{"type":"null"}]},"investorProvider":{"type":"boolean"},"offeredToInvestors":{"type":"boolean"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","organizationId","provider","provenance","capabilities","enabledForCreation","executionHealth","lastProbeStatus","lastProbedAt","quarantinedAt","quarantineReason","quarantinedByUserId","rotatedAt","credentialIdentityKind","investorProvider","offeredToInvestors","createdAt","updatedAt"],"additionalProperties":false}},"required":["data"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"019c0000-0000-7000-8000-000000000001","organizationId":"org_northwind_coffee","provider":"injected-browser","provenance":{"_tag":"InjectedBrowserProviderProvenance","kind":"external","provider":"injected-browser","connector":"eip6963-eip1193"},"capabilities":{"accountCreation":"link","accountProof":"interactive-address","managedSigning":false,"externalSigning":true,"accountAbstraction":true,"ledgerNetworks":[{"ledger":"evm","networks":["sepolia"]}]},"enabledForCreation":true,"executionHealth":"healthy","lastProbeStatus":"healthy","lastProbedAt":"2026-04-12T09:30:00.000Z","quarantinedAt":null,"quarantineReason":null,"quarantinedByUserId":null,"rotatedAt":null,"credentialIdentityKind":"platform","investorProvider":true,"offeredToInvestors":false,"createdAt":"2026-03-04T09:12:41.000Z","updatedAt":"2026-04-12T09:30:00.000Z"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","CUSTODY_APPROVAL_REJECTED","CUSTODY_WALLET_NOT_SIGNER","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","status":404,"message":"Custody account not found","data":{"id":"DALP-12257","why":"No custody account visible to the caller in the active organization matches this identifier.","fix":"Refresh the active organization's account list and choose an account returned there.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","CUSTODY_APPROVAL_PENDING","CUSTODY_PROVIDER_CONFIG_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_PROOF_INVALID","CUSTODY_PROVIDER_CONFIG_INVALID"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_PROOF_INVALID","status":422,"message":"The custody proof does not bind this account","data":{"id":"DALP-12274","why":"The control proof, external control artifact, provider binding, or step-up confirmation sent with this request does not bind the account on this ledger, or the custody provider does not support the ledger.","fix":"Produce a new proof or confirmation for this account and ledger, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","custody.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"custody.write.OUTCOME_UNKNOWN","status":503,"message":"The smart-wallet write outcome is unknown","data":{"id":"DALP-12109","why":"The queue may have accepted this wallet write, but its final outcome could not be confirmed.","fix":"Look up the transaction request before taking further action. Do not submit a replacement write under a new idempotency key.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Validates capabilities, probes the exact provider provenance, then stores a new organization-scoped configuration.","summary":"Create and probe a custody provider configuration","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"provider":{"type":"string","enum":["local","dfns","fireblocks","luna","ripple","anvil"]},"credentialSource":{"type":"string","enum":["platform","organization"]},"metadata":{"type":"object","properties":{"workspaceId":{"type":"string"},"vaultId":{"type":"string"},"baseUrl":{"type":"string"},"authUrl":{"type":"string"},"targetDomainId":{"type":"string"},"ledgerId":{"type":"string"},"keyStrategy":{"type":"string","enum":["VaultHard","VaultSoft","Random"]},"defaultAssetId":{"type":"string"},"defaultNetwork":{"type":"string"},"accountIdentifiers":{"type":"object","additionalProperties":{"type":"string"}}},"additionalProperties":false},"credentials":{},"ledgerNetworks":{"type":"array","items":{"type":"object","properties":{"ledger":{"type":"string","enum":["evm","canton"]},"networks":{"type":"array","items":{"type":"string","minLength":1}}},"required":["ledger","networks"],"additionalProperties":false}},"enabledForCreation":{"type":"boolean"}},"required":["provider","credentialSource","metadata","ledgerNetworks","enabledForCreation"],"additionalProperties":false},{"type":"object","properties":{"provider":{"type":"string","enum":["privy"]},"tenant":{"type":"string","enum":["platform","organization"]},"appId":{"type":"string","minLength":1},"clientId":{"type":"string","minLength":1},"ledgerNetworks":{"type":"array","items":{"type":"object","properties":{"ledger":{"type":"string","enum":["evm","canton"]},"networks":{"type":"array","items":{"type":"string","minLength":1}}},"required":["ledger","networks"],"additionalProperties":false}},"enabledForCreation":{"type":"boolean"}},"required":["provider","tenant","appId","ledgerNetworks","enabledForCreation"],"additionalProperties":false},{"type":"object","properties":{"provider":{"type":"string","enum":["injected-browser"]},"ledgerNetworks":{"type":"array","items":{"type":"object","properties":{"ledger":{"type":"string","enum":["evm","canton"]},"networks":{"type":"array","items":{"type":"string","minLength":1}}},"required":["ledger","networks"],"additionalProperties":false}},"enabledForCreation":{"type":"boolean"}},"required":["provider","ledgerNetworks","enabledForCreation"],"additionalProperties":false},{"type":"object","properties":{"provider":{"type":"string","enum":["dynamic"]},"tenant":{"type":"string","enum":["platform","organization"]},"environmentId":{"type":"string","minLength":1},"ledgerNetworks":{"type":"array","items":{"type":"object","properties":{"ledger":{"type":"string","enum":["evm","canton"]},"networks":{"type":"array","items":{"type":"string","minLength":1}}},"required":["ledger","networks"],"additionalProperties":false}},"enabledForCreation":{"type":"boolean"}},"required":["provider","tenant","environmentId","ledgerNetworks","enabledForCreation"],"additionalProperties":false}]}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/admin/custody/provider-configurations/{providerConfigurationId}/probe":{"post":{"tags":["Custody"],"operationId":"custodyProviderConfigurationsV2.adminProbe","parameters":[{"name":"providerConfigurationId","in":"path","schema":{"type":"string","minLength":1,"description":"Custody provider configuration identifier"},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The current administrator view of one custody provider configuration.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/CustodyProviderConfigurationId"},"organizationId":{"$ref":"#/components/schemas/OrganizationId"},"provider":{"type":"string","enum":["local","dfns","fireblocks","luna","ripple","anvil","privy","injected-browser","dynamic"]},"provenance":{"$ref":"#/components/schemas/CustodyProviderProvenance"},"capabilities":{"type":"object","properties":{"accountCreation":{"type":"string","enum":["create","link"]},"accountProof":{"type":"string","enum":["provider-attestation","interactive-address"]},"managedSigning":{"type":"boolean"},"externalSigning":{"type":"boolean"},"accountAbstraction":{"type":"boolean"},"ledgerNetworks":{"type":"array","items":{"type":"object","properties":{"ledger":{"type":"string","enum":["evm","canton"]},"networks":{"type":"array","items":{"type":"string","minLength":1}}},"required":["ledger","networks"],"additionalProperties":false}}},"required":["accountCreation","accountProof","managedSigning","externalSigning","accountAbstraction","ledgerNetworks"],"additionalProperties":false},"enabledForCreation":{"type":"boolean"},"executionHealth":{"type":"string","enum":["healthy","unhealthy","quarantined"]},"lastProbeStatus":{"type":"string","enum":["healthy","unhealthy"]},"lastProbedAt":{"type":"string"},"quarantinedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"quarantineReason":{"anyOf":[{"type":"string"},{"type":"null"}]},"quarantinedByUserId":{"anyOf":[{"type":"string"},{"type":"null"}]},"rotatedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"credentialIdentityKind":{"anyOf":[{"type":"string","enum":["provider-reported","declared","fingerprint","platform"]},{"type":"null"}]},"investorProvider":{"type":"boolean"},"offeredToInvestors":{"type":"boolean"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","organizationId","provider","provenance","capabilities","enabledForCreation","executionHealth","lastProbeStatus","lastProbedAt","quarantinedAt","quarantineReason","quarantinedByUserId","rotatedAt","credentialIdentityKind","investorProvider","offeredToInvestors","createdAt","updatedAt"],"additionalProperties":false}},"required":["data"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"019c0000-0000-7000-8000-000000000001","organizationId":"org_northwind_coffee","provider":"injected-browser","provenance":{"_tag":"InjectedBrowserProviderProvenance","kind":"external","provider":"injected-browser","connector":"eip6963-eip1193"},"capabilities":{"accountCreation":"link","accountProof":"interactive-address","managedSigning":false,"externalSigning":true,"accountAbstraction":true,"ledgerNetworks":[{"ledger":"evm","networks":["sepolia"]}]},"enabledForCreation":true,"executionHealth":"healthy","lastProbeStatus":"healthy","lastProbedAt":"2026-04-12T09:30:00.000Z","quarantinedAt":null,"quarantineReason":null,"quarantinedByUserId":null,"rotatedAt":null,"credentialIdentityKind":"platform","investorProvider":true,"offeredToInvestors":false,"createdAt":"2026-03-04T09:12:41.000Z","updatedAt":"2026-04-12T09:30:00.000Z"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","CUSTODY_APPROVAL_REJECTED","CUSTODY_WALLET_NOT_SIGNER","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","status":404,"message":"Custody account not found","data":{"id":"DALP-12257","why":"No custody account visible to the caller in the active organization matches this identifier.","fix":"Refresh the active organization's account list and choose an account returned there.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","CUSTODY_APPROVAL_PENDING","CUSTODY_PROVIDER_CONFIG_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_PROOF_INVALID","CUSTODY_PROVIDER_CONFIG_INVALID"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_PROOF_INVALID","status":422,"message":"The custody proof does not bind this account","data":{"id":"DALP-12274","why":"The control proof, external control artifact, provider binding, or step-up confirmation sent with this request does not bind the account on this ledger, or the custody provider does not support the ledger.","fix":"Produce a new proof or confirmation for this account and ledger, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","custody.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"custody.write.OUTCOME_UNKNOWN","status":503,"message":"The smart-wallet write outcome is unknown","data":{"id":"DALP-12109","why":"The queue may have accepted this wallet write, but its final outcome could not be confirmed.","fix":"Look up the transaction request before taking further action. Do not submit a replacement write under a new idempotency key.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Runs a fresh health probe for the exact stored configuration and records its execution health without fallback.","summary":"Probe a custody provider configuration","x-dalp-auth":"session-or-api-key"}},"/api/v2/admin/custody/provider-configurations/{providerConfigurationId}/enable-for-creation":{"post":{"tags":["Custody"],"operationId":"custodyProviderConfigurationsV2.adminEnableForCreation","parameters":[{"name":"providerConfigurationId","in":"path","schema":{"type":"string","minLength":1,"description":"Custody provider configuration identifier"},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The current administrator view of one custody provider configuration.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/CustodyProviderConfigurationId"},"organizationId":{"$ref":"#/components/schemas/OrganizationId"},"provider":{"type":"string","enum":["local","dfns","fireblocks","luna","ripple","anvil","privy","injected-browser","dynamic"]},"provenance":{"$ref":"#/components/schemas/CustodyProviderProvenance"},"capabilities":{"type":"object","properties":{"accountCreation":{"type":"string","enum":["create","link"]},"accountProof":{"type":"string","enum":["provider-attestation","interactive-address"]},"managedSigning":{"type":"boolean"},"externalSigning":{"type":"boolean"},"accountAbstraction":{"type":"boolean"},"ledgerNetworks":{"type":"array","items":{"type":"object","properties":{"ledger":{"type":"string","enum":["evm","canton"]},"networks":{"type":"array","items":{"type":"string","minLength":1}}},"required":["ledger","networks"],"additionalProperties":false}}},"required":["accountCreation","accountProof","managedSigning","externalSigning","accountAbstraction","ledgerNetworks"],"additionalProperties":false},"enabledForCreation":{"type":"boolean"},"executionHealth":{"type":"string","enum":["healthy","unhealthy","quarantined"]},"lastProbeStatus":{"type":"string","enum":["healthy","unhealthy"]},"lastProbedAt":{"type":"string"},"quarantinedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"quarantineReason":{"anyOf":[{"type":"string"},{"type":"null"}]},"quarantinedByUserId":{"anyOf":[{"type":"string"},{"type":"null"}]},"rotatedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"credentialIdentityKind":{"anyOf":[{"type":"string","enum":["provider-reported","declared","fingerprint","platform"]},{"type":"null"}]},"investorProvider":{"type":"boolean"},"offeredToInvestors":{"type":"boolean"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","organizationId","provider","provenance","capabilities","enabledForCreation","executionHealth","lastProbeStatus","lastProbedAt","quarantinedAt","quarantineReason","quarantinedByUserId","rotatedAt","credentialIdentityKind","investorProvider","offeredToInvestors","createdAt","updatedAt"],"additionalProperties":false}},"required":["data"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"019c0000-0000-7000-8000-000000000001","organizationId":"org_northwind_coffee","provider":"injected-browser","provenance":{"_tag":"InjectedBrowserProviderProvenance","kind":"external","provider":"injected-browser","connector":"eip6963-eip1193"},"capabilities":{"accountCreation":"link","accountProof":"interactive-address","managedSigning":false,"externalSigning":true,"accountAbstraction":true,"ledgerNetworks":[{"ledger":"evm","networks":["sepolia"]}]},"enabledForCreation":true,"executionHealth":"healthy","lastProbeStatus":"healthy","lastProbedAt":"2026-04-12T09:30:00.000Z","quarantinedAt":null,"quarantineReason":null,"quarantinedByUserId":null,"rotatedAt":null,"credentialIdentityKind":"platform","investorProvider":true,"offeredToInvestors":false,"createdAt":"2026-03-04T09:12:41.000Z","updatedAt":"2026-04-12T09:30:00.000Z"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","CUSTODY_APPROVAL_REJECTED","CUSTODY_WALLET_NOT_SIGNER","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","status":404,"message":"Custody account not found","data":{"id":"DALP-12257","why":"No custody account visible to the caller in the active organization matches this identifier.","fix":"Refresh the active organization's account list and choose an account returned there.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","CUSTODY_APPROVAL_PENDING","CUSTODY_PROVIDER_CONFIG_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_PROOF_INVALID","CUSTODY_PROVIDER_CONFIG_INVALID"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_PROOF_INVALID","status":422,"message":"The custody proof does not bind this account","data":{"id":"DALP-12274","why":"The control proof, external control artifact, provider binding, or step-up confirmation sent with this request does not bind the account on this ledger, or the custody provider does not support the ledger.","fix":"Produce a new proof or confirmation for this account and ledger, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","custody.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"custody.write.OUTCOME_UNKNOWN","status":503,"message":"The smart-wallet write outcome is unknown","data":{"id":"DALP-12109","why":"The queue may have accepted this wallet write, but its final outcome could not be confirmed.","fix":"Look up the transaction request before taking further action. Do not submit a replacement write under a new idempotency key.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Allows new account contexts to select this configuration without changing existing contexts.","summary":"Enable a custody provider configuration for account creation","x-dalp-auth":"session-or-api-key"}},"/api/v2/admin/custody/provider-configurations/{providerConfigurationId}/disable-for-creation":{"post":{"tags":["Custody"],"operationId":"custodyProviderConfigurationsV2.adminDisableForCreation","parameters":[{"name":"providerConfigurationId","in":"path","schema":{"type":"string","minLength":1,"description":"Custody provider configuration identifier"},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The current administrator view of one custody provider configuration.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/CustodyProviderConfigurationId"},"organizationId":{"$ref":"#/components/schemas/OrganizationId"},"provider":{"type":"string","enum":["local","dfns","fireblocks","luna","ripple","anvil","privy","injected-browser","dynamic"]},"provenance":{"$ref":"#/components/schemas/CustodyProviderProvenance"},"capabilities":{"type":"object","properties":{"accountCreation":{"type":"string","enum":["create","link"]},"accountProof":{"type":"string","enum":["provider-attestation","interactive-address"]},"managedSigning":{"type":"boolean"},"externalSigning":{"type":"boolean"},"accountAbstraction":{"type":"boolean"},"ledgerNetworks":{"type":"array","items":{"type":"object","properties":{"ledger":{"type":"string","enum":["evm","canton"]},"networks":{"type":"array","items":{"type":"string","minLength":1}}},"required":["ledger","networks"],"additionalProperties":false}}},"required":["accountCreation","accountProof","managedSigning","externalSigning","accountAbstraction","ledgerNetworks"],"additionalProperties":false},"enabledForCreation":{"type":"boolean"},"executionHealth":{"type":"string","enum":["healthy","unhealthy","quarantined"]},"lastProbeStatus":{"type":"string","enum":["healthy","unhealthy"]},"lastProbedAt":{"type":"string"},"quarantinedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"quarantineReason":{"anyOf":[{"type":"string"},{"type":"null"}]},"quarantinedByUserId":{"anyOf":[{"type":"string"},{"type":"null"}]},"rotatedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"credentialIdentityKind":{"anyOf":[{"type":"string","enum":["provider-reported","declared","fingerprint","platform"]},{"type":"null"}]},"investorProvider":{"type":"boolean"},"offeredToInvestors":{"type":"boolean"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","organizationId","provider","provenance","capabilities","enabledForCreation","executionHealth","lastProbeStatus","lastProbedAt","quarantinedAt","quarantineReason","quarantinedByUserId","rotatedAt","credentialIdentityKind","investorProvider","offeredToInvestors","createdAt","updatedAt"],"additionalProperties":false}},"required":["data"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"019c0000-0000-7000-8000-000000000001","organizationId":"org_northwind_coffee","provider":"injected-browser","provenance":{"_tag":"InjectedBrowserProviderProvenance","kind":"external","provider":"injected-browser","connector":"eip6963-eip1193"},"capabilities":{"accountCreation":"link","accountProof":"interactive-address","managedSigning":false,"externalSigning":true,"accountAbstraction":true,"ledgerNetworks":[{"ledger":"evm","networks":["sepolia"]}]},"enabledForCreation":true,"executionHealth":"healthy","lastProbeStatus":"healthy","lastProbedAt":"2026-04-12T09:30:00.000Z","quarantinedAt":null,"quarantineReason":null,"quarantinedByUserId":null,"rotatedAt":null,"credentialIdentityKind":"platform","investorProvider":true,"offeredToInvestors":false,"createdAt":"2026-03-04T09:12:41.000Z","updatedAt":"2026-04-12T09:30:00.000Z"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","CUSTODY_APPROVAL_REJECTED","CUSTODY_WALLET_NOT_SIGNER","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","status":404,"message":"Custody account not found","data":{"id":"DALP-12257","why":"No custody account visible to the caller in the active organization matches this identifier.","fix":"Refresh the active organization's account list and choose an account returned there.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","CUSTODY_APPROVAL_PENDING","CUSTODY_PROVIDER_CONFIG_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_PROOF_INVALID","CUSTODY_PROVIDER_CONFIG_INVALID"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_PROOF_INVALID","status":422,"message":"The custody proof does not bind this account","data":{"id":"DALP-12274","why":"The control proof, external control artifact, provider binding, or step-up confirmation sent with this request does not bind the account on this ledger, or the custody provider does not support the ledger.","fix":"Produce a new proof or confirmation for this account and ledger, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","custody.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"custody.write.OUTCOME_UNKNOWN","status":503,"message":"The smart-wallet write outcome is unknown","data":{"id":"DALP-12109","why":"The queue may have accepted this wallet write, but its final outcome could not be confirmed.","fix":"Look up the transaction request before taking further action. Do not submit a replacement write under a new idempotency key.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Removes this configuration from account creation without changing existing account bindings.","summary":"Disable a custody provider configuration for account creation","x-dalp-auth":"session-or-api-key"}},"/api/v2/admin/custody/provider-configurations/{providerConfigurationId}/quarantine":{"post":{"tags":["Custody"],"operationId":"custodyProviderConfigurationsV2.adminQuarantine","parameters":[{"name":"providerConfigurationId","in":"path","schema":{"type":"string","minLength":1,"description":"Custody provider configuration identifier"},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The current administrator view of one custody provider configuration.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/CustodyProviderConfigurationId"},"organizationId":{"$ref":"#/components/schemas/OrganizationId"},"provider":{"type":"string","enum":["local","dfns","fireblocks","luna","ripple","anvil","privy","injected-browser","dynamic"]},"provenance":{"$ref":"#/components/schemas/CustodyProviderProvenance"},"capabilities":{"type":"object","properties":{"accountCreation":{"type":"string","enum":["create","link"]},"accountProof":{"type":"string","enum":["provider-attestation","interactive-address"]},"managedSigning":{"type":"boolean"},"externalSigning":{"type":"boolean"},"accountAbstraction":{"type":"boolean"},"ledgerNetworks":{"type":"array","items":{"type":"object","properties":{"ledger":{"type":"string","enum":["evm","canton"]},"networks":{"type":"array","items":{"type":"string","minLength":1}}},"required":["ledger","networks"],"additionalProperties":false}}},"required":["accountCreation","accountProof","managedSigning","externalSigning","accountAbstraction","ledgerNetworks"],"additionalProperties":false},"enabledForCreation":{"type":"boolean"},"executionHealth":{"type":"string","enum":["healthy","unhealthy","quarantined"]},"lastProbeStatus":{"type":"string","enum":["healthy","unhealthy"]},"lastProbedAt":{"type":"string"},"quarantinedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"quarantineReason":{"anyOf":[{"type":"string"},{"type":"null"}]},"quarantinedByUserId":{"anyOf":[{"type":"string"},{"type":"null"}]},"rotatedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"credentialIdentityKind":{"anyOf":[{"type":"string","enum":["provider-reported","declared","fingerprint","platform"]},{"type":"null"}]},"investorProvider":{"type":"boolean"},"offeredToInvestors":{"type":"boolean"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","organizationId","provider","provenance","capabilities","enabledForCreation","executionHealth","lastProbeStatus","lastProbedAt","quarantinedAt","quarantineReason","quarantinedByUserId","rotatedAt","credentialIdentityKind","investorProvider","offeredToInvestors","createdAt","updatedAt"],"additionalProperties":false}},"required":["data"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"019c0000-0000-7000-8000-000000000001","organizationId":"org_northwind_coffee","provider":"injected-browser","provenance":{"_tag":"InjectedBrowserProviderProvenance","kind":"external","provider":"injected-browser","connector":"eip6963-eip1193"},"capabilities":{"accountCreation":"link","accountProof":"interactive-address","managedSigning":false,"externalSigning":true,"accountAbstraction":true,"ledgerNetworks":[{"ledger":"evm","networks":["sepolia"]}]},"enabledForCreation":true,"executionHealth":"healthy","lastProbeStatus":"healthy","lastProbedAt":"2026-04-12T09:30:00.000Z","quarantinedAt":null,"quarantineReason":null,"quarantinedByUserId":null,"rotatedAt":null,"credentialIdentityKind":"platform","investorProvider":true,"offeredToInvestors":false,"createdAt":"2026-03-04T09:12:41.000Z","updatedAt":"2026-04-12T09:30:00.000Z"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","CUSTODY_APPROVAL_REJECTED","CUSTODY_WALLET_NOT_SIGNER","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","status":404,"message":"Custody account not found","data":{"id":"DALP-12257","why":"No custody account visible to the caller in the active organization matches this identifier.","fix":"Refresh the active organization's account list and choose an account returned there.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","CUSTODY_APPROVAL_PENDING","CUSTODY_PROVIDER_CONFIG_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_PROOF_INVALID","CUSTODY_PROVIDER_CONFIG_INVALID"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_PROOF_INVALID","status":422,"message":"The custody proof does not bind this account","data":{"id":"DALP-12274","why":"The control proof, external control artifact, provider binding, or step-up confirmation sent with this request does not bind the account on this ledger, or the custody provider does not support the ledger.","fix":"Produce a new proof or confirmation for this account and ledger, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","custody.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"custody.write.OUTCOME_UNKNOWN","status":503,"message":"The smart-wallet write outcome is unknown","data":{"id":"DALP-12109","why":"The queue may have accepted this wallet write, but its final outcome could not be confirmed.","fix":"Look up the transaction request before taking further action. Do not submit a replacement write under a new idempotency key.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Blocks new execution through this configuration and writes the authenticated administrator and incident reason to the audit trail.","summary":"Quarantine custody provider execution","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"type":"string","minLength":1}},"required":["reason"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/admin/custody/provider-configurations/{providerConfigurationId}/recover":{"post":{"tags":["Custody"],"operationId":"custodyProviderConfigurationsV2.adminRecover","parameters":[{"name":"providerConfigurationId","in":"path","schema":{"type":"string","minLength":1,"description":"Custody provider configuration identifier"},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The current administrator view of one custody provider configuration.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/CustodyProviderConfigurationId"},"organizationId":{"$ref":"#/components/schemas/OrganizationId"},"provider":{"type":"string","enum":["local","dfns","fireblocks","luna","ripple","anvil","privy","injected-browser","dynamic"]},"provenance":{"$ref":"#/components/schemas/CustodyProviderProvenance"},"capabilities":{"type":"object","properties":{"accountCreation":{"type":"string","enum":["create","link"]},"accountProof":{"type":"string","enum":["provider-attestation","interactive-address"]},"managedSigning":{"type":"boolean"},"externalSigning":{"type":"boolean"},"accountAbstraction":{"type":"boolean"},"ledgerNetworks":{"type":"array","items":{"type":"object","properties":{"ledger":{"type":"string","enum":["evm","canton"]},"networks":{"type":"array","items":{"type":"string","minLength":1}}},"required":["ledger","networks"],"additionalProperties":false}}},"required":["accountCreation","accountProof","managedSigning","externalSigning","accountAbstraction","ledgerNetworks"],"additionalProperties":false},"enabledForCreation":{"type":"boolean"},"executionHealth":{"type":"string","enum":["healthy","unhealthy","quarantined"]},"lastProbeStatus":{"type":"string","enum":["healthy","unhealthy"]},"lastProbedAt":{"type":"string"},"quarantinedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"quarantineReason":{"anyOf":[{"type":"string"},{"type":"null"}]},"quarantinedByUserId":{"anyOf":[{"type":"string"},{"type":"null"}]},"rotatedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"credentialIdentityKind":{"anyOf":[{"type":"string","enum":["provider-reported","declared","fingerprint","platform"]},{"type":"null"}]},"investorProvider":{"type":"boolean"},"offeredToInvestors":{"type":"boolean"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","organizationId","provider","provenance","capabilities","enabledForCreation","executionHealth","lastProbeStatus","lastProbedAt","quarantinedAt","quarantineReason","quarantinedByUserId","rotatedAt","credentialIdentityKind","investorProvider","offeredToInvestors","createdAt","updatedAt"],"additionalProperties":false}},"required":["data"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"019c0000-0000-7000-8000-000000000001","organizationId":"org_northwind_coffee","provider":"injected-browser","provenance":{"_tag":"InjectedBrowserProviderProvenance","kind":"external","provider":"injected-browser","connector":"eip6963-eip1193"},"capabilities":{"accountCreation":"link","accountProof":"interactive-address","managedSigning":false,"externalSigning":true,"accountAbstraction":true,"ledgerNetworks":[{"ledger":"evm","networks":["sepolia"]}]},"enabledForCreation":true,"executionHealth":"healthy","lastProbeStatus":"healthy","lastProbedAt":"2026-04-12T09:30:00.000Z","quarantinedAt":null,"quarantineReason":null,"quarantinedByUserId":null,"rotatedAt":null,"credentialIdentityKind":"platform","investorProvider":true,"offeredToInvestors":false,"createdAt":"2026-03-04T09:12:41.000Z","updatedAt":"2026-04-12T09:30:00.000Z"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","CUSTODY_APPROVAL_REJECTED","CUSTODY_WALLET_NOT_SIGNER","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","status":404,"message":"Custody account not found","data":{"id":"DALP-12257","why":"No custody account visible to the caller in the active organization matches this identifier.","fix":"Refresh the active organization's account list and choose an account returned there.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","CUSTODY_APPROVAL_PENDING","CUSTODY_PROVIDER_CONFIG_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_PROOF_INVALID","CUSTODY_PROVIDER_CONFIG_INVALID"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_PROOF_INVALID","status":422,"message":"The custody proof does not bind this account","data":{"id":"DALP-12274","why":"The control proof, external control artifact, provider binding, or step-up confirmation sent with this request does not bind the account on this ledger, or the custody provider does not support the ledger.","fix":"Produce a new proof or confirmation for this account and ledger, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","custody.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"custody.write.OUTCOME_UNKNOWN","status":503,"message":"The smart-wallet write outcome is unknown","data":{"id":"DALP-12109","why":"The queue may have accepted this wallet write, but its final outcome could not be confirmed.","fix":"Look up the transaction request before taking further action. Do not submit a replacement write under a new idempotency key.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Restores execution only after a successful probe newer than quarantine and records the administrator recovery reason.","summary":"Recover custody provider execution after a fresh probe","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"type":"string","minLength":1}},"required":["reason"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/admin/custody/provider-configurations/{providerConfigurationId}/designate-investor-provider":{"post":{"tags":["Custody"],"operationId":"custodyProviderConfigurationsV2.adminDesignateInvestorProvider","parameters":[{"name":"providerConfigurationId","in":"path","schema":{"type":"string","minLength":1,"description":"Custody provider configuration identifier"},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The current administrator view of one custody provider configuration.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/CustodyProviderConfigurationId"},"organizationId":{"$ref":"#/components/schemas/OrganizationId"},"provider":{"type":"string","enum":["local","dfns","fireblocks","luna","ripple","anvil","privy","injected-browser","dynamic"]},"provenance":{"$ref":"#/components/schemas/CustodyProviderProvenance"},"capabilities":{"type":"object","properties":{"accountCreation":{"type":"string","enum":["create","link"]},"accountProof":{"type":"string","enum":["provider-attestation","interactive-address"]},"managedSigning":{"type":"boolean"},"externalSigning":{"type":"boolean"},"accountAbstraction":{"type":"boolean"},"ledgerNetworks":{"type":"array","items":{"type":"object","properties":{"ledger":{"type":"string","enum":["evm","canton"]},"networks":{"type":"array","items":{"type":"string","minLength":1}}},"required":["ledger","networks"],"additionalProperties":false}}},"required":["accountCreation","accountProof","managedSigning","externalSigning","accountAbstraction","ledgerNetworks"],"additionalProperties":false},"enabledForCreation":{"type":"boolean"},"executionHealth":{"type":"string","enum":["healthy","unhealthy","quarantined"]},"lastProbeStatus":{"type":"string","enum":["healthy","unhealthy"]},"lastProbedAt":{"type":"string"},"quarantinedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"quarantineReason":{"anyOf":[{"type":"string"},{"type":"null"}]},"quarantinedByUserId":{"anyOf":[{"type":"string"},{"type":"null"}]},"rotatedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"credentialIdentityKind":{"anyOf":[{"type":"string","enum":["provider-reported","declared","fingerprint","platform"]},{"type":"null"}]},"investorProvider":{"type":"boolean"},"offeredToInvestors":{"type":"boolean"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","organizationId","provider","provenance","capabilities","enabledForCreation","executionHealth","lastProbeStatus","lastProbedAt","quarantinedAt","quarantineReason","quarantinedByUserId","rotatedAt","credentialIdentityKind","investorProvider","offeredToInvestors","createdAt","updatedAt"],"additionalProperties":false}},"required":["data"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"019c0000-0000-7000-8000-000000000001","organizationId":"org_northwind_coffee","provider":"injected-browser","provenance":{"_tag":"InjectedBrowserProviderProvenance","kind":"external","provider":"injected-browser","connector":"eip6963-eip1193"},"capabilities":{"accountCreation":"link","accountProof":"interactive-address","managedSigning":false,"externalSigning":true,"accountAbstraction":true,"ledgerNetworks":[{"ledger":"evm","networks":["sepolia"]}]},"enabledForCreation":true,"executionHealth":"healthy","lastProbeStatus":"healthy","lastProbedAt":"2026-04-12T09:30:00.000Z","quarantinedAt":null,"quarantineReason":null,"quarantinedByUserId":null,"rotatedAt":null,"credentialIdentityKind":"platform","investorProvider":true,"offeredToInvestors":false,"createdAt":"2026-03-04T09:12:41.000Z","updatedAt":"2026-04-12T09:30:00.000Z"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","CUSTODY_APPROVAL_REJECTED","CUSTODY_WALLET_NOT_SIGNER","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","status":404,"message":"Custody account not found","data":{"id":"DALP-12257","why":"No custody account visible to the caller in the active organization matches this identifier.","fix":"Refresh the active organization's account list and choose an account returned there.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","CUSTODY_APPROVAL_PENDING","CUSTODY_PROVIDER_CONFIG_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_PROOF_INVALID","CUSTODY_PROVIDER_CONFIG_INVALID"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_PROOF_INVALID","status":422,"message":"The custody proof does not bind this account","data":{"id":"DALP-12274","why":"The control proof, external control artifact, provider binding, or step-up confirmation sent with this request does not bind the account on this ledger, or the custody provider does not support the ledger.","fix":"Produce a new proof or confirmation for this account and ledger, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","custody.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"custody.write.OUTCOME_UNKNOWN","status":503,"message":"The smart-wallet write outcome is unknown","data":{"id":"DALP-12109","why":"The queue may have accepted this wallet write, but its final outcome could not be confirmed.","fix":"Look up the transaction request before taking further action. Do not submit a replacement write under a new idempotency key.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Names the one provider configuration the Investor portal offers, clearing whichever configuration held that designation. An organization designates at most one.","summary":"Designate the organization's investor provider","x-dalp-auth":"session-or-api-key"}},"/api/v2/admin/custody/provider-configurations/{providerConfigurationId}/offered-to-investors":{"post":{"tags":["Custody"],"operationId":"custodyProviderConfigurationsV2.adminSetOfferedToInvestors","parameters":[{"name":"providerConfigurationId","in":"path","schema":{"type":"string","minLength":1,"description":"Custody provider configuration identifier"},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The current administrator view of one custody provider configuration.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/CustodyProviderConfigurationId"},"organizationId":{"$ref":"#/components/schemas/OrganizationId"},"provider":{"type":"string","enum":["local","dfns","fireblocks","luna","ripple","anvil","privy","injected-browser","dynamic"]},"provenance":{"$ref":"#/components/schemas/CustodyProviderProvenance"},"capabilities":{"type":"object","properties":{"accountCreation":{"type":"string","enum":["create","link"]},"accountProof":{"type":"string","enum":["provider-attestation","interactive-address"]},"managedSigning":{"type":"boolean"},"externalSigning":{"type":"boolean"},"accountAbstraction":{"type":"boolean"},"ledgerNetworks":{"type":"array","items":{"type":"object","properties":{"ledger":{"type":"string","enum":["evm","canton"]},"networks":{"type":"array","items":{"type":"string","minLength":1}}},"required":["ledger","networks"],"additionalProperties":false}}},"required":["accountCreation","accountProof","managedSigning","externalSigning","accountAbstraction","ledgerNetworks"],"additionalProperties":false},"enabledForCreation":{"type":"boolean"},"executionHealth":{"type":"string","enum":["healthy","unhealthy","quarantined"]},"lastProbeStatus":{"type":"string","enum":["healthy","unhealthy"]},"lastProbedAt":{"type":"string"},"quarantinedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"quarantineReason":{"anyOf":[{"type":"string"},{"type":"null"}]},"quarantinedByUserId":{"anyOf":[{"type":"string"},{"type":"null"}]},"rotatedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"credentialIdentityKind":{"anyOf":[{"type":"string","enum":["provider-reported","declared","fingerprint","platform"]},{"type":"null"}]},"investorProvider":{"type":"boolean"},"offeredToInvestors":{"type":"boolean"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","organizationId","provider","provenance","capabilities","enabledForCreation","executionHealth","lastProbeStatus","lastProbedAt","quarantinedAt","quarantineReason","quarantinedByUserId","rotatedAt","credentialIdentityKind","investorProvider","offeredToInvestors","createdAt","updatedAt"],"additionalProperties":false}},"required":["data"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","organizationId":"org_northwind_coffee","provider":"local","provenance":{"_tag":"InjectedBrowserProviderProvenance","kind":"external","provider":"injected-browser","connector":"eip6963-eip1193"},"capabilities":{"accountCreation":"create","accountProof":"provider-attestation","managedSigning":false,"externalSigning":true,"accountAbstraction":true,"ledgerNetworks":[{"ledger":"evm","networks":[]}]},"enabledForCreation":true,"executionHealth":"healthy","lastProbeStatus":"healthy","lastProbedAt":"2026-04-12T09:30:00.000Z","quarantinedAt":null,"quarantineReason":null,"quarantinedByUserId":null,"rotatedAt":null,"credentialIdentityKind":"provider-reported","investorProvider":true,"offeredToInvestors":false,"createdAt":"2026-08-01T09:00:00.000Z","updatedAt":"2026-08-01T09:00:00.000Z"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","CUSTODY_APPROVAL_REJECTED","CUSTODY_WALLET_NOT_SIGNER","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","status":404,"message":"Custody account not found","data":{"id":"DALP-12257","why":"No custody account visible to the caller in the active organization matches this identifier.","fix":"Refresh the active organization's account list and choose an account returned there.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","CUSTODY_APPROVAL_PENDING","CUSTODY_PROVIDER_CONFIG_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_PROOF_INVALID","CUSTODY_PROVIDER_CONFIG_INVALID"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_PROOF_INVALID","status":422,"message":"The custody proof does not bind this account","data":{"id":"DALP-12274","why":"The control proof, external control artifact, provider binding, or step-up confirmation sent with this request does not bind the account on this ledger, or the custody provider does not support the ledger.","fix":"Produce a new proof or confirmation for this account and ledger, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","custody.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"custody.write.OUTCOME_UNKNOWN","status":503,"message":"The smart-wallet write outcome is unknown","data":{"id":"DALP-12109","why":"The queue may have accepted this wallet write, but its final outcome could not be confirmed.","fix":"Look up the transaction request before taking further action. Do not submit a replacement write under a new idempotency key.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Sets whether the Investor portal lists this provider configuration as a custody choice alongside the designated investor provider. Only a configuration enabled for creation can be offered; disabling creation withdraws the offer.","summary":"Offer or withdraw a provider configuration for investors","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"offered":{"type":"boolean"}},"required":["offered"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/admin/custody/provider-configurations/{providerConfigurationId}/rotate":{"post":{"tags":["Custody"],"operationId":"custodyProviderConfigurationsV2.adminRotate","parameters":[{"name":"providerConfigurationId","in":"path","schema":{"type":"string","minLength":1,"description":"Custody provider configuration identifier"},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The current administrator view of one custody provider configuration.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/CustodyProviderConfigurationId"},"organizationId":{"$ref":"#/components/schemas/OrganizationId"},"provider":{"type":"string","enum":["local","dfns","fireblocks","luna","ripple","anvil","privy","injected-browser","dynamic"]},"provenance":{"$ref":"#/components/schemas/CustodyProviderProvenance"},"capabilities":{"type":"object","properties":{"accountCreation":{"type":"string","enum":["create","link"]},"accountProof":{"type":"string","enum":["provider-attestation","interactive-address"]},"managedSigning":{"type":"boolean"},"externalSigning":{"type":"boolean"},"accountAbstraction":{"type":"boolean"},"ledgerNetworks":{"type":"array","items":{"type":"object","properties":{"ledger":{"type":"string","enum":["evm","canton"]},"networks":{"type":"array","items":{"type":"string","minLength":1}}},"required":["ledger","networks"],"additionalProperties":false}}},"required":["accountCreation","accountProof","managedSigning","externalSigning","accountAbstraction","ledgerNetworks"],"additionalProperties":false},"enabledForCreation":{"type":"boolean"},"executionHealth":{"type":"string","enum":["healthy","unhealthy","quarantined"]},"lastProbeStatus":{"type":"string","enum":["healthy","unhealthy"]},"lastProbedAt":{"type":"string"},"quarantinedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"quarantineReason":{"anyOf":[{"type":"string"},{"type":"null"}]},"quarantinedByUserId":{"anyOf":[{"type":"string"},{"type":"null"}]},"rotatedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"credentialIdentityKind":{"anyOf":[{"type":"string","enum":["provider-reported","declared","fingerprint","platform"]},{"type":"null"}]},"investorProvider":{"type":"boolean"},"offeredToInvestors":{"type":"boolean"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","organizationId","provider","provenance","capabilities","enabledForCreation","executionHealth","lastProbeStatus","lastProbedAt","quarantinedAt","quarantineReason","quarantinedByUserId","rotatedAt","credentialIdentityKind","investorProvider","offeredToInvestors","createdAt","updatedAt"],"additionalProperties":false}},"required":["data"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"019c0000-0000-7000-8000-000000000001","organizationId":"org_northwind_coffee","provider":"injected-browser","provenance":{"_tag":"InjectedBrowserProviderProvenance","kind":"external","provider":"injected-browser","connector":"eip6963-eip1193"},"capabilities":{"accountCreation":"link","accountProof":"interactive-address","managedSigning":false,"externalSigning":true,"accountAbstraction":true,"ledgerNetworks":[{"ledger":"evm","networks":["sepolia"]}]},"enabledForCreation":true,"executionHealth":"healthy","lastProbeStatus":"healthy","lastProbedAt":"2026-04-12T09:30:00.000Z","quarantinedAt":null,"quarantineReason":null,"quarantinedByUserId":null,"rotatedAt":null,"credentialIdentityKind":"platform","investorProvider":true,"offeredToInvestors":false,"createdAt":"2026-03-04T09:12:41.000Z","updatedAt":"2026-04-12T09:30:00.000Z"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","CUSTODY_APPROVAL_REJECTED","CUSTODY_WALLET_NOT_SIGNER","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","status":404,"message":"Custody account not found","data":{"id":"DALP-12257","why":"No custody account visible to the caller in the active organization matches this identifier.","fix":"Refresh the active organization's account list and choose an account returned there.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","CUSTODY_APPROVAL_PENDING","CUSTODY_PROVIDER_CONFIG_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_PROOF_INVALID","CUSTODY_PROVIDER_CONFIG_INVALID"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_PROOF_INVALID","status":422,"message":"The custody proof does not bind this account","data":{"id":"DALP-12274","why":"The control proof, external control artifact, provider binding, or step-up confirmation sent with this request does not bind the account on this ledger, or the custody provider does not support the ledger.","fix":"Produce a new proof or confirmation for this account and ledger, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","custody.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"custody.write.OUTCOME_UNKNOWN","status":503,"message":"The smart-wallet write outcome is unknown","data":{"id":"DALP-12109","why":"The queue may have accepted this wallet write, but its final outcome could not be confirmed.","fix":"Look up the transaction request before taking further action. Do not submit a replacement write under a new idempotency key.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Rejects provider or credential-source changes before probing, then records a successful same-source credential version.","summary":"Rotate custody provider credentials inside the immutable source","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"metadata":{"type":"object","properties":{"workspaceId":{"type":"string"},"vaultId":{"type":"string"},"baseUrl":{"type":"string"},"authUrl":{"type":"string"},"targetDomainId":{"type":"string"},"ledgerId":{"type":"string"},"keyStrategy":{"type":"string","enum":["VaultHard","VaultSoft","Random"]},"defaultAssetId":{"type":"string"},"defaultNetwork":{"type":"string"},"accountIdentifiers":{"type":"object","additionalProperties":{"type":"string"}}},"additionalProperties":false},"credentials":{},"credentialUpdate":{"type":"string","enum":["replace","merge"]}},"required":["metadata"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/admin/custody/provider-configurations/{providerConfigurationId}":{"delete":{"tags":["Custody"],"operationId":"custodyProviderConfigurationsV2.adminDelete","parameters":[{"name":"providerConfigurationId","in":"path","schema":{"type":"string","minLength":1,"description":"Custody provider configuration identifier"},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Confirms that the unused custody provider configuration was deleted.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"null"}},"required":["data"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":null}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","CUSTODY_APPROVAL_REJECTED","CUSTODY_WALLET_NOT_SIGNER","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","status":404,"message":"Custody account not found","data":{"id":"DALP-12257","why":"No custody account visible to the caller in the active organization matches this identifier.","fix":"Refresh the active organization's account list and choose an account returned there.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","CUSTODY_APPROVAL_PENDING","CUSTODY_PROVIDER_CONFIG_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_PROOF_INVALID","CUSTODY_PROVIDER_CONFIG_INVALID"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_PROOF_INVALID","status":422,"message":"The custody proof does not bind this account","data":{"id":"DALP-12274","why":"The control proof, external control artifact, provider binding, or step-up confirmation sent with this request does not bind the account on this ledger, or the custody provider does not support the ledger.","fix":"Produce a new proof or confirmation for this account and ledger, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","custody.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"custody.write.OUTCOME_UNKNOWN","status":503,"message":"The smart-wallet write outcome is unknown","data":{"id":"DALP-12109","why":"The queue may have accepted this wallet write, but its final outcome could not be confirmed.","fix":"Look up the transaction request before taking further action. Do not submit a replacement write under a new idempotency key.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Deletes the configuration only when no account, automation, or audit reference still depends on it.","summary":"Delete an unused custody provider configuration","x-dalp-auth":"session-or-api-key"}},"/api/v2/participants/{participantId}/wallets":{"get":{"tags":["Participants"],"operationId":"v2/participants/walletsList","parameters":[{"name":"participantId","in":"path","schema":{"type":"string","minLength":1,"description":"Participant identifier"},"required":true}],"responses":{"200":{"description":"Every wallet owned by the participant, including signer-only wallets. Each organization and chain verdict remains present when the organization cannot drive that wallet.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParticipantWalletListResponse"},"examples":{"example-1":{"value":{"data":[{"id":"019c0000-0000-7000-8000-000000000001","participantId":"019c0000-0000-7000-8000-000000000002","walletType":"eoa","walletAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","cantonPartyId":null,"cantonNetworkId":null,"chainId":11155111,"label":"Primary key","boundChains":[11155111],"custody":[{"provider":"managed","kind":"managed","ledger":"evm","network":"testnet"}],"signsFor":[],"organizations":[{"organizationId":"019c0000-0000-7000-8000-000000000003","organizationName":"Example organization","chainId":11155111,"eligible":true,"reason":null}],"holdsBalance":false}],"links":{"self":"/v2/participants/019c0000-0000-7000-8000-000000000002/wallets"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","CUSTODY_APPROVAL_REJECTED","CUSTODY_WALLET_NOT_SIGNER","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","status":404,"message":"Custody account not found","data":{"id":"DALP-12257","why":"No custody account visible to the caller in the active organization matches this identifier.","fix":"Refresh the active organization's account list and choose an account returned there.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","CUSTODY_APPROVAL_PENDING","CUSTODY_PROVIDER_CONFIG_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_PROOF_INVALID","CUSTODY_PROVIDER_CONFIG_INVALID"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_PROOF_INVALID","status":422,"message":"The custody proof does not bind this account","data":{"id":"DALP-12274","why":"The control proof, external control artifact, provider binding, or step-up confirmation sent with this request does not bind the account on this ledger, or the custody provider does not support the ledger.","fix":"Produce a new proof or confirmation for this account and ledger, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","custody.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"custody.write.OUTCOME_UNKNOWN","status":503,"message":"The smart-wallet write outcome is unknown","data":{"id":"DALP-12109","why":"The queue may have accepted this wallet write, but its final outcome could not be confirmed.","fix":"Look up the transaction request before taking further action. Do not submit a replacement write under a new idempotency key.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns every wallet Alice owns for this participant, including signer-only wallets. Each row includes custody, chain bindings, smart wallets it signs for, and each member organization's chain-specific drive verdict.","summary":"List account participant wallets","x-dalp-auth":"session-or-api-key"}},"/api/v2/participants/{participantId}/wallets/{walletId}/removal":{"post":{"tags":["Participants"],"operationId":"v2/participants/walletRemove","parameters":[{"name":"participantId","in":"path","schema":{"type":"string","minLength":1,"description":"Participant identifier"},"required":true},{"name":"walletId","in":"path","schema":{"type":"string","minLength":1,"description":"Persisted wallet identifier"},"required":true},{"name":"Idempotency-Key","in":"header","schema":{"type":"string"},"required":false},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Single-resource envelope. `data` is the item. `links.self` is its canonical URL. Used for reads and for mutations that return the resource immediately.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParticipantWalletRemovalResponse"},"examples":{"example-1":{"value":{"data":{"walletId":"019c0000-0000-7000-8000-000000000001","unregistered":[{"organizationId":"019c0000-0000-7000-8000-000000000003","chainId":11155111,"route":"wallet"}]},"links":{"self":"/v2/participants/019c0000-0000-7000-8000-000000000002/wallets"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","CUSTODY_APPROVAL_REJECTED","CUSTODY_WALLET_NOT_SIGNER","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","status":404,"message":"Custody account not found","data":{"id":"DALP-12257","why":"No custody account visible to the caller in the active organization matches this identifier.","fix":"Refresh the active organization's account list and choose an account returned there.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","CUSTODY_APPROVAL_PENDING","CUSTODY_PROVIDER_CONFIG_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_PROOF_INVALID","CUSTODY_PROVIDER_CONFIG_INVALID"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_PROOF_INVALID","status":422,"message":"The custody proof does not bind this account","data":{"id":"DALP-12274","why":"The control proof, external control artifact, provider binding, or step-up confirmation sent with this request does not bind the account on this ledger, or the custody provider does not support the ledger.","fix":"Produce a new proof or confirmation for this account and ledger, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","custody.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"custody.write.OUTCOME_UNKNOWN","status":503,"message":"The smart-wallet write outcome is unknown","data":{"id":"DALP-12109","why":"The queue may have accepted this wallet write, but its final outcome could not be confirmed.","fix":"Look up the transaction request before taking further action. Do not submit a replacement write under a new idempotency key.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Unregisters the wallet from every organization and chain it is registered on, then archives it. The wallet signs its own unregistration; on a chain whose registry predates self-removal, the organization's system key executes it. Nothing is submitted when the wallet still holds a token balance in an organization, is the last address registered to its identity there, or still signs for a smart wallet. The participant, its claims, and its other wallets are unaffected. The request is wallet-verified.","summary":"Remove an account participant wallet","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParticipantWalletRemovalInput"}}},"required":false},"x-dalp-auth":"session-or-api-key"}},"/api/v2/participants/{participantId}/custody-accounts":{"get":{"tags":["Participants"],"operationId":"v2/participants/custodyAccountsList","parameters":[{"name":"participantId","in":"path","schema":{"type":"string","minLength":1,"description":"Participant identifier"},"required":true}],"responses":{"200":{"description":"Every custody account linked to the participant in the active organization.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParticipantCustodyAccountListResponse"},"examples":{"example-1":{"value":{"data":[],"links":{"self":"/v2/participants/c0b8d4b0-3c5a-4b62-9a2e-2f0f6f4a5f10/custody-accounts"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","CUSTODY_APPROVAL_REJECTED","CUSTODY_WALLET_NOT_SIGNER","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","status":404,"message":"Custody account not found","data":{"id":"DALP-12257","why":"No custody account visible to the caller in the active organization matches this identifier.","fix":"Refresh the active organization's account list and choose an account returned there.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","CUSTODY_APPROVAL_PENDING","CUSTODY_PROVIDER_CONFIG_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_PROOF_INVALID","CUSTODY_PROVIDER_CONFIG_INVALID"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_PROOF_INVALID","status":422,"message":"The custody proof does not bind this account","data":{"id":"DALP-12274","why":"The control proof, external control artifact, provider binding, or step-up confirmation sent with this request does not bind the account on this ledger, or the custody provider does not support the ledger.","fix":"Produce a new proof or confirmation for this account and ledger, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","custody.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"custody.write.OUTCOME_UNKNOWN","status":503,"message":"The smart-wallet write outcome is unknown","data":{"id":"DALP-12109","why":"The queue may have accepted this wallet write, but its final outcome could not be confirmed.","fix":"Look up the transaction request before taking further action. Do not submit a replacement write under a new idempotency key.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns every managed and self-custody account linked to the participant in the active organization. Each item identifies its provider, ledger and network, lifecycle, exact signing address, and optional linked smart account. The scoped primary account is first.","summary":"List a participant's custody accounts","x-dalp-auth":"session-or-api-key"}},"/api/v2/users/me/custody-accounts":{"get":{"tags":["Users"],"operationId":"custodyUserAccountsV2.listAccounts","parameters":[{"name":"invitationId","in":"query","schema":{"type":"string"},"required":false},{"name":"participantId","in":"query","schema":{"type":"string","minLength":1,"description":"Participant identifier"},"required":false}],"responses":{"200":{"description":"All custody accounts linked to the authenticated holder in the active organization.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"custodyAccountId":{"$ref":"#/components/schemas/CustodyAccountId"},"organizationContextId":{"$ref":"#/components/schemas/CustodyAccountOrganizationContextId"},"participantId":{"$ref":"#/components/schemas/ParticipantId"},"organizationId":{"$ref":"#/components/schemas/OrganizationId"},"ledger":{"type":"string","enum":["evm","canton"]},"network":{"type":"string","minLength":1},"locator":{"type":"string","minLength":1},"accountLifecycle":{"type":"string","enum":["pending","active","unavailable","revoked","archived"]},"contextLifecycle":{"type":"string","enum":["active","archived"]},"eligibility":{"type":"string","enum":["eligible","ineligible"]},"eligibilityReason":{"anyOf":[{"$ref":"#/components/schemas/WalletIneligibilityReason"},{"type":"null"}]},"isPrimary":{"type":"boolean"},"providerConfigurationId":{"$ref":"#/components/schemas/CustodyProviderConfigurationId"},"provider":{"type":"string","enum":["local","dfns","fireblocks","luna","ripple","anvil","privy","injected-browser","dynamic"]},"clientConfiguration":{"anyOf":[{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["privy"]},"tenant":{"type":"string","enum":["platform","organization"]},"appId":{"type":"string","minLength":1},"clientId":{"type":"string","minLength":1}},"required":["kind","tenant","appId"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["injected-browser"]}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["dynamic"]},"tenant":{"type":"string","enum":["platform","organization"]},"environmentId":{"type":"string","minLength":1}},"required":["kind","tenant","environmentId"],"additionalProperties":false}]},{"type":"null"}]},"capabilities":{"type":"object","properties":{"accountCreation":{"type":"string","enum":["create","link"]},"accountProof":{"type":"string","enum":["provider-attestation","interactive-address"]},"managedSigning":{"type":"boolean"},"externalSigning":{"type":"boolean"},"accountAbstraction":{"type":"boolean"},"ledgerNetworks":{"type":"array","items":{"type":"object","properties":{"ledger":{"type":"string","enum":["evm","canton"]},"networks":{"type":"array","items":{"type":"string","minLength":1}}},"required":["ledger","networks"],"additionalProperties":false}}},"required":["accountCreation","accountProof","managedSigning","externalSigning","accountAbstraction","ledgerNetworks"],"additionalProperties":false},"executionHealth":{"type":"string","enum":["healthy","unhealthy","quarantined"]},"signingAddress":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"ownerWalletId":{"anyOf":[{"$ref":"#/components/schemas/WalletId"},{"type":"null"}]},"smartWalletId":{"anyOf":[{"$ref":"#/components/schemas/WalletId"},{"type":"null"}]},"smartWalletAddress":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"cantonPartyId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["custodyAccountId","organizationContextId","participantId","organizationId","ledger","network","locator","accountLifecycle","contextLifecycle","eligibility","eligibilityReason","isPrimary","providerConfigurationId","provider","clientConfiguration","capabilities","executionHealth","signingAddress","ownerWalletId","smartWalletId","smartWalletAddress","cantonPartyId","createdAt","updatedAt"],"additionalProperties":false}},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"custodyAccountId":"019c0000-0000-7000-8000-000000000002","organizationContextId":"019c0000-0000-7000-8000-000000000003","participantId":"participant_northwind_owner","organizationId":"org_northwind_coffee","ledger":"evm","network":"11155111","locator":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30","accountLifecycle":"active","contextLifecycle":"active","eligibility":"eligible","eligibilityReason":null,"isPrimary":true,"providerConfigurationId":"019c0000-0000-7000-8000-000000000001","provider":"injected-browser","clientConfiguration":{"kind":"injected-browser"},"capabilities":{"accountCreation":"link","accountProof":"interactive-address","managedSigning":false,"externalSigning":true,"accountAbstraction":true,"ledgerNetworks":[{"ledger":"evm","networks":["11155111"]}]},"executionHealth":"healthy","signingAddress":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30","ownerWalletId":"wallet_northwind_owner","smartWalletId":null,"smartWalletAddress":null,"cantonPartyId":null,"createdAt":"2026-03-04T09:12:41.000Z","updatedAt":"2026-04-12T09:30:00.000Z"}],"links":{"self":"/v2/users/me/custody-accounts"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","CUSTODY_APPROVAL_REJECTED","CUSTODY_WALLET_NOT_SIGNER","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","status":404,"message":"Custody account not found","data":{"id":"DALP-12257","why":"No custody account visible to the caller in the active organization matches this identifier.","fix":"Refresh the active organization's account list and choose an account returned there.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","CUSTODY_APPROVAL_PENDING","CUSTODY_PROVIDER_CONFIG_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_PROOF_INVALID","CUSTODY_PROVIDER_CONFIG_INVALID"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_PROOF_INVALID","status":422,"message":"The custody proof does not bind this account","data":{"id":"DALP-12274","why":"The control proof, external control artifact, provider binding, or step-up confirmation sent with this request does not bind the account on this ledger, or the custody provider does not support the ledger.","fix":"Produce a new proof or confirmation for this account and ledger, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","custody.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"custody.write.OUTCOME_UNKNOWN","status":503,"message":"The smart-wallet write outcome is unknown","data":{"id":"DALP-12109","why":"The queue may have accepted this wallet write, but its final outcome could not be confirmed.","fix":"Look up the transaction request before taking further action. Do not submit a replacement write under a new idempotency key.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns every managed and self-custody account linked to the authenticated identity in the active organization. The primary account is first. Smart-account fields are null when account abstraction is disabled. Send `participantId` to read the accounts of a pending participant the holder is proving a key for rather than the one the session acts as.","summary":"List the authenticated holder's custody accounts","x-dalp-auth":"session-or-api-key"}},"/api/v2/users/me/custody-accounts/{custodyAccountId}/primary-selection":{"post":{"tags":["Users"],"operationId":"custodyUserAccountsV2.selectPrimary","parameters":[{"name":"custodyAccountId","in":"path","schema":{"type":"string","minLength":1,"description":"Global custody account identifier"},"required":true},{"name":"Idempotency-Key","in":"header","schema":{"type":"string"},"required":false},{"name":"participantId","in":"query","schema":{"type":"string","minLength":1,"description":"Participant identifier"},"required":false},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"One custody account linked to the authenticated holder in the active organization.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"custodyAccountId":{"$ref":"#/components/schemas/CustodyAccountId"},"organizationContextId":{"$ref":"#/components/schemas/CustodyAccountOrganizationContextId"},"participantId":{"$ref":"#/components/schemas/ParticipantId"},"organizationId":{"$ref":"#/components/schemas/OrganizationId"},"ledger":{"type":"string","enum":["evm","canton"]},"network":{"type":"string","minLength":1},"locator":{"type":"string","minLength":1},"accountLifecycle":{"type":"string","enum":["pending","active","unavailable","revoked","archived"]},"contextLifecycle":{"type":"string","enum":["active","archived"]},"eligibility":{"type":"string","enum":["eligible","ineligible"]},"eligibilityReason":{"anyOf":[{"$ref":"#/components/schemas/WalletIneligibilityReason"},{"type":"null"}]},"isPrimary":{"type":"boolean"},"providerConfigurationId":{"$ref":"#/components/schemas/CustodyProviderConfigurationId"},"provider":{"type":"string","enum":["local","dfns","fireblocks","luna","ripple","anvil","privy","injected-browser","dynamic"]},"clientConfiguration":{"anyOf":[{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["privy"]},"tenant":{"type":"string","enum":["platform","organization"]},"appId":{"type":"string","minLength":1},"clientId":{"type":"string","minLength":1}},"required":["kind","tenant","appId"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["injected-browser"]}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["dynamic"]},"tenant":{"type":"string","enum":["platform","organization"]},"environmentId":{"type":"string","minLength":1}},"required":["kind","tenant","environmentId"],"additionalProperties":false}]},{"type":"null"}]},"capabilities":{"type":"object","properties":{"accountCreation":{"type":"string","enum":["create","link"]},"accountProof":{"type":"string","enum":["provider-attestation","interactive-address"]},"managedSigning":{"type":"boolean"},"externalSigning":{"type":"boolean"},"accountAbstraction":{"type":"boolean"},"ledgerNetworks":{"type":"array","items":{"type":"object","properties":{"ledger":{"type":"string","enum":["evm","canton"]},"networks":{"type":"array","items":{"type":"string","minLength":1}}},"required":["ledger","networks"],"additionalProperties":false}}},"required":["accountCreation","accountProof","managedSigning","externalSigning","accountAbstraction","ledgerNetworks"],"additionalProperties":false},"executionHealth":{"type":"string","enum":["healthy","unhealthy","quarantined"]},"signingAddress":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"ownerWalletId":{"anyOf":[{"$ref":"#/components/schemas/WalletId"},{"type":"null"}]},"smartWalletId":{"anyOf":[{"$ref":"#/components/schemas/WalletId"},{"type":"null"}]},"smartWalletAddress":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"cantonPartyId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["custodyAccountId","organizationContextId","participantId","organizationId","ledger","network","locator","accountLifecycle","contextLifecycle","eligibility","eligibilityReason","isPrimary","providerConfigurationId","provider","clientConfiguration","capabilities","executionHealth","signingAddress","ownerWalletId","smartWalletId","smartWalletAddress","cantonPartyId","createdAt","updatedAt"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"custodyAccountId":"019c0000-0000-7000-8000-000000000002","organizationContextId":"019c0000-0000-7000-8000-000000000003","participantId":"participant_northwind_owner","organizationId":"org_northwind_coffee","ledger":"evm","network":"11155111","locator":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30","accountLifecycle":"active","contextLifecycle":"active","eligibility":"eligible","eligibilityReason":null,"isPrimary":true,"providerConfigurationId":"019c0000-0000-7000-8000-000000000001","provider":"injected-browser","clientConfiguration":{"kind":"injected-browser"},"capabilities":{"accountCreation":"link","accountProof":"interactive-address","managedSigning":false,"externalSigning":true,"accountAbstraction":true,"ledgerNetworks":[{"ledger":"evm","networks":["11155111"]}]},"executionHealth":"healthy","signingAddress":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30","ownerWalletId":"wallet_northwind_owner","smartWalletId":null,"smartWalletAddress":null,"cantonPartyId":null,"createdAt":"2026-03-04T09:12:41.000Z","updatedAt":"2026-04-12T09:30:00.000Z"},"links":{"self":"/v2/users/me/custody-accounts/019c0000-0000-7000-8000-000000000002"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","CUSTODY_APPROVAL_REJECTED","CUSTODY_WALLET_NOT_SIGNER","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","status":404,"message":"Custody account not found","data":{"id":"DALP-12257","why":"No custody account visible to the caller in the active organization matches this identifier.","fix":"Refresh the active organization's account list and choose an account returned there.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","CUSTODY_APPROVAL_PENDING","CUSTODY_PROVIDER_CONFIG_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_PROOF_INVALID","CUSTODY_PROVIDER_CONFIG_INVALID"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_PROOF_INVALID","status":422,"message":"The custody proof does not bind this account","data":{"id":"DALP-12274","why":"The control proof, external control artifact, provider binding, or step-up confirmation sent with this request does not bind the account on this ledger, or the custody provider does not support the ledger.","fix":"Produce a new proof or confirmation for this account and ledger, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","custody.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"custody.write.OUTCOME_UNKNOWN","status":503,"message":"The smart-wallet write outcome is unknown","data":{"id":"DALP-12109","why":"The queue may have accepted this wallet write, but its final outcome could not be confirmed.","fix":"Look up the transaction request before taking further action. Do not submit a replacement write under a new idempotency key.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Makes one active eligible custody account primary for its ledger and network. This does not remove or archive the other accounts. Send `participantId` when the session acts as no participant, which happens when the acting participant's primary account is not eligible here while another of its accounts is.","summary":"Select the primary custody account","x-dalp-auth":"session-or-api-key"}},"/api/v2/users/me/custody-accounts/managed":{"post":{"tags":["Users"],"operationId":"custodyUserAccountsV2.createManaged","parameters":[{"name":"Idempotency-Key","in":"header","schema":{"type":"string"},"required":false},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The managed account linked to the authenticated identity.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/CustodyAccountLifecycleRequestId"},"custodyAccountId":{"$ref":"#/components/schemas/CustodyAccountId"},"operation":{"type":"string","enum":["onboard","add","revoke","archive"]},"state":{"type":"string","enum":["awaiting-proof","awaiting-existing-approval","claimed","awaiting-aa-reconciliation","reconciling","awaiting-external-message-authorization","awaiting-external-authorization","succeeded","failed","expired"]}},"required":["requestId","custodyAccountId","operation","state"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"requestId":"0198f2f0-6d0b-7f86-8f24-c5e1ef9f9d11","custodyAccountId":"0198f2f0-6d0b-7f86-8f24-c5e1ef9f9d12","operation":"add","state":"awaiting-existing-approval"},"links":{"self":"/v2/users/me/custody-accounts"}}}}}},"headers":{"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false}}},"202":{"description":"HTTP 202 accepted handle for a custody-account lifecycle mutation. The work is accepted, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST while the request is non-terminal.","content":{"application/json":{"schema":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/CustodyAccountLifecycleRequestId"},"state":{"type":"string","enum":["awaiting-proof","awaiting-existing-approval","claimed","awaiting-aa-reconciliation","reconciling","awaiting-external-message-authorization","awaiting-external-authorization","succeeded","failed","expired"]},"statusUrl":{"type":"string"}},"required":["requestId","state","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"requestId":"019c0000-0000-7000-8000-000000000004","state":"awaiting-aa-reconciliation","statusUrl":"/api/v2/users/me/custody-account-requests/019c0000-0000-7000-8000-000000000004"}}}}},"headers":{"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false},"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","CUSTODY_APPROVAL_REJECTED","CUSTODY_WALLET_NOT_SIGNER","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","status":404,"message":"Custody account not found","data":{"id":"DALP-12257","why":"No custody account visible to the caller in the active organization matches this identifier.","fix":"Refresh the active organization's account list and choose an account returned there.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","CUSTODY_APPROVAL_PENDING","CUSTODY_PROVIDER_CONFIG_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_PROOF_INVALID","CUSTODY_PROVIDER_CONFIG_INVALID"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_PROOF_INVALID","status":422,"message":"The custody proof does not bind this account","data":{"id":"DALP-12274","why":"The control proof, external control artifact, provider binding, or step-up confirmation sent with this request does not bind the account on this ledger, or the custody provider does not support the ledger.","fix":"Produce a new proof or confirmation for this account and ledger, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","custody.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"custody.write.OUTCOME_UNKNOWN","status":503,"message":"The smart-wallet write outcome is unknown","data":{"id":"DALP-12109","why":"The queue may have accepted this wallet write, but its final outcome could not be confirmed.","fix":"Look up the transaction request before taking further action. Do not submit a replacement write under a new idempotency key.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Creates an account with the selected enabled managed provider configuration and links it through the durable account lifecycle. By default the platform accepts the request and answers the lifecycle handle with its status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for the lifecycle to settle and receives the settled result.","summary":"Create a managed custody account","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"providerConfigurationId":{"$ref":"#/components/schemas/CustodyProviderConfigurationId"},"participantId":{"$ref":"#/components/schemas/ParticipantId"},"invitationId":{"type":"string"}},"required":["providerConfigurationId"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/users/me/custody-accounts/lifecycles":{"post":{"tags":["Users"],"operationId":"custodyUserAccountsV2.runLifecycle","parameters":[{"name":"Idempotency-Key","in":"header","schema":{"type":"string"},"required":false},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The durable state and continuation identifiers for one custody-account lifecycle request.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/CustodyAccountLifecycleRequestId"},"custodyAccountId":{"$ref":"#/components/schemas/CustodyAccountId"},"organizationContextId":{"$ref":"#/components/schemas/CustodyAccountOrganizationContextId"},"operation":{"type":"string","enum":["onboard","add","revoke","archive"]},"state":{"type":"string","enum":["awaiting-proof","awaiting-existing-approval","claimed","awaiting-aa-reconciliation","reconciling","awaiting-external-message-authorization","awaiting-external-authorization","succeeded","failed","expired"]},"externalPreparationId":{"anyOf":[{"$ref":"#/components/schemas/TransactionPreparationId"},{"type":"null"}]},"externalAuthorizingCustodyAccountId":{"anyOf":[{"$ref":"#/components/schemas/CustodyAccountId"},{"type":"null"}]},"externalMessageDigest":{"anyOf":[{"$ref":"#/components/schemas/EthereumHexEncoded"},{"type":"null"}]},"terminalResult":{"anyOf":[{"type":"string","enum":["succeeded","failed","expired"]},{"type":"null"}]},"terminalCode":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["requestId","custodyAccountId","organizationContextId","operation","state","externalPreparationId","externalAuthorizingCustodyAccountId","externalMessageDigest","terminalResult","terminalCode"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"requestId":"019c0000-0000-7000-8000-000000000004","custodyAccountId":"019c0000-0000-7000-8000-000000000002","organizationContextId":"019c0000-0000-7000-8000-000000000003","operation":"add","state":"awaiting-existing-approval","externalPreparationId":null,"externalAuthorizingCustodyAccountId":null,"externalMessageDigest":null,"terminalResult":null,"terminalCode":null},"links":{"self":"/v2/users/me/custody-account-requests/019c0000-0000-7000-8000-000000000004"}}}}}},"headers":{"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false}}},"202":{"description":"HTTP 202 accepted handle for a custody-account lifecycle mutation. The work is accepted, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST while the request is non-terminal.","content":{"application/json":{"schema":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/CustodyAccountLifecycleRequestId"},"state":{"type":"string","enum":["awaiting-proof","awaiting-existing-approval","claimed","awaiting-aa-reconciliation","reconciling","awaiting-external-message-authorization","awaiting-external-authorization","succeeded","failed","expired"]},"statusUrl":{"type":"string"}},"required":["requestId","state","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"requestId":"019c0000-0000-7000-8000-000000000004","state":"awaiting-aa-reconciliation","statusUrl":"/api/v2/users/me/custody-account-requests/019c0000-0000-7000-8000-000000000004"}}}}},"headers":{"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false},"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","CUSTODY_APPROVAL_REJECTED","CUSTODY_WALLET_NOT_SIGNER","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","status":404,"message":"Custody account not found","data":{"id":"DALP-12257","why":"No custody account visible to the caller in the active organization matches this identifier.","fix":"Refresh the active organization's account list and choose an account returned there.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","CUSTODY_APPROVAL_PENDING","CUSTODY_PROVIDER_CONFIG_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_PROOF_INVALID","CUSTODY_PROVIDER_CONFIG_INVALID"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_PROOF_INVALID","status":422,"message":"The custody proof does not bind this account","data":{"id":"DALP-12274","why":"The control proof, external control artifact, provider binding, or step-up confirmation sent with this request does not bind the account on this ledger, or the custody provider does not support the ledger.","fix":"Produce a new proof or confirmation for this account and ledger, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","custody.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"custody.write.OUTCOME_UNKNOWN","status":503,"message":"The smart-wallet write outcome is unknown","data":{"id":"DALP-12109","why":"The queue may have accepted this wallet write, but its final outcome could not be confirmed.","fix":"Look up the transaction request before taking further action. Do not submit a replacement write under a new idempotency key.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Takes one signed account-control proof and carries the whole lifecycle to its end: onboarding, Add account, revocation, or archival. The platform settles every step it can settle on its own. Where a step needs the holder's key, the response names the authorization to answer, the client answers it once through the transaction surface, and the platform carries the request the rest of the way without a second call here. By default the request is accepted with the 202 lifecycle handle and its status URL; send Prefer: wait=<seconds> to wait for the settled result instead.","summary":"Run a custody account lifecycle","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"proof":{"type":"object","properties":{"binding":{"type":"object","properties":{"operation":{"type":"string","enum":["onboard","add","revoke","archive"]},"actorUserId":{"$ref":"#/components/schemas/UserId"},"participantId":{"$ref":"#/components/schemas/ParticipantId"},"organizationId":{"$ref":"#/components/schemas/OrganizationId"},"providerConfigurationId":{"$ref":"#/components/schemas/CustodyProviderConfigurationId"},"ledger":{"type":"string","enum":["evm","canton"]},"network":{"type":"string","minLength":1},"domain":{"type":"string","minLength":1},"origin":{"type":"string","minLength":1},"audience":{"type":"string","minLength":1},"participantResetEpoch":{"type":"integer"},"nonce":{"type":"string","minLength":1},"proofDigest":{"$ref":"#/components/schemas/EthereumHexEncoded"},"expiresAt":{"type":"string"}},"required":["operation","actorUserId","participantId","organizationId","providerConfigurationId","ledger","network","domain","origin","audience","participantResetEpoch","nonce","proofDigest","expiresAt"],"additionalProperties":false},"account":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["EvmCustodyAccountFacts"]},"ledger":{"type":"string","enum":["evm"]},"signingAddress":{"$ref":"#/components/schemas/EvmAddress"},"managedSignerKeyId":{"anyOf":[{"$ref":"#/components/schemas/WalletId"},{"type":"null"}]}},"required":["_tag","ledger","signingAddress","managedSignerKeyId"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["CantonCustodyAccountFacts"]},"ledger":{"type":"string","enum":["canton"]},"accountLocator":{"type":"string","minLength":1},"partyId":{"type":"string","minLength":1}},"required":["_tag","ledger","accountLocator","partyId"],"additionalProperties":false}]},"artifact":{"type":"string","minLength":1}},"required":["binding","account","artifact"],"additionalProperties":false},"invitationId":{"type":"string"}},"required":["proof"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/users/me/custody-account-control-preparations":{"post":{"tags":["Users"],"operationId":"custodyUserAccountsV2.prepareControl","parameters":[{"name":"Idempotency-Key","in":"header","schema":{"type":"string"},"required":false},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The server-bound account control challenge that the external account must sign.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"binding":{"type":"object","properties":{"operation":{"type":"string","enum":["onboard","add","revoke","archive"]},"actorUserId":{"$ref":"#/components/schemas/UserId"},"participantId":{"$ref":"#/components/schemas/ParticipantId"},"organizationId":{"$ref":"#/components/schemas/OrganizationId"},"providerConfigurationId":{"$ref":"#/components/schemas/CustodyProviderConfigurationId"},"ledger":{"type":"string","enum":["evm","canton"]},"network":{"type":"string","minLength":1},"domain":{"type":"string","minLength":1},"origin":{"type":"string","minLength":1},"audience":{"type":"string","minLength":1},"participantResetEpoch":{"type":"integer"},"nonce":{"type":"string","minLength":1},"proofDigest":{"$ref":"#/components/schemas/EthereumHexEncoded"},"expiresAt":{"type":"string"}},"required":["operation","actorUserId","participantId","organizationId","providerConfigurationId","ledger","network","domain","origin","audience","participantResetEpoch","nonce","proofDigest","expiresAt"],"additionalProperties":false},"account":{"type":"object","properties":{"_tag":{"type":"string","enum":["EvmCustodyAccountFacts"]},"ledger":{"type":"string","enum":["evm"]},"signingAddress":{"$ref":"#/components/schemas/EvmAddress"},"managedSignerKeyId":{"anyOf":[{"$ref":"#/components/schemas/WalletId"},{"type":"null"}]}},"required":["_tag","ledger","signingAddress","managedSignerKeyId"],"additionalProperties":false},"message":{"type":"string","minLength":1}},"required":["binding","account","message"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"binding":{"operation":"add","actorUserId":"user_northwind_owner","participantId":"participant_northwind_owner","organizationId":"org_northwind_coffee","providerConfigurationId":"019c0000-0000-7000-8000-000000000001","ledger":"evm","network":"sepolia","domain":"dalp.example","origin":"https://console.dalp.example","audience":"dalp-api","participantResetEpoch":0,"nonce":"custody-proof-7k2m","proofDigest":"0xabababababababababababababababababababababababababababababababab","expiresAt":"2026-04-12T09:40:00.000Z"},"account":{"_tag":"EvmCustodyAccountFacts","ledger":"evm","signingAddress":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30","managedSignerKeyId":null},"message":"DALP custody-account control proof\n0xabababababababababababababababababababababababababababababababab"},"links":{"self":"/v2/users/me/custody-account-control-preparations"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","CUSTODY_APPROVAL_REJECTED","CUSTODY_WALLET_NOT_SIGNER","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","status":404,"message":"Custody account not found","data":{"id":"DALP-12257","why":"No custody account visible to the caller in the active organization matches this identifier.","fix":"Refresh the active organization's account list and choose an account returned there.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","CUSTODY_APPROVAL_PENDING","CUSTODY_PROVIDER_CONFIG_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_PROOF_INVALID","CUSTODY_PROVIDER_CONFIG_INVALID"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_PROOF_INVALID","status":422,"message":"The custody proof does not bind this account","data":{"id":"DALP-12274","why":"The control proof, external control artifact, provider binding, or step-up confirmation sent with this request does not bind the account on this ledger, or the custody provider does not support the ledger.","fix":"Produce a new proof or confirmation for this account and ledger, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","custody.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"custody.write.OUTCOME_UNKNOWN","status":503,"message":"The smart-wallet write outcome is unknown","data":{"id":"DALP-12109","why":"The queue may have accepted this wallet write, but its final outcome could not be confirmed.","fix":"Look up the transaction request before taking further action. Do not submit a replacement write under a new idempotency key.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one server-bound challenge for the selected enabled external provider and EVM address. Sign the returned message, then start the lifecycle request with the returned binding and account facts.","summary":"Prepare external custody account control","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"providerConfigurationId":{"$ref":"#/components/schemas/CustodyProviderConfigurationId"},"signingAddress":{"$ref":"#/components/schemas/EvmAddress"},"participantId":{"$ref":"#/components/schemas/ParticipantId"},"invitationId":{"type":"string"}},"required":["providerConfigurationId","signingAddress"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/users/me/custody-account-requests":{"get":{"tags":["Users"],"operationId":"custodyUserAccountsV2.listLifecycleRequests","parameters":[{"name":"invitationId","in":"query","schema":{"type":"string"},"required":false},{"name":"participantId","in":"query","schema":{"type":"string","minLength":1,"description":"Participant identifier"},"required":false}],"responses":{"200":{"description":"Every unsettled custody-account lifecycle request the authenticated holder owns in the active organization.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/CustodyAccountLifecycleRequestId"},"custodyAccountId":{"$ref":"#/components/schemas/CustodyAccountId"},"organizationContextId":{"$ref":"#/components/schemas/CustodyAccountOrganizationContextId"},"operation":{"type":"string","enum":["onboard","add","revoke","archive"]},"state":{"type":"string","enum":["awaiting-proof","awaiting-existing-approval","claimed","awaiting-aa-reconciliation","reconciling","awaiting-external-message-authorization","awaiting-external-authorization","succeeded","failed","expired"]},"externalPreparationId":{"anyOf":[{"$ref":"#/components/schemas/TransactionPreparationId"},{"type":"null"}]},"externalAuthorizingCustodyAccountId":{"anyOf":[{"$ref":"#/components/schemas/CustodyAccountId"},{"type":"null"}]},"externalMessageDigest":{"anyOf":[{"$ref":"#/components/schemas/EthereumHexEncoded"},{"type":"null"}]},"terminalResult":{"anyOf":[{"type":"string","enum":["succeeded","failed","expired"]},{"type":"null"}]},"terminalCode":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["requestId","custodyAccountId","organizationContextId","operation","state","externalPreparationId","externalAuthorizingCustodyAccountId","externalMessageDigest","terminalResult","terminalCode"],"additionalProperties":false}},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"requestId":"019c0000-0000-7000-8000-000000000004","custodyAccountId":"019c0000-0000-7000-8000-000000000002","organizationContextId":"019c0000-0000-7000-8000-000000000003","operation":"add","state":"awaiting-existing-approval","externalPreparationId":null,"externalAuthorizingCustodyAccountId":null,"externalMessageDigest":null,"terminalResult":null,"terminalCode":null}],"links":{"self":"/v2/users/me/custody-account-requests"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","CUSTODY_APPROVAL_REJECTED","CUSTODY_WALLET_NOT_SIGNER","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","status":404,"message":"Custody account not found","data":{"id":"DALP-12257","why":"No custody account visible to the caller in the active organization matches this identifier.","fix":"Refresh the active organization's account list and choose an account returned there.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","CUSTODY_APPROVAL_PENDING","CUSTODY_PROVIDER_CONFIG_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_PROOF_INVALID","CUSTODY_PROVIDER_CONFIG_INVALID"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_PROOF_INVALID","status":422,"message":"The custody proof does not bind this account","data":{"id":"DALP-12274","why":"The control proof, external control artifact, provider binding, or step-up confirmation sent with this request does not bind the account on this ledger, or the custody provider does not support the ledger.","fix":"Produce a new proof or confirmation for this account and ledger, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","custody.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"custody.write.OUTCOME_UNKNOWN","status":503,"message":"The smart-wallet write outcome is unknown","data":{"id":"DALP-12109","why":"The queue may have accepted this wallet write, but its final outcome could not be confirmed.","fix":"Look up the transaction request before taking further action. Do not submit a replacement write under a new idempotency key.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns every unsettled lifecycle request owned by the authenticated holder in the active organization, newest first. Use it to recover a request identifier the client lost (a browser reload, a second device) and read where the request stands. The platform settles each request itself; a request that stops on a holder's approval continues through the approval routes. Send `participantId` to list the requests of a pending participant the holder is proving a key for rather than the one the session acts as. Settled requests are not listed.","summary":"List open custody account lifecycle requests","x-dalp-auth":"session-or-api-key"}},"/api/v2/users/me/custody-accounts/{custodyAccountId}/lifecycle-control-preparations":{"post":{"tags":["Users"],"operationId":"custodyUserAccountsV2.prepareExistingControl","parameters":[{"name":"custodyAccountId","in":"path","schema":{"type":"string","minLength":1,"description":"Global custody account identifier"},"required":true},{"name":"Idempotency-Key","in":"header","schema":{"type":"string"},"required":false},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The server-bound account control challenge that the external account must sign.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"binding":{"type":"object","properties":{"operation":{"type":"string","enum":["onboard","add","revoke","archive"]},"actorUserId":{"$ref":"#/components/schemas/UserId"},"participantId":{"$ref":"#/components/schemas/ParticipantId"},"organizationId":{"$ref":"#/components/schemas/OrganizationId"},"providerConfigurationId":{"$ref":"#/components/schemas/CustodyProviderConfigurationId"},"ledger":{"type":"string","enum":["evm","canton"]},"network":{"type":"string","minLength":1},"domain":{"type":"string","minLength":1},"origin":{"type":"string","minLength":1},"audience":{"type":"string","minLength":1},"participantResetEpoch":{"type":"integer"},"nonce":{"type":"string","minLength":1},"proofDigest":{"$ref":"#/components/schemas/EthereumHexEncoded"},"expiresAt":{"type":"string"}},"required":["operation","actorUserId","participantId","organizationId","providerConfigurationId","ledger","network","domain","origin","audience","participantResetEpoch","nonce","proofDigest","expiresAt"],"additionalProperties":false},"account":{"type":"object","properties":{"_tag":{"type":"string","enum":["EvmCustodyAccountFacts"]},"ledger":{"type":"string","enum":["evm"]},"signingAddress":{"$ref":"#/components/schemas/EvmAddress"},"managedSignerKeyId":{"anyOf":[{"$ref":"#/components/schemas/WalletId"},{"type":"null"}]}},"required":["_tag","ledger","signingAddress","managedSignerKeyId"],"additionalProperties":false},"message":{"type":"string","minLength":1}},"required":["binding","account","message"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"binding":{"operation":"add","actorUserId":"user_northwind_owner","participantId":"participant_northwind_owner","organizationId":"org_northwind_coffee","providerConfigurationId":"019c0000-0000-7000-8000-000000000001","ledger":"evm","network":"sepolia","domain":"dalp.example","origin":"https://console.dalp.example","audience":"dalp-api","participantResetEpoch":0,"nonce":"custody-proof-7k2m","proofDigest":"0xabababababababababababababababababababababababababababababababab","expiresAt":"2026-04-12T09:40:00.000Z"},"account":{"_tag":"EvmCustodyAccountFacts","ledger":"evm","signingAddress":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30","managedSignerKeyId":null},"message":"DALP custody-account control proof\n0xabababababababababababababababababababababababababababababababab"},"links":{"self":"/v2/users/me/custody-account-control-preparations"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","CUSTODY_APPROVAL_REJECTED","CUSTODY_WALLET_NOT_SIGNER","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","status":404,"message":"Custody account not found","data":{"id":"DALP-12257","why":"No custody account visible to the caller in the active organization matches this identifier.","fix":"Refresh the active organization's account list and choose an account returned there.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","CUSTODY_APPROVAL_PENDING","CUSTODY_PROVIDER_CONFIG_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_PROOF_INVALID","CUSTODY_PROVIDER_CONFIG_INVALID"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_PROOF_INVALID","status":422,"message":"The custody proof does not bind this account","data":{"id":"DALP-12274","why":"The control proof, external control artifact, provider binding, or step-up confirmation sent with this request does not bind the account on this ledger, or the custody provider does not support the ledger.","fix":"Produce a new proof or confirmation for this account and ledger, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","custody.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"custody.write.OUTCOME_UNKNOWN","status":503,"message":"The smart-wallet write outcome is unknown","data":{"id":"DALP-12109","why":"The queue may have accepted this wallet write, but its final outcome could not be confirmed.","fix":"Look up the transaction request before taking further action. Do not submit a replacement write under a new idempotency key.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns a server-bound control challenge for an existing account. External accounts sign the message. Managed accounts use the dedicated managed lifecycle operation.","summary":"Prepare custody account revocation or archival","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"operation":{"type":"string","enum":["revoke","archive"]}},"required":["operation"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/users/me/custody-accounts/{custodyAccountId}/managed-lifecycle":{"post":{"tags":["Users"],"operationId":"custodyUserAccountsV2.startManagedLifecycle","parameters":[{"name":"custodyAccountId","in":"path","schema":{"type":"string","minLength":1,"description":"Global custody account identifier"},"required":true},{"name":"Idempotency-Key","in":"header","schema":{"type":"string"},"required":false},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The durable state and continuation identifiers for one custody-account lifecycle request.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/CustodyAccountLifecycleRequestId"},"custodyAccountId":{"$ref":"#/components/schemas/CustodyAccountId"},"organizationContextId":{"$ref":"#/components/schemas/CustodyAccountOrganizationContextId"},"operation":{"type":"string","enum":["onboard","add","revoke","archive"]},"state":{"type":"string","enum":["awaiting-proof","awaiting-existing-approval","claimed","awaiting-aa-reconciliation","reconciling","awaiting-external-message-authorization","awaiting-external-authorization","succeeded","failed","expired"]},"externalPreparationId":{"anyOf":[{"$ref":"#/components/schemas/TransactionPreparationId"},{"type":"null"}]},"externalAuthorizingCustodyAccountId":{"anyOf":[{"$ref":"#/components/schemas/CustodyAccountId"},{"type":"null"}]},"externalMessageDigest":{"anyOf":[{"$ref":"#/components/schemas/EthereumHexEncoded"},{"type":"null"}]},"terminalResult":{"anyOf":[{"type":"string","enum":["succeeded","failed","expired"]},{"type":"null"}]},"terminalCode":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["requestId","custodyAccountId","organizationContextId","operation","state","externalPreparationId","externalAuthorizingCustodyAccountId","externalMessageDigest","terminalResult","terminalCode"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"requestId":"019c0000-0000-7000-8000-000000000004","custodyAccountId":"019c0000-0000-7000-8000-000000000002","organizationContextId":"019c0000-0000-7000-8000-000000000003","operation":"add","state":"awaiting-existing-approval","externalPreparationId":null,"externalAuthorizingCustodyAccountId":null,"externalMessageDigest":null,"terminalResult":null,"terminalCode":null},"links":{"self":"/v2/users/me/custody-account-requests/019c0000-0000-7000-8000-000000000004"}}}}}},"headers":{"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false}}},"202":{"description":"HTTP 202 accepted handle for a custody-account lifecycle mutation. The work is accepted, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST while the request is non-terminal.","content":{"application/json":{"schema":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/CustodyAccountLifecycleRequestId"},"state":{"type":"string","enum":["awaiting-proof","awaiting-existing-approval","claimed","awaiting-aa-reconciliation","reconciling","awaiting-external-message-authorization","awaiting-external-authorization","succeeded","failed","expired"]},"statusUrl":{"type":"string"}},"required":["requestId","state","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"requestId":"019c0000-0000-7000-8000-000000000004","state":"awaiting-aa-reconciliation","statusUrl":"/api/v2/users/me/custody-account-requests/019c0000-0000-7000-8000-000000000004"}}}}},"headers":{"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false},"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","CUSTODY_APPROVAL_REJECTED","CUSTODY_WALLET_NOT_SIGNER","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","status":404,"message":"Custody account not found","data":{"id":"DALP-12257","why":"No custody account visible to the caller in the active organization matches this identifier.","fix":"Refresh the active organization's account list and choose an account returned there.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","CUSTODY_APPROVAL_PENDING","CUSTODY_PROVIDER_CONFIG_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_PROOF_INVALID","CUSTODY_PROVIDER_CONFIG_INVALID"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_PROOF_INVALID","status":422,"message":"The custody proof does not bind this account","data":{"id":"DALP-12274","why":"The control proof, external control artifact, provider binding, or step-up confirmation sent with this request does not bind the account on this ledger, or the custody provider does not support the ledger.","fix":"Produce a new proof or confirmation for this account and ledger, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","custody.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"custody.write.OUTCOME_UNKNOWN","status":503,"message":"The smart-wallet write outcome is unknown","data":{"id":"DALP-12109","why":"The queue may have accepted this wallet write, but its final outcome could not be confirmed.","fix":"Look up the transaction request before taking further action. Do not submit a replacement write under a new idempotency key.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Starts an exact managed-account lifecycle operation with a server-created provider attestation. External accounts must use the control preparation and signed lifecycle start operations. A request whose reconciliation is still running answers the 202 lifecycle handle unless Prefer: wait=<seconds> holds the request until it settles.","summary":"Start managed custody account revocation or archival","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"operation":{"type":"string","enum":["revoke","archive"]}},"required":["operation"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/users/me/custody-account-requests/{requestId}":{"get":{"tags":["Users"],"operationId":"custodyUserAccountsV2.readLifecycle","parameters":[{"name":"requestId","in":"path","schema":{"type":"string","minLength":1,"description":"Durable custody account lifecycle request identifier"},"required":true},{"name":"invitationId","in":"query","schema":{"type":"string"},"required":false},{"name":"participantId","in":"query","schema":{"type":"string","minLength":1,"description":"Participant identifier"},"required":false}],"responses":{"200":{"description":"The durable state and continuation identifiers for one custody-account lifecycle request.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/CustodyAccountLifecycleRequestId"},"custodyAccountId":{"$ref":"#/components/schemas/CustodyAccountId"},"organizationContextId":{"$ref":"#/components/schemas/CustodyAccountOrganizationContextId"},"operation":{"type":"string","enum":["onboard","add","revoke","archive"]},"state":{"type":"string","enum":["awaiting-proof","awaiting-existing-approval","claimed","awaiting-aa-reconciliation","reconciling","awaiting-external-message-authorization","awaiting-external-authorization","succeeded","failed","expired"]},"externalPreparationId":{"anyOf":[{"$ref":"#/components/schemas/TransactionPreparationId"},{"type":"null"}]},"externalAuthorizingCustodyAccountId":{"anyOf":[{"$ref":"#/components/schemas/CustodyAccountId"},{"type":"null"}]},"externalMessageDigest":{"anyOf":[{"$ref":"#/components/schemas/EthereumHexEncoded"},{"type":"null"}]},"terminalResult":{"anyOf":[{"type":"string","enum":["succeeded","failed","expired"]},{"type":"null"}]},"terminalCode":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["requestId","custodyAccountId","organizationContextId","operation","state","externalPreparationId","externalAuthorizingCustodyAccountId","externalMessageDigest","terminalResult","terminalCode"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"requestId":"019c0000-0000-7000-8000-000000000004","custodyAccountId":"019c0000-0000-7000-8000-000000000002","organizationContextId":"019c0000-0000-7000-8000-000000000003","operation":"add","state":"awaiting-existing-approval","externalPreparationId":null,"externalAuthorizingCustodyAccountId":null,"externalMessageDigest":null,"terminalResult":null,"terminalCode":null},"links":{"self":"/v2/users/me/custody-account-requests/019c0000-0000-7000-8000-000000000004"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","CUSTODY_APPROVAL_REJECTED","CUSTODY_WALLET_NOT_SIGNER","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","status":404,"message":"Custody account not found","data":{"id":"DALP-12257","why":"No custody account visible to the caller in the active organization matches this identifier.","fix":"Refresh the active organization's account list and choose an account returned there.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","CUSTODY_APPROVAL_PENDING","CUSTODY_PROVIDER_CONFIG_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_PROOF_INVALID","CUSTODY_PROVIDER_CONFIG_INVALID"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_PROOF_INVALID","status":422,"message":"The custody proof does not bind this account","data":{"id":"DALP-12274","why":"The control proof, external control artifact, provider binding, or step-up confirmation sent with this request does not bind the account on this ledger, or the custody provider does not support the ledger.","fix":"Produce a new proof or confirmation for this account and ledger, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","custody.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"custody.write.OUTCOME_UNKNOWN","status":503,"message":"The smart-wallet write outcome is unknown","data":{"id":"DALP-12109","why":"The queue may have accepted this wallet write, but its final outcome could not be confirmed.","fix":"Look up the transaction request before taking further action. Do not submit a replacement write under a new idempotency key.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the durable state and continuation identifiers for one lifecycle request owned by the authenticated holder in the active organization. Send `participantId` when the request was started for a pending participant other than the one the session acts as.","summary":"Read a custody account lifecycle request","x-dalp-auth":"session-or-api-key"}},"/api/v2/users/me/custody-account-requests/{requestId}/stream":{"get":{"tags":["Users"],"operationId":"custodyUserAccountsV2.readLifecycleStream","parameters":[{"name":"requestId","in":"path","schema":{"type":"string","minLength":1,"description":"Durable custody account lifecycle request identifier"},"required":true},{"name":"invitationId","in":"query","schema":{"type":"string"},"required":false},{"name":"participantId","in":"query","schema":{"type":"string","minLength":1,"description":"Participant identifier"},"required":false}],"responses":{"200":{"description":"Server-sent events carrying the request's current state first, then a new snapshot each time the state changes, until the request comes to rest or three minutes pass.","content":{"text/event-stream":{"schema":{"type":"object","properties":{"requestId":{"type":"string","minLength":1,"description":"Durable custody account lifecycle request identifier"},"custodyAccountId":{"type":"string","minLength":1,"description":"Global custody account identifier"},"organizationContextId":{"type":"string","minLength":1,"description":"Custody account organization context identifier"},"operation":{"type":"string","enum":["onboard","add","revoke","archive"]},"state":{"type":"string","enum":["awaiting-proof","awaiting-existing-approval","claimed","awaiting-aa-reconciliation","reconciling","awaiting-external-message-authorization","awaiting-external-authorization","succeeded","failed","expired"]},"externalPreparationId":{"anyOf":[{"type":"string","minLength":1,"description":"Server-prepared transaction authorization identifier"},{"type":"null"}]},"externalAuthorizingCustodyAccountId":{"anyOf":[{"type":"string","minLength":1,"description":"Global custody account identifier"},{"type":"null"}]},"externalMessageDigest":{"anyOf":[{"type":"string","minLength":2,"description":"A valid Ethereum hex string starting with 0x","examples":["0x5208"]},{"type":"null"}]},"terminalResult":{"anyOf":[{"type":"string","enum":["succeeded","failed","expired"]},{"type":"null"}]},"terminalCode":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["requestId","custodyAccountId","organizationContextId","operation","state","externalPreparationId","externalAuthorizingCustodyAccountId","externalMessageDigest","terminalResult","terminalCode"],"additionalProperties":true},"x-effect-stream":{"encoding":"sse","causeSchema":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["Fail"]},"error":{"not":{}}},"required":["_tag","error"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["Die"]},"defect":{}},"required":["_tag","defect"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["Interrupt"]},"fiberId":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["_tag","fiberId"],"additionalProperties":false}]}},"errorSchema":{"not":{}},"failureEvent":"effect/http-api/stream/failure"},"examples":{"example-1":{"value":{"requestId":"019c0000-0000-7000-8000-000000000004","custodyAccountId":"6b1c8f27-4a03-4e5d-b7a1-9c2d0e4f8a35","organizationContextId":"019c0000-0000-7000-8000-000000000003","operation":"onboard","state":"awaiting-proof","externalPreparationId":null,"externalAuthorizingCustodyAccountId":null,"externalMessageDigest":"0x5208","terminalResult":"succeeded","terminalCode":null}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","CUSTODY_APPROVAL_REJECTED","CUSTODY_WALLET_NOT_SIGNER","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","status":404,"message":"Custody account not found","data":{"id":"DALP-12257","why":"No custody account visible to the caller in the active organization matches this identifier.","fix":"Refresh the active organization's account list and choose an account returned there.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","CUSTODY_APPROVAL_PENDING","CUSTODY_PROVIDER_CONFIG_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_PROOF_INVALID","CUSTODY_PROVIDER_CONFIG_INVALID"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_PROOF_INVALID","status":422,"message":"The custody proof does not bind this account","data":{"id":"DALP-12274","why":"The control proof, external control artifact, provider binding, or step-up confirmation sent with this request does not bind the account on this ledger, or the custody provider does not support the ledger.","fix":"Produce a new proof or confirmation for this account and ledger, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","custody.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"custody.write.OUTCOME_UNKNOWN","status":503,"message":"The smart-wallet write outcome is unknown","data":{"id":"DALP-12109","why":"The queue may have accepted this wallet write, but its final outcome could not be confirmed.","fix":"Look up the transaction request before taking further action. Do not submit a replacement write under a new idempotency key.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Opens a server-sent event stream for one lifecycle request owned by the authenticated holder, in the same shape as the request read. Send `participantId` when the request was started for a pending participant other than the one the session acts as. Browser callers must be same-origin or the route answers 404. The stream ends when the request comes to rest, or after three minutes; use the request read after that.","summary":"Stream a custody account lifecycle request","x-dalp-auth":"session-or-api-key"}},"/api/v2/users/me/custody-account-requests/{requestId}/approval-preparation":{"post":{"tags":["Users"],"operationId":"custodyUserAccountsV2.prepareApproval","parameters":[{"name":"requestId","in":"path","schema":{"type":"string","minLength":1,"description":"Durable custody account lifecycle request identifier"},"required":true},{"name":"Idempotency-Key","in":"header","schema":{"type":"string"},"required":false},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The exact approval message and signer method for one existing custody account.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/CustodyAccountLifecycleRequestId"},"custodyAccountId":{"$ref":"#/components/schemas/CustodyAccountId"},"existingSignerCustodyAccountId":{"$ref":"#/components/schemas/CustodyAccountId"},"proofDigest":{"$ref":"#/components/schemas/EthereumHexEncoded"},"signingAddress":{"$ref":"#/components/schemas/EvmAddress"},"signingMethod":{"type":"string","enum":["managed","external"]},"message":{"type":"string","minLength":1}},"required":["requestId","custodyAccountId","existingSignerCustodyAccountId","proofDigest","signingAddress","signingMethod","message"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"requestId":"019c0000-0000-7000-8000-000000000004","custodyAccountId":"019c0000-0000-7000-8000-000000000002","existingSignerCustodyAccountId":"019c0000-0000-7000-8000-000000000005","proofDigest":"0xabababababababababababababababababababababababababababababababab","signingAddress":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30","signingMethod":"external","message":"DALP custody-account approval\n019c0000-0000-7000-8000-000000000004"},"links":{"self":"/v2/users/me/custody-account-requests/019c0000-0000-7000-8000-000000000004/approval-preparation"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","CUSTODY_APPROVAL_REJECTED","CUSTODY_WALLET_NOT_SIGNER","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","status":404,"message":"Custody account not found","data":{"id":"DALP-12257","why":"No custody account visible to the caller in the active organization matches this identifier.","fix":"Refresh the active organization's account list and choose an account returned there.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","CUSTODY_APPROVAL_PENDING","CUSTODY_PROVIDER_CONFIG_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_PROOF_INVALID","CUSTODY_PROVIDER_CONFIG_INVALID"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_PROOF_INVALID","status":422,"message":"The custody proof does not bind this account","data":{"id":"DALP-12274","why":"The control proof, external control artifact, provider binding, or step-up confirmation sent with this request does not bind the account on this ledger, or the custody provider does not support the ledger.","fix":"Produce a new proof or confirmation for this account and ledger, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","custody.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"custody.write.OUTCOME_UNKNOWN","status":503,"message":"The smart-wallet write outcome is unknown","data":{"id":"DALP-12109","why":"The queue may have accepted this wallet write, but its final outcome could not be confirmed.","fix":"Look up the transaction request before taking further action. Do not submit a replacement write under a new idempotency key.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the exact message and signer mode for an eligible existing account. Managed signers approve on the server; external signers must sign the returned message before approval. Send `participantId` when the request was started for a pending participant other than the one the session acts as.","summary":"Prepare a custody account approval","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"existingSignerCustodyAccountId":{"$ref":"#/components/schemas/CustodyAccountId"},"participantId":{"$ref":"#/components/schemas/ParticipantId"}},"required":["existingSignerCustodyAccountId"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/users/me/custody-account-requests/{requestId}/approval":{"post":{"tags":["Users"],"operationId":"custodyUserAccountsV2.approveLifecycle","parameters":[{"name":"requestId","in":"path","schema":{"type":"string","minLength":1,"description":"Durable custody account lifecycle request identifier"},"required":true},{"name":"Idempotency-Key","in":"header","schema":{"type":"string"},"required":false},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The durable state and continuation identifiers for one custody-account lifecycle request.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/CustodyAccountLifecycleRequestId"},"custodyAccountId":{"$ref":"#/components/schemas/CustodyAccountId"},"organizationContextId":{"$ref":"#/components/schemas/CustodyAccountOrganizationContextId"},"operation":{"type":"string","enum":["onboard","add","revoke","archive"]},"state":{"type":"string","enum":["awaiting-proof","awaiting-existing-approval","claimed","awaiting-aa-reconciliation","reconciling","awaiting-external-message-authorization","awaiting-external-authorization","succeeded","failed","expired"]},"externalPreparationId":{"anyOf":[{"$ref":"#/components/schemas/TransactionPreparationId"},{"type":"null"}]},"externalAuthorizingCustodyAccountId":{"anyOf":[{"$ref":"#/components/schemas/CustodyAccountId"},{"type":"null"}]},"externalMessageDigest":{"anyOf":[{"$ref":"#/components/schemas/EthereumHexEncoded"},{"type":"null"}]},"terminalResult":{"anyOf":[{"type":"string","enum":["succeeded","failed","expired"]},{"type":"null"}]},"terminalCode":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["requestId","custodyAccountId","organizationContextId","operation","state","externalPreparationId","externalAuthorizingCustodyAccountId","externalMessageDigest","terminalResult","terminalCode"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"requestId":"019c0000-0000-7000-8000-000000000004","custodyAccountId":"019c0000-0000-7000-8000-000000000002","organizationContextId":"019c0000-0000-7000-8000-000000000003","operation":"add","state":"awaiting-existing-approval","externalPreparationId":null,"externalAuthorizingCustodyAccountId":null,"externalMessageDigest":null,"terminalResult":null,"terminalCode":null},"links":{"self":"/v2/users/me/custody-account-requests/019c0000-0000-7000-8000-000000000004"}}}}}},"headers":{"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false}}},"202":{"description":"HTTP 202 accepted handle for a custody-account lifecycle mutation. The work is accepted, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST while the request is non-terminal.","content":{"application/json":{"schema":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/CustodyAccountLifecycleRequestId"},"state":{"type":"string","enum":["awaiting-proof","awaiting-existing-approval","claimed","awaiting-aa-reconciliation","reconciling","awaiting-external-message-authorization","awaiting-external-authorization","succeeded","failed","expired"]},"statusUrl":{"type":"string"}},"required":["requestId","state","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"requestId":"019c0000-0000-7000-8000-000000000004","state":"awaiting-aa-reconciliation","statusUrl":"/api/v2/users/me/custody-account-requests/019c0000-0000-7000-8000-000000000004"}}}}},"headers":{"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false},"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","CUSTODY_APPROVAL_REJECTED","CUSTODY_WALLET_NOT_SIGNER","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_ACCOUNT_NOT_FOUND_PUBLIC","status":404,"message":"Custody account not found","data":{"id":"DALP-12257","why":"No custody account visible to the caller in the active organization matches this identifier.","fix":"Refresh the active organization's account list and choose an account returned there.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","CUSTODY_APPROVAL_PENDING","CUSTODY_PROVIDER_CONFIG_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","CUSTODY_PROOF_INVALID","CUSTODY_PROVIDER_CONFIG_INVALID"]}},"required":["code"]}],"examples":[{"code":"CUSTODY_PROOF_INVALID","status":422,"message":"The custody proof does not bind this account","data":{"id":"DALP-12274","why":"The control proof, external control artifact, provider binding, or step-up confirmation sent with this request does not bind the account on this ledger, or the custody provider does not support the ledger.","fix":"Produce a new proof or confirmation for this account and ledger, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","custody.write.OUTCOME_UNKNOWN","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"custody.write.OUTCOME_UNKNOWN","status":503,"message":"The smart-wallet write outcome is unknown","data":{"id":"DALP-12109","why":"The queue may have accepted this wallet write, but its final outcome could not be confirmed.","fix":"Look up the transaction request before taking further action. Do not submit a replacement write under a new idempotency key.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Approves with the selected existing account. Omit artifact for a managed signer. An external signer must submit the signature artifact over the prepared message. Send `participantId` when the request was started for a pending participant other than the one the session acts as. A request whose reconciliation is still running answers the 202 lifecycle handle unless Prefer: wait=<seconds> holds the request until it settles.","summary":"Approve a custody account lifecycle request","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"existingSignerCustodyAccountId":{"$ref":"#/components/schemas/CustodyAccountId"},"artifact":{"type":"string","minLength":1},"participantId":{"$ref":"#/components/schemas/ParticipantId"}},"required":["existingSignerCustodyAccountId"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/custody-ops/deposit-instructions":{"get":{"tags":["Custody operations"],"operationId":"custodyOps/depositInstructionsList","parameters":[],"responses":{"200":{"description":"CustodyDepositInstructionsList","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustodyDepositInstructionsList"},"examples":{"example-1":{"value":{"data":[{"chainId":1,"walletId":"wallet_northwind_treasury","address":"0x71c7656ec7ab88b098defb751b7401b5f6d8976f","token":{"address":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","name":"USD Coin","symbol":"USDC","decimals":6}}]}}}}}},"400":{"description":"The request does not match what this route publishes: a body, query, path, or header field is missing or carries a value the schema refuses. The response names the field, and this status never describes the state of the record the request names.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","wire.http.SESSION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The row this route names does not exist in the active organization, so the platform returned none. Check the identifier, then send the request again. This status never says whether such a row exists in another organization.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_CHAIN_SYSTEM_REQUIRED","status":404,"message":"The organization has no deployed system on chain 1","data":{"id":"DALP-9524","why":"The active organization has no deployed system on its default network.","fix":"Deploy the organization system before using system-scoped APIs.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the row it names: another writer changed it, or its current state does not permit this change. Read the row again, then repeat the request with the version or state you read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller sent more requests than the platform accepts in this window. Wait for the interval in `Retry-After`, then send the request again. Nothing was changed by the refused calls.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A dependency this route needs is unavailable, so the platform did not attempt the work. Retry after the interval in `Retry-After`; nothing was changed by the refused call.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"The platform stopped waiting before the work this route asked for finished, and the response names the resource that reports its real state. Read that resource before sending the request again rather than repeating the call.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns where the acting participant sends funds: one entry for each active custody wallet and each deposit token the operator accepts, with the network, the wallet address that receives the transfer, and the token to send. Only tokens that belong to the active organization are listed: its own tokens the operator accepts, and the external tokens it registered by hand and has not dismissed. The list is empty until the operator accepts a token or the organization registers an external token by hand. Each wallet address is the participant's own, so the address identifies the deposit and no separate reference is needed.","summary":"List your deposit funding instructions","x-dalp-auth":"session-or-api-key"}},"/api/v2/transaction-requests":{"get":{"tags":["Transactions"],"operationId":"transactionsV2.list","parameters":[{"name":"family","in":"query","schema":{"type":"string","enum":["evm","canton"]},"required":false},{"name":"status","in":"query","schema":{"type":"string"},"required":false},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":200},"required":false},{"name":"offset","in":"query","schema":{"type":"integer","minimum":0,"maximum":10000},"required":false},{"name":"ownership","in":"query","schema":{"type":"string","enum":["caller","scoped"]},"required":false}],"responses":{"200":{"description":"One page of transaction requests visible to the caller, across every chain family the deployment runs. Narrow on `data[].family` before reading any other field: an `evm` row carries `transactionId`, `fromAddress`, `chainId`, and `transactionHash`; a `canton` row carries `submissionId`, `submittingParty`, `networkIdentity`, and its own approval and settlement fields, and has none of the EVM ones. Families are blocked, not interleaved: every matching EVM row comes first, then every Canton row, and `meta.total` spans both. `filter[family]` selects one family; `filter[network]` narrows to one chain id or Canton network. `ownership` selects the EVM wallet set only: `scoped` is the default and lets administrators see the organization-wide set, `caller` restricts the EVM block to the caller's own wallets. It does not narrow the Canton block, whose rows are attributed to a party rather than to a user. Sort defaults to `createdAt` ascending. The call does not query the chain.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"family":{"type":"string","enum":["evm"]},"transactionId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"kind":{"type":"string","minLength":1},"status":{"$ref":"#/components/schemas/TransactionRequestState"},"subStatus":{"anyOf":[{"type":"string"},{"type":"null"}]},"fromAddress":{"$ref":"#/components/schemas/EvmAddress"},"contractAddress":{"anyOf":[{"type":"string"},{"type":"null"}]},"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"transactionHash":{"anyOf":[{"$ref":"#/components/schemas/EthereumHashEncoded"},{"type":"null"}]},"blockNumber":{"anyOf":[{"type":"string"},{"type":"null"}]},"errorMessage":{"anyOf":[{"type":"string"},{"type":"null"}]},"receipt":{"anyOf":[{"type":"object","properties":{"status":{"type":"string","enum":["success","reverted"]},"transactionHash":{"$ref":"#/components/schemas/EthereumHashEncoded"},"blockNumber":{"type":"string"},"blockHash":{"$ref":"#/components/schemas/EthereumHashEncoded"},"from":{"$ref":"#/components/schemas/EvmAddress"},"to":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"contractAddress":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"gasUsed":{"type":"string"},"cumulativeGasUsed":{"type":"string","examples":["21000"]},"effectiveGasPrice":{"type":"string"},"transactionIndex":{"type":"integer"},"logs":{"type":"array","items":{"type":"object","properties":{"address":{"$ref":"#/components/schemas/EvmAddress"},"topics":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHexEncoded"}},"data":{"$ref":"#/components/schemas/EthereumHexEncoded"},"blockNumber":{"type":"string"},"transactionIndex":{"type":"integer"},"logIndex":{"type":"integer"}},"required":["address","topics","data","blockNumber","transactionIndex","logIndex"],"additionalProperties":false}}},"required":["status","transactionHash","blockNumber","blockHash","from","to","contractAddress","gasUsed","cumulativeGasUsed","effectiveGasPrice","transactionIndex","logs"],"additionalProperties":false},{"type":"null"}]},"result":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/JsonValue"}},"steps":{"type":"array","items":{"$ref":"#/components/schemas/ExecutionChainStepOutcome"}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["family","transactionId","kind","status","subStatus","fromAddress","contractAddress","chainId","transactionHash","blockNumber","errorMessage","createdAt","updatedAt"],"additionalProperties":false},{"type":"object","properties":{"family":{"type":"string","enum":["canton"]},"submissionId":{"type":"string","minLength":1},"networkIdentity":{"$ref":"#/components/schemas/NetworkId"},"submittingParty":{"$ref":"#/components/schemas/CantonPartyId"},"submissionStatus":{"type":"string","enum":["intent","approved","executed","projecting","settled","expired","failed"]},"approvalStatus":{"type":"string","enum":["none","pending","approved","denied"]},"approvalDecidedBy":{"anyOf":[{"type":"string"},{"type":"null"}]},"approvalDecidedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"ledgerSubmissionId":{"type":"string"},"settlementOffset":{"$ref":"#/components/schemas/LedgerOffset"},"failureReason":{"type":"object","properties":{"category":{"type":"string","enum":["ledger-rejected","approval-denied","approval-expired","no-longer-applies","signing-denied","not-entitled","internal"]},"code":{"type":"string","minLength":1},"message":{"type":"string","minLength":1}},"required":["category","code","message"],"additionalProperties":false},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["family","submissionId","networkIdentity","submittingParty","submissionStatus","approvalStatus","approvalDecidedBy","approvalDecidedAt","createdAt","updatedAt"],"additionalProperties":false}],"examples":[{"family":"evm","transactionId":"019c0000-0000-7000-8000-000000000010","kind":"token.mint","status":"FAILED","subStatus":null,"fromAddress":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30","contractAddress":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30","chainId":11155111,"transactionHash":null,"blockNumber":null,"errorMessage":"Stuck behind a replaced nonce; failed by an operator","createdAt":"2026-04-12T09:30:00.000Z","updatedAt":"2026-04-12T09:42:00.000Z"}]}},"total":{"type":"integer","minimum":0},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["data","total","nextCursor"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"family":"evm","transactionId":"019c0000-0000-7000-8000-000000000010","kind":"token.mint","status":"FAILED","subStatus":null,"fromAddress":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30","contractAddress":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30","chainId":11155111,"transactionHash":null,"blockNumber":null,"errorMessage":"Stuck behind a replaced nonce; failed by an operator","createdAt":"2026-04-12T09:30:00.000Z","updatedAt":"2026-04-12T09:42:00.000Z"}],"total":1,"nextCursor":null}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","TRANSACTION_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"REQUEST_CHAIN_SYSTEM_REQUIRED","status":404,"message":"The organization has no deployed system on chain 1","data":{"id":"DALP-9524","why":"The active organization has no deployed system on its default network.","fix":"Deploy the organization system before using system-scoped APIs.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TRANSACTION_WORKFLOW_OWNED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["TRANSACTION_PREPARATION_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"TRANSACTION_PREPARATION_EXPIRED","status":410,"message":"The transaction preparation has expired","data":{"id":"DALP-12012","why":"The authorization window ended before the prepared operation was finalized.","fix":"Prepare the operation again and authorize the new preparation.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","exec.queue.DEPENDENCY","exec.queue.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of transaction requests visible to the caller, across every chain family this deployment serves. Each row carries `family`: an `evm` row is a queue record with a nonce, a sender address, and eventually a transaction hash; a `canton` row is a durable command submission with a submitting party, an approval decision, and eventually a ledger offset. Narrow on `family` before reading any other field. Select one family with `filter[family]=evm|canton` or a single network with `filter[network]`. `ownership` selects the EVM wallet set only. Filter by status, operation type, sender, or chain on the EVM block, and by `submissionStatus`, `approvalStatus`, `submittingParty`, or `submissionId` on the Canton block; a filter one family does not own excludes that family from the page. Sort defaults to `createdAt` ascending. The call does not query the chain.","summary":"List transaction requests","x-dalp-auth":"session-or-api-key"}},"/api/v2/blockchain-transactions/{transactionHash}":{"get":{"tags":["Transactions"],"operationId":"transactionsV2.read","parameters":[{"name":"transactionHash","in":"path","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"required":true}],"responses":{"200":{"description":"Blockchain transaction named by hash, wrapped in the v2 single-resource envelope. A stored receipt from a queue record the caller owns is returned first. Otherwise the node is queried. `data.receipt` is null while the transaction is still pending.","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"status":{"type":"string","enum":["success","reverted"]},"transactionHash":{"$ref":"#/components/schemas/EthereumHashEncoded"},"blockNumber":{"type":"string"},"blockHash":{"$ref":"#/components/schemas/EthereumHashEncoded"},"from":{"$ref":"#/components/schemas/EvmAddress"},"to":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"contractAddress":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"gasUsed":{"type":"string"},"cumulativeGasUsed":{"type":"string","examples":["21000"]},"effectiveGasPrice":{"type":"string"},"transactionIndex":{"type":"integer"},"logs":{"type":"array","items":{"type":"object","properties":{"address":{"$ref":"#/components/schemas/EvmAddress"},"topics":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHexEncoded"}},"data":{"$ref":"#/components/schemas/EthereumHexEncoded"},"blockNumber":{"type":"string"},"transactionIndex":{"type":"integer"},"logIndex":{"type":"integer"}},"required":["address","topics","data","blockNumber","transactionIndex","logIndex"],"additionalProperties":false}}},"required":["status","transactionHash","blockNumber","blockHash","from","to","contractAddress","gasUsed","cumulativeGasUsed","effectiveGasPrice","transactionIndex","logs"],"additionalProperties":false},{"type":"null"}]},"examples":{"example-1":{"value":{"status":"success","transactionHash":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae","blockNumber":"21458901","blockHash":"0x7f8e9d0c1b2a39485766554433221100ffeeddccbbaa99887766554433221100","from":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","to":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","contractAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","gasUsed":"86421","cumulativeGasUsed":"21000","effectiveGasPrice":"20000000000","transactionIndex":0,"logs":[{"address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","topics":["0x5208"],"data":"0x5208","blockNumber":"21458901","transactionIndex":0,"logIndex":9}]}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","TRANSACTION_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"REQUEST_CHAIN_SYSTEM_REQUIRED","status":404,"message":"The organization has no deployed system on chain 1","data":{"id":"DALP-9524","why":"The active organization has no deployed system on its default network.","fix":"Deploy the organization system before using system-scoped APIs.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TRANSACTION_WORKFLOW_OWNED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["TRANSACTION_PREPARATION_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"TRANSACTION_PREPARATION_EXPIRED","status":410,"message":"The transaction preparation has expired","data":{"id":"DALP-12012","why":"The authorization window ended before the prepared operation was finalized.","fix":"Prepare the operation again and authorize the new preparation.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","TRANSACTION_PROVIDER_READ_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","exec.queue.DEPENDENCY","exec.queue.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the transaction named by `transactionHash` on the selected chain, wrapped in the v2 single-resource envelope. A stored receipt from a queue record the caller owns is returned first. Otherwise the node is queried. `data.receipt` is null while the transaction is still pending.","summary":"Read a blockchain transaction","x-dalp-auth":"session-or-api-key"}},"/api/v2/transaction-requests/{transactionId}":{"get":{"tags":["Transactions"],"operationId":"transactionsV2.status","parameters":[{"name":"transactionId","in":"path","schema":{"type":"string","minLength":1},"required":true}],"responses":{"200":{"description":"Current indexed queue row for the transaction request in the path. Repeat the call until `data.status` is COMPLETED, FAILED, DEAD_LETTER, or CANCELLED. The call does not change the request and does not query the chain.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TransactionStatusOutput"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"family":"evm","transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","kind":"token.mint","status":"COMPLETED","subStatus":null,"transactionHash":"0x5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8","blockNumber":"21458901","errorMessage":null,"createdAt":"2026-03-11T15:58:02.000Z","updatedAt":"2026-03-11T16:02:08.000Z"},"links":{"self":"/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","TRANSACTION_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"REQUEST_CHAIN_SYSTEM_REQUIRED","status":404,"message":"The organization has no deployed system on chain 1","data":{"id":"DALP-9524","why":"The active organization has no deployed system on its default network.","fix":"Deploy the organization system before using system-scoped APIs.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TRANSACTION_WORKFLOW_OWNED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["TRANSACTION_PREPARATION_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"TRANSACTION_PREPARATION_EXPIRED","status":410,"message":"The transaction preparation has expired","data":{"id":"DALP-12012","why":"The authorization window ended before the prepared operation was finalized.","fix":"Prepare the operation again and authorize the new preparation.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","exec.queue.DEPENDENCY","exec.queue.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the current row for `transactionId`, whichever ledger the write was asked of. Narrow on `family` first. On an `evm` row, `transactionHash` and `blockNumber` are null until the request is broadcast and confirmed; repeat the call, or use the status stream, until `status` is COMPLETED, FAILED, DEAD_LETTER, or CANCELLED. On a `canton` row, `transactionId` names a command submission: watch `submissionStatus` until it is `settled`, `expired`, or `failed`, and `approvalStatus` for the owner decision that releases an intent. The call does not change the request and does not query the chain.","summary":"Read transaction-request status","x-dalp-auth":"session-or-api-key"}},"/api/v2/transaction-requests/{transactionId}/stream":{"get":{"tags":["Transactions"],"operationId":"transactionsV2.statusStream","parameters":[{"name":"transactionId","in":"path","schema":{"type":"string","minLength":1},"required":true}],"responses":{"200":{"description":"SSE snapshots of one EVM transaction-request row. Every event carries `family: \"evm\"`. A Canton submission id is rejected with a typed error: this stream is driven by the EVM queue's change feed and Canton submissions have none; poll GET /transaction-requests/{transactionId} instead. The first event is the current queue state. Later events repeat that same row shape only when `status`, `subStatus`, `transactionHash`, or `errorMessage` changes. The stream ends after an event whose `status` is COMPLETED, FAILED, DEAD_LETTER, or CANCELLED. If the first event is already terminal, it is the only event. The stream also ends after 180 seconds while the request is still in flight. Treat a terminal event as the settlement result. After a non-terminal close, read GET /transaction-requests/{transactionId} or open this stream again. The body carries no error events.","content":{"text/event-stream":{"schema":{"anyOf":[{"type":"object","properties":{"family":{"type":"string","enum":["evm"]},"transactionId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"kind":{"type":"string","minLength":1},"status":{"type":"string","enum":["RECEIVED","QUEUED","AWAITING_WORKFLOW","PREPARING","PENDING_APPROVAL","SIGNING","BROADCASTING","CONFIRMING","COMPLETED","FAILED","DEAD_LETTER","CANCELLED"],"description":"Current state in the transaction request lifecycle"},"subStatus":{"anyOf":[{"type":"string"},{"type":"null"}]},"fromAddress":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"contractAddress":{"anyOf":[{"type":"string"},{"type":"null"}]},"chainId":{"type":"integer","exclusiveMinimum":0,"description":"EVM chain identifier.","examples":[11155111]},"transactionHash":{"anyOf":[{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},{"type":"null"}]},"blockNumber":{"anyOf":[{"type":"string"},{"type":"null"}]},"errorMessage":{"anyOf":[{"type":"string"},{"type":"null"}]},"receipt":{"anyOf":[{"type":"object","properties":{"status":{"type":"string","enum":["success","reverted"]},"transactionHash":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"blockNumber":{"type":"string"},"blockHash":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"from":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"to":{"anyOf":[{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},{"type":"null"}]},"contractAddress":{"anyOf":[{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},{"type":"null"}]},"gasUsed":{"type":"string"},"cumulativeGasUsed":{"type":"string","examples":["21000"]},"effectiveGasPrice":{"type":"string"},"transactionIndex":{"type":"integer"},"logs":{"type":"array","items":{"type":"object","properties":{"address":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"topics":{"type":"array","items":{"type":"string","minLength":2,"description":"A valid Ethereum hex string starting with 0x","examples":["0x5208"]}},"data":{"type":"string","minLength":2,"description":"A valid Ethereum hex string starting with 0x","examples":["0x5208"]},"blockNumber":{"type":"string"},"transactionIndex":{"type":"integer"},"logIndex":{"type":"integer"}},"required":["address","topics","data","blockNumber","transactionIndex","logIndex"],"additionalProperties":true}}},"required":["status","transactionHash","blockNumber","blockHash","from","to","contractAddress","gasUsed","cumulativeGasUsed","effectiveGasPrice","transactionIndex","logs"],"additionalProperties":true},{"type":"null"}]},"result":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/JsonValue"}},"steps":{"type":"array","items":{"type":"object","properties":{"transactionId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"status":{"type":"string","enum":["RECEIVED","QUEUED","AWAITING_WORKFLOW","PREPARING","PENDING_APPROVAL","SIGNING","BROADCASTING","CONFIRMING","COMPLETED","FAILED","DEAD_LETTER","CANCELLED"],"description":"Current state in the transaction request lifecycle"},"transactionHash":{"anyOf":[{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},{"type":"null"}]},"errorMessage":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["transactionId","status","transactionHash","errorMessage"],"additionalProperties":true,"description":"One call of a chained write: its own transaction request id (readable alone), its queue state (COMPLETED landed on chain, FAILED did not), its hash once broadcast, and its failure text."}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"contractError":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","description":"Stable catalog code for the decoded contract revert, such as DALP-1106."},"args":{"type":"object","additionalProperties":{"type":"string"},"description":"Decoded revert arguments as raw base-unit strings, keyed by the catalog template name."},"why":{"type":"string","description":"Explanation of why the contract reverted."},"message":{"type":"string","description":"Short headline for the contract revert."},"fix":{"type":"string","description":"Suggested next action when the catalog entry provides one."}},"required":["id","args","why","message"],"additionalProperties":true},{"type":"null"}],"description":"Decoded catalog revert, present only after an async-settled failure maps to a catalog entry."},"activeRequirement":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","description":"Identifier of the open funding requirement."},"role":{"type":"string","description":"Which wallet the chain refused, in operator terms. For a day-two write this is `queued-write-eoa`."},"subjectOwner":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Whose wallet must be funded: `caller`, `organisation`, or `platform`. Null for rows recorded before ownership was tracked."},"chainId":{"type":"integer","description":"Chain the refused broadcast targeted."},"address":{"type":"string","description":"Address whose balance settles the ask."},"nativeCurrency":{"type":"object","properties":{"name":{"type":"string","description":"Full name of the chain's native currency."},"symbol":{"type":"string","description":"Ticker of the chain's native currency."},"decimals":{"type":"integer","description":"Decimal places that scale a base-unit amount into a display amount."}},"required":["name","symbol","decimals"],"additionalProperties":true,"description":"The currency both amounts below are denominated in."},"shortfall":{"type":"string","description":"What the refused operation itself needs, in base units, as a decimal integer string."},"recommendedTotal":{"type":"string","description":"What to send, in base units, including any ongoing-ops allowance the gate advised."}},"required":["id","role","subjectOwner","chainId","address","nativeCurrency","shortfall","recommendedTotal"],"additionalProperties":true},{"type":"null"}],"description":"The open gas funding requirement blocking this request, when one exists."},"activeRequirementUnavailable":{"type":"boolean","description":"True when the funding requirement could not be read, so `activeRequirement` reports nothing."},"indexerRebuild":{"anyOf":[{"type":"object","properties":{"chainId":{"type":"integer","description":"Chain whose history the indexer is replaying."},"blockNumber":{"type":"integer","description":"Block the write waits for. The rebuild has to pass it before the request completes."}},"required":["chainId","blockNumber"],"additionalProperties":true},{"type":"null"}],"description":"The indexer rebuild this request is parked on, when one runs."},"indexerRebuildUnavailable":{"type":"boolean","description":"True when the deployment registry could not be read, so `indexerRebuild` reports nothing."}},"required":["family","transactionId","kind","status","subStatus","fromAddress","contractAddress","chainId","transactionHash","blockNumber","errorMessage","createdAt","updatedAt"],"additionalProperties":true},{"type":"object","properties":{"family":{"type":"string","enum":["canton"]},"submissionId":{"type":"string","minLength":1},"networkIdentity":{"type":"string","minLength":1,"description":"Stable platform network identifier"},"submittingParty":{"type":"string","minLength":1,"description":"Canton external party identifier"},"submissionStatus":{"type":"string","enum":["intent","approved","executed","projecting","settled","expired","failed"]},"approvalStatus":{"type":"string","enum":["none","pending","approved","denied"]},"approvalDecidedBy":{"anyOf":[{"type":"string"},{"type":"null"}]},"approvalDecidedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"ledgerSubmissionId":{"type":"string"},"settlementOffset":{"type":"string","pattern":"^\\d+$","description":"Canton ledger update offset reference (decimal string)"},"failureReason":{"type":"object","properties":{"category":{"type":"string","enum":["ledger-rejected","approval-denied","approval-expired","no-longer-applies","signing-denied","not-entitled","internal"]},"code":{"type":"string","minLength":1},"message":{"type":"string","minLength":1}},"required":["category","code","message"],"additionalProperties":true},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["family","submissionId","networkIdentity","submittingParty","submissionStatus","approvalStatus","approvalDecidedBy","approvalDecidedAt","createdAt","updatedAt"],"additionalProperties":true}]},"x-effect-stream":{"encoding":"sse","causeSchema":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["Fail"]},"error":{"not":{}}},"required":["_tag","error"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["Die"]},"defect":{}},"required":["_tag","defect"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["Interrupt"]},"fiberId":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["_tag","fiberId"],"additionalProperties":false}]}},"errorSchema":{"not":{}},"failureEvent":"effect/http-api/stream/failure"},"examples":{"example-1":{"value":{"family":"evm","transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","kind":"token.mint","status":"COMPLETED","subStatus":null,"fromAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","contractAddress":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","chainId":11155111,"transactionHash":"0x5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8","blockNumber":"21458901","errorMessage":null,"receipt":{"status":"success","transactionHash":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae","blockNumber":"21458901","blockHash":"0x7f8e9d0c1b2a39485766554433221100ffeeddccbbaa99887766554433221100","from":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","to":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","contractAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","gasUsed":"86421","cumulativeGasUsed":"21000","effectiveGasPrice":"20000000000","transactionIndex":0,"logs":[{"address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","topics":["0x5208"],"data":"0x5208","blockNumber":"21458901","transactionIndex":0,"logIndex":9}]},"result":{},"steps":[{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"RECEIVED","transactionHash":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae","errorMessage":"Stuck behind a replaced nonce; failed by an operator"}],"createdAt":"2026-03-11T15:58:02.000Z","updatedAt":"2026-03-11T16:02:08.000Z","contractError":null,"activeRequirement":null,"activeRequirementUnavailable":false,"indexerRebuild":{"chainId":1,"blockNumber":0},"indexerRebuildUnavailable":false}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","TRANSACTION_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"REQUEST_CHAIN_SYSTEM_REQUIRED","status":404,"message":"The organization has no deployed system on chain 1","data":{"id":"DALP-9524","why":"The active organization has no deployed system on its default network.","fix":"Deploy the organization system before using system-scoped APIs.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TRANSACTION_WORKFLOW_OWNED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["TRANSACTION_PREPARATION_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"TRANSACTION_PREPARATION_EXPIRED","status":410,"message":"The transaction preparation has expired","data":{"id":"DALP-12012","why":"The authorization window ended before the prepared operation was finalized.","fix":"Prepare the operation again and authorize the new preparation.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","exec.queue.DEPENDENCY","exec.queue.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Opens an SSE stream of the indexed queue row for `transactionId`. Browser callers must be same-origin or the route answers 404 before any event. The 200 body starts with the current snapshot, then emits again only when `status`, `subStatus`, `transactionHash`, or `errorMessage` changes. The stream ends on COMPLETED, FAILED, DEAD_LETTER, or CANCELLED, or after 180 seconds while still in flight.","summary":"Stream transaction-request status","x-dalp-auth":"session-or-api-key"}},"/api/v2/transaction-requests/{transactionId}/cancel":{"post":{"tags":["Transactions"],"operationId":"transactionsV2.cancel","parameters":[{"name":"transactionId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Cancellation outcome: cancelled, cancellation pending with the replacement transaction, or an error.","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"status":{"type":"string","enum":["cancelled"]},"transactionId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"}},"required":["status","transactionId"],"additionalProperties":false},{"type":"object","properties":{"status":{"type":"string","enum":["cancellation_pending"]},"transactionId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"cancelTransactionId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"}},"required":["status","transactionId","cancelTransactionId"],"additionalProperties":false},{"type":"object","properties":{"status":{"type":"string","enum":["error"]},"transactionId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"error":{"type":"string","minLength":1}},"required":["status","transactionId","error"],"additionalProperties":false}],"examples":[{"status":"cancelled","transactionId":"019c0000-0000-7000-8000-000000000010"},{"status":"cancellation_pending","transactionId":"019c0000-0000-7000-8000-000000000010","cancelTransactionId":"019c0000-0000-7000-8000-000000000011"},{"status":"error","transactionId":"019c0000-0000-7000-8000-000000000010","error":"Transaction 019c0000-0000-7000-8000-000000000010 is already COMPLETED and there is nothing left to cancel."}]},"examples":{"example-1":{"value":{"status":"cancelled","transactionId":"019c0000-0000-7000-8000-000000000010"}},"example-2":{"value":{"status":"cancellation_pending","transactionId":"019c0000-0000-7000-8000-000000000010","cancelTransactionId":"019c0000-0000-7000-8000-000000000011"}},"example-3":{"value":{"status":"error","transactionId":"019c0000-0000-7000-8000-000000000010","error":"Transaction 019c0000-0000-7000-8000-000000000010 is already COMPLETED and there is nothing left to cancel."}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","TRANSACTION_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"REQUEST_CHAIN_SYSTEM_REQUIRED","status":404,"message":"The organization has no deployed system on chain 1","data":{"id":"DALP-9524","why":"The active organization has no deployed system on its default network.","fix":"Deploy the organization system before using system-scoped APIs.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TRANSACTION_WORKFLOW_OWNED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["TRANSACTION_PREPARATION_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"TRANSACTION_PREPARATION_EXPIRED","status":410,"message":"The transaction preparation has expired","data":{"id":"DALP-12012","why":"The authorization window ended before the prepared operation was finalized.","fix":"Prepare the operation again and authorize the new preparation.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","exec.queue.DEPENDENCY","exec.queue.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Cancels a request that is still on the queue, or one in `DEAD_LETTER`, which the platform stopped following without ever learning whether it ran. The response is returned immediately. The result is `cancelled` when the request leaves the queue at once, `cancellation_pending` when a replacement transaction is in flight, or `error` when the cancel does not start. Repeat the call only if `status` is `error`.","summary":"Cancel a transaction request","x-dalp-auth":"session-or-api-key"}},"/api/v2/transaction-requests/{transactionId}/force-retry":{"post":{"tags":["Transactions"],"operationId":"transactionsV2.forceRetry","parameters":[{"name":"transactionId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The transaction request after the change, with its state, sender, chain, and receipt when present.","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"family":{"type":"string","enum":["evm"]},"transactionId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"kind":{"type":"string","minLength":1},"status":{"$ref":"#/components/schemas/TransactionRequestState"},"subStatus":{"anyOf":[{"type":"string"},{"type":"null"}]},"fromAddress":{"$ref":"#/components/schemas/EvmAddress"},"contractAddress":{"anyOf":[{"type":"string"},{"type":"null"}]},"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"transactionHash":{"anyOf":[{"$ref":"#/components/schemas/EthereumHashEncoded"},{"type":"null"}]},"blockNumber":{"anyOf":[{"type":"string"},{"type":"null"}]},"errorMessage":{"anyOf":[{"type":"string"},{"type":"null"}]},"receipt":{"anyOf":[{"type":"object","properties":{"status":{"type":"string","enum":["success","reverted"]},"transactionHash":{"$ref":"#/components/schemas/EthereumHashEncoded"},"blockNumber":{"type":"string"},"blockHash":{"$ref":"#/components/schemas/EthereumHashEncoded"},"from":{"$ref":"#/components/schemas/EvmAddress"},"to":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"contractAddress":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"gasUsed":{"type":"string"},"cumulativeGasUsed":{"type":"string","examples":["21000"]},"effectiveGasPrice":{"type":"string"},"transactionIndex":{"type":"integer"},"logs":{"type":"array","items":{"type":"object","properties":{"address":{"$ref":"#/components/schemas/EvmAddress"},"topics":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHexEncoded"}},"data":{"$ref":"#/components/schemas/EthereumHexEncoded"},"blockNumber":{"type":"string"},"transactionIndex":{"type":"integer"},"logIndex":{"type":"integer"}},"required":["address","topics","data","blockNumber","transactionIndex","logIndex"],"additionalProperties":false}}},"required":["status","transactionHash","blockNumber","blockHash","from","to","contractAddress","gasUsed","cumulativeGasUsed","effectiveGasPrice","transactionIndex","logs"],"additionalProperties":false},{"type":"null"}]},"result":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/JsonValue"}},"steps":{"type":"array","items":{"$ref":"#/components/schemas/ExecutionChainStepOutcome"}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["family","transactionId","kind","status","subStatus","fromAddress","contractAddress","chainId","transactionHash","blockNumber","errorMessage","createdAt","updatedAt"],"additionalProperties":false},{"type":"object","properties":{"family":{"type":"string","enum":["canton"]},"submissionId":{"type":"string","minLength":1},"networkIdentity":{"$ref":"#/components/schemas/NetworkId"},"submittingParty":{"$ref":"#/components/schemas/CantonPartyId"},"submissionStatus":{"type":"string","enum":["intent","approved","executed","projecting","settled","expired","failed"]},"approvalStatus":{"type":"string","enum":["none","pending","approved","denied"]},"approvalDecidedBy":{"anyOf":[{"type":"string"},{"type":"null"}]},"approvalDecidedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"ledgerSubmissionId":{"type":"string"},"settlementOffset":{"$ref":"#/components/schemas/LedgerOffset"},"failureReason":{"type":"object","properties":{"category":{"type":"string","enum":["ledger-rejected","approval-denied","approval-expired","no-longer-applies","signing-denied","not-entitled","internal"]},"code":{"type":"string","minLength":1},"message":{"type":"string","minLength":1}},"required":["category","code","message"],"additionalProperties":false},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["family","submissionId","networkIdentity","submittingParty","submissionStatus","approvalStatus","approvalDecidedBy","approvalDecidedAt","createdAt","updatedAt"],"additionalProperties":false}],"examples":[{"family":"evm","transactionId":"019c0000-0000-7000-8000-000000000010","kind":"token.mint","status":"FAILED","subStatus":null,"fromAddress":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30","contractAddress":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30","chainId":11155111,"transactionHash":null,"blockNumber":null,"errorMessage":"Stuck behind a replaced nonce; failed by an operator","createdAt":"2026-04-12T09:30:00.000Z","updatedAt":"2026-04-12T09:42:00.000Z"}]},"examples":{"example-1":{"value":{"family":"evm","transactionId":"019c0000-0000-7000-8000-000000000010","kind":"token.mint","status":"FAILED","subStatus":null,"fromAddress":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30","contractAddress":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30","chainId":11155111,"transactionHash":null,"blockNumber":null,"errorMessage":"Stuck behind a replaced nonce; failed by an operator","createdAt":"2026-04-12T09:30:00.000Z","updatedAt":"2026-04-12T09:42:00.000Z"}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","TRANSACTION_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"REQUEST_CHAIN_SYSTEM_REQUIRED","status":404,"message":"The organization has no deployed system on chain 1","data":{"id":"DALP-9524","why":"The active organization has no deployed system on its default network.","fix":"Deploy the organization system before using system-scoped APIs.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TRANSACTION_WORKFLOW_OWNED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["TRANSACTION_PREPARATION_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"TRANSACTION_PREPARATION_EXPIRED","status":410,"message":"The transaction preparation has expired","data":{"id":"DALP-12012","why":"The authorization window ended before the prepared operation was finalized.","fix":"Prepare the operation again and authorize the new preparation.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","exec.queue.DEPENDENCY","exec.queue.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Requeues a FAILED or DEAD_LETTER request and returns it. Optional `gasPrice` overrides the original value, and `reason` records why. You need the organization update permission. A request that is still active answers 409. Poll the status route after this call until the new attempt settles.","summary":"Force-retry a transaction request","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"gasPrice":{"type":"string"},"reason":{"type":"string","minLength":1}},"required":["reason"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/transaction-preparations":{"post":{"tags":["Transactions"],"operationId":"transactionPreparationsV2.prepare","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The durable transaction preparation and whether this request replayed an existing result.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/TransactionPreparationId"},"authorizingCustodyAccountId":{"$ref":"#/components/schemas/CustodyAccountId"},"providerConfigurationId":{"$ref":"#/components/schemas/CustodyProviderConfigurationId"},"ledger":{"type":"string","enum":["evm","canton"]},"network":{"type":"string","minLength":1},"chainId":{"anyOf":[{"$ref":"#/components/schemas/ChainIdEncoded_1"},{"type":"null"}]},"executor":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["EvmTransactionExecutor"]},"ledger":{"type":"string","enum":["evm"]},"kind":{"type":"string","enum":["eoa","smart-account"]},"address":{"$ref":"#/components/schemas/EvmAddress"},"walletId":{"$ref":"#/components/schemas/WalletId"}},"required":["_tag","ledger","kind","address","walletId"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["CantonTransactionExecutor"]},"ledger":{"type":"string","enum":["canton"]},"kind":{"type":"string","enum":["party"]},"partyId":{"type":"string","minLength":1}},"required":["_tag","ledger","kind","partyId"],"additionalProperties":false}]},"ledgerSource":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["EvmLedgerSource"]},"ledger":{"type":"string","enum":["evm"]},"address":{"$ref":"#/components/schemas/EvmAddress"},"walletId":{"$ref":"#/components/schemas/WalletId"}},"required":["_tag","ledger","address","walletId"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["CantonLedgerSource"]},"ledger":{"type":"string","enum":["canton"]},"accountLocator":{"type":"string","minLength":1},"partyId":{"type":"string","minLength":1}},"required":["_tag","ledger","accountLocator","partyId"],"additionalProperties":false}]},"operation":{"type":"object","properties":{"kind":{"type":"string","minLength":1},"contractAddress":{"$ref":"#/components/schemas/EvmAddress"},"callData":{"$ref":"#/components/schemas/EthereumHexEncoded"},"value":{"type":"string","pattern":"^(?:0|[1-9][0-9]*)$"},"speed":{"type":"string","minLength":1},"contractType":{"type":"string","minLength":1},"orderingScope":{"type":"string","enum":["transaction","group","wallet"]},"orderingKey":{"type":"string","minLength":1}},"required":["kind","contractAddress","callData"],"additionalProperties":false},"operationDigest":{"$ref":"#/components/schemas/EthereumHexEncoded"},"preparationDigest":{"$ref":"#/components/schemas/EthereumHexEncoded"},"preparedUserOperation":{"anyOf":[{"type":"object","properties":{"userOperationHash":{"$ref":"#/components/schemas/EthereumHexEncoded"},"previewData":{"type":"object","properties":{"reservationId":{"type":"string","minLength":1},"nonceKey":{"$ref":"#/components/schemas/EthereumHexEncoded"},"nonce":{"$ref":"#/components/schemas/EthereumHexEncoded"},"callGasLimit":{"$ref":"#/components/schemas/EthereumHexEncoded"},"verificationGasLimit":{"$ref":"#/components/schemas/EthereumHexEncoded"},"preVerificationGas":{"$ref":"#/components/schemas/EthereumHexEncoded"},"paymasterVerificationGasLimit":{"$ref":"#/components/schemas/EthereumHexEncoded"},"paymasterPostOpGasLimit":{"$ref":"#/components/schemas/EthereumHexEncoded"},"maxFeePerGas":{"$ref":"#/components/schemas/EthereumHexEncoded"},"maxPriorityFeePerGas":{"$ref":"#/components/schemas/EthereumHexEncoded"},"encodedCallData":{"$ref":"#/components/schemas/EthereumHexEncoded"},"sender":{"$ref":"#/components/schemas/EvmAddress"},"entryPointAddress":{"$ref":"#/components/schemas/EvmAddress"},"chainId":{"type":"integer","exclusiveMinimum":0},"factory":{"$ref":"#/components/schemas/EvmAddress"},"factoryData":{"$ref":"#/components/schemas/EthereumHexEncoded"},"paymaster":{"$ref":"#/components/schemas/EvmAddress"},"paymasterData":{"$ref":"#/components/schemas/EthereumHexEncoded"}},"required":["reservationId","nonceKey","nonce","callGasLimit","verificationGasLimit","preVerificationGas","maxFeePerGas","maxPriorityFeePerGas","encodedCallData"],"additionalProperties":false}},"required":["userOperationHash","previewData"],"additionalProperties":false},{"type":"null"}]},"summary":{"type":"string","minLength":1},"signingMethod":{"type":"string","enum":["managed","eip-1193-transaction","eip-4337-user-operation","eip-712-typed-message"]},"state":{"type":"string","enum":["prepared","submission-claimed","consumed","expired"]},"submissionKind":{"anyOf":[{"type":"string","enum":["provider-handle","eip-1193"]},{"type":"null"}]},"providerHandle":{"anyOf":[{"type":"string"},{"type":"null"}]},"authorizationArtifact":{"anyOf":[{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["ManagedTransactionAuthorization"]},"kind":{"type":"string","enum":["managed"]}},"required":["_tag","kind"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["Eip1193TransactionAuthorization"]},"kind":{"type":"string","enum":["eip-1193-transaction"]},"sender":{"$ref":"#/components/schemas/EvmAddress"},"chainId":{"type":"integer","exclusiveMinimum":0},"nonce":{"type":"integer","minimum":0},"transactionHash":{"anyOf":[{"$ref":"#/components/schemas/EthereumHexEncoded"},{"type":"null"}]}},"required":["_tag","kind","sender","chainId","nonce","transactionHash"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["Eip4337UserOperationAuthorization"]},"kind":{"type":"string","enum":["eip-4337-user-operation"]},"userOperationHash":{"$ref":"#/components/schemas/EthereumHexEncoded"},"signature":{"$ref":"#/components/schemas/EthereumHexEncoded"}},"required":["_tag","kind","userOperationHash","signature"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["TypedMessageAuthorization"]},"kind":{"type":"string","enum":["eip-712-typed-message"]},"signature":{"$ref":"#/components/schemas/EthereumHexEncoded"}},"required":["_tag","kind","signature"],"additionalProperties":false}]},{"type":"null"}]},"transactionRequestId":{"anyOf":[{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},{"type":"null"}]},"expiresAt":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","authorizingCustodyAccountId","providerConfigurationId","ledger","network","chainId","executor","ledgerSource","operation","operationDigest","preparationDigest","preparedUserOperation","summary","signingMethod","state","submissionKind","providerHandle","authorizationArtifact","transactionRequestId","expiresAt","createdAt","updatedAt"],"additionalProperties":false},"examples":{"example-1":{"value":{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","authorizingCustodyAccountId":"019c0000-0000-7000-8000-000000000002","providerConfigurationId":"9f2e6c11-0a74-4b8d-95c3-7e1d48a0b652","ledger":"evm","network":"testnet","chainId":11155111,"executor":{"_tag":"EvmTransactionExecutor","ledger":"evm","kind":"eoa","address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","walletId":"wallet-custody-001"},"ledgerSource":{"_tag":"EvmLedgerSource","ledger":"evm","address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","walletId":"wallet-custody-001"},"operation":{"kind":"hold","contractAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","callData":"0x5208","value":"1000000000000000000","contractType":"TokenFactory","orderingScope":"transaction"},"operationDigest":"0x5208","preparationDigest":"0x5208","preparedUserOperation":null,"summary":"Transfer Northwind shares","signingMethod":"managed","state":"prepared","submissionKind":"provider-handle","providerHandle":null,"authorizationArtifact":{"_tag":"ManagedTransactionAuthorization","kind":"managed"},"transactionRequestId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","expiresAt":"2026-04-20T16:00:00.000Z","createdAt":"2026-08-01T09:00:00.000Z","updatedAt":"2026-08-01T09:00:00.000Z"}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","TRANSACTION_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"REQUEST_CHAIN_SYSTEM_REQUIRED","status":404,"message":"The organization has no deployed system on chain 1","data":{"id":"DALP-9524","why":"The active organization has no deployed system on its default network.","fix":"Deploy the organization system before using system-scoped APIs.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TRANSACTION_PREPARATION_BINDING_CONFLICT","TRANSACTION_WORKFLOW_OWNED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["TRANSACTION_PREPARATION_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"TRANSACTION_PREPARATION_EXPIRED","status":410,"message":"The transaction preparation has expired","data":{"id":"DALP-12012","why":"The authorization window ended before the prepared operation was finalized.","fix":"Prepare the operation again and authorize the new preparation.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","TRANSACTION_PREPARATION_ACCOUNT_INELIGIBLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"TRANSACTION_PREPARATION_ACCOUNT_INELIGIBLE","status":422,"message":"This custody account cannot authorize a transaction preparation","data":{"id":"DALP-14032","why":"A preparation needs an active custody account that you hold in this organization, on the requested network, with a provider that lets you sign yourself. The account this request relies on does not meet those conditions. An account that does not exist, or that another user or organization holds, gets this same answer.","fix":"Prepare the operation with an externally signing custody account that you hold in this organization on the requested network. An account whose keys a managed custody provider holds does not use preparations: send its operations through their regular API routes, and the platform signs them.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","exec.queue.DEPENDENCY","exec.queue.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Selects the exact custody account, executor, source, signing method, operation digest, and expiry for one EVM operation.","summary":"Prepare an account-authorized transaction","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"custodyAccountId":{"$ref":"#/components/schemas/CustodyAccountId"},"executionMode":{"type":"string","enum":["prefer-aa","direct"]},"summary":{"type":"string","minLength":1},"operation":{"type":"object","properties":{"kind":{"type":"string","minLength":1},"contractAddress":{"$ref":"#/components/schemas/EvmAddress"},"callData":{"$ref":"#/components/schemas/EthereumHexEncoded"},"value":{"type":"string","pattern":"^(?:0|[1-9][0-9]*)$"},"speed":{"type":"string","minLength":1},"contractType":{"type":"string","minLength":1},"orderingScope":{"type":"string","enum":["transaction","group","wallet"]},"orderingKey":{"type":"string","minLength":1}},"required":["kind","contractAddress","callData"],"additionalProperties":false}},"required":["custodyAccountId","executionMode","summary","operation"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/transaction-preparations/{preparationId}":{"get":{"tags":["Transactions"],"operationId":"transactionPreparationsV2.read","parameters":[{"name":"preparationId","in":"path","schema":{"type":"string","minLength":1,"description":"Server-prepared transaction authorization identifier","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"required":true}],"responses":{"200":{"description":"The current durable state of one transaction preparation.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/TransactionPreparationId"},"authorizingCustodyAccountId":{"$ref":"#/components/schemas/CustodyAccountId"},"providerConfigurationId":{"$ref":"#/components/schemas/CustodyProviderConfigurationId"},"ledger":{"type":"string","enum":["evm","canton"]},"network":{"type":"string","minLength":1},"chainId":{"anyOf":[{"$ref":"#/components/schemas/ChainIdEncoded_1"},{"type":"null"}]},"executor":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["EvmTransactionExecutor"]},"ledger":{"type":"string","enum":["evm"]},"kind":{"type":"string","enum":["eoa","smart-account"]},"address":{"$ref":"#/components/schemas/EvmAddress"},"walletId":{"$ref":"#/components/schemas/WalletId"}},"required":["_tag","ledger","kind","address","walletId"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["CantonTransactionExecutor"]},"ledger":{"type":"string","enum":["canton"]},"kind":{"type":"string","enum":["party"]},"partyId":{"type":"string","minLength":1}},"required":["_tag","ledger","kind","partyId"],"additionalProperties":false}]},"ledgerSource":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["EvmLedgerSource"]},"ledger":{"type":"string","enum":["evm"]},"address":{"$ref":"#/components/schemas/EvmAddress"},"walletId":{"$ref":"#/components/schemas/WalletId"}},"required":["_tag","ledger","address","walletId"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["CantonLedgerSource"]},"ledger":{"type":"string","enum":["canton"]},"accountLocator":{"type":"string","minLength":1},"partyId":{"type":"string","minLength":1}},"required":["_tag","ledger","accountLocator","partyId"],"additionalProperties":false}]},"operation":{"type":"object","properties":{"kind":{"type":"string","minLength":1},"contractAddress":{"$ref":"#/components/schemas/EvmAddress"},"callData":{"$ref":"#/components/schemas/EthereumHexEncoded"},"value":{"type":"string","pattern":"^(?:0|[1-9][0-9]*)$"},"speed":{"type":"string","minLength":1},"contractType":{"type":"string","minLength":1},"orderingScope":{"type":"string","enum":["transaction","group","wallet"]},"orderingKey":{"type":"string","minLength":1}},"required":["kind","contractAddress","callData"],"additionalProperties":false},"operationDigest":{"$ref":"#/components/schemas/EthereumHexEncoded"},"preparationDigest":{"$ref":"#/components/schemas/EthereumHexEncoded"},"preparedUserOperation":{"anyOf":[{"type":"object","properties":{"userOperationHash":{"$ref":"#/components/schemas/EthereumHexEncoded"},"previewData":{"type":"object","properties":{"reservationId":{"type":"string","minLength":1},"nonceKey":{"$ref":"#/components/schemas/EthereumHexEncoded"},"nonce":{"$ref":"#/components/schemas/EthereumHexEncoded"},"callGasLimit":{"$ref":"#/components/schemas/EthereumHexEncoded"},"verificationGasLimit":{"$ref":"#/components/schemas/EthereumHexEncoded"},"preVerificationGas":{"$ref":"#/components/schemas/EthereumHexEncoded"},"paymasterVerificationGasLimit":{"$ref":"#/components/schemas/EthereumHexEncoded"},"paymasterPostOpGasLimit":{"$ref":"#/components/schemas/EthereumHexEncoded"},"maxFeePerGas":{"$ref":"#/components/schemas/EthereumHexEncoded"},"maxPriorityFeePerGas":{"$ref":"#/components/schemas/EthereumHexEncoded"},"encodedCallData":{"$ref":"#/components/schemas/EthereumHexEncoded"},"sender":{"$ref":"#/components/schemas/EvmAddress"},"entryPointAddress":{"$ref":"#/components/schemas/EvmAddress"},"chainId":{"type":"integer","exclusiveMinimum":0},"factory":{"$ref":"#/components/schemas/EvmAddress"},"factoryData":{"$ref":"#/components/schemas/EthereumHexEncoded"},"paymaster":{"$ref":"#/components/schemas/EvmAddress"},"paymasterData":{"$ref":"#/components/schemas/EthereumHexEncoded"}},"required":["reservationId","nonceKey","nonce","callGasLimit","verificationGasLimit","preVerificationGas","maxFeePerGas","maxPriorityFeePerGas","encodedCallData"],"additionalProperties":false}},"required":["userOperationHash","previewData"],"additionalProperties":false},{"type":"null"}]},"summary":{"type":"string","minLength":1},"signingMethod":{"type":"string","enum":["managed","eip-1193-transaction","eip-4337-user-operation","eip-712-typed-message"]},"state":{"type":"string","enum":["prepared","submission-claimed","consumed","expired"]},"submissionKind":{"anyOf":[{"type":"string","enum":["provider-handle","eip-1193"]},{"type":"null"}]},"providerHandle":{"anyOf":[{"type":"string"},{"type":"null"}]},"authorizationArtifact":{"anyOf":[{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["ManagedTransactionAuthorization"]},"kind":{"type":"string","enum":["managed"]}},"required":["_tag","kind"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["Eip1193TransactionAuthorization"]},"kind":{"type":"string","enum":["eip-1193-transaction"]},"sender":{"$ref":"#/components/schemas/EvmAddress"},"chainId":{"type":"integer","exclusiveMinimum":0},"nonce":{"type":"integer","minimum":0},"transactionHash":{"anyOf":[{"$ref":"#/components/schemas/EthereumHexEncoded"},{"type":"null"}]}},"required":["_tag","kind","sender","chainId","nonce","transactionHash"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["Eip4337UserOperationAuthorization"]},"kind":{"type":"string","enum":["eip-4337-user-operation"]},"userOperationHash":{"$ref":"#/components/schemas/EthereumHexEncoded"},"signature":{"$ref":"#/components/schemas/EthereumHexEncoded"}},"required":["_tag","kind","userOperationHash","signature"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["TypedMessageAuthorization"]},"kind":{"type":"string","enum":["eip-712-typed-message"]},"signature":{"$ref":"#/components/schemas/EthereumHexEncoded"}},"required":["_tag","kind","signature"],"additionalProperties":false}]},{"type":"null"}]},"transactionRequestId":{"anyOf":[{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},{"type":"null"}]},"expiresAt":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","authorizingCustodyAccountId","providerConfigurationId","ledger","network","chainId","executor","ledgerSource","operation","operationDigest","preparationDigest","preparedUserOperation","summary","signingMethod","state","submissionKind","providerHandle","authorizationArtifact","transactionRequestId","expiresAt","createdAt","updatedAt"],"additionalProperties":false},"examples":{"example-1":{"value":{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","authorizingCustodyAccountId":"019c0000-0000-7000-8000-000000000002","providerConfigurationId":"9f2e6c11-0a74-4b8d-95c3-7e1d48a0b652","ledger":"evm","network":"testnet","chainId":11155111,"executor":{"_tag":"EvmTransactionExecutor","ledger":"evm","kind":"eoa","address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","walletId":"wallet-custody-001"},"ledgerSource":{"_tag":"EvmLedgerSource","ledger":"evm","address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","walletId":"wallet-custody-001"},"operation":{"kind":"hold","contractAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","callData":"0x5208","value":"1000000000000000000","contractType":"TokenFactory","orderingScope":"transaction"},"operationDigest":"0x5208","preparationDigest":"0x5208","preparedUserOperation":null,"summary":"Transfer Northwind shares","signingMethod":"managed","state":"prepared","submissionKind":"provider-handle","providerHandle":null,"authorizationArtifact":{"_tag":"ManagedTransactionAuthorization","kind":"managed"},"transactionRequestId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","expiresAt":"2026-04-20T16:00:00.000Z","createdAt":"2026-08-01T09:00:00.000Z","updatedAt":"2026-08-01T09:00:00.000Z"}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","TRANSACTION_NOT_FOUND","TRANSACTION_PREPARATION_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"REQUEST_CHAIN_SYSTEM_REQUIRED","status":404,"message":"The organization has no deployed system on chain 1","data":{"id":"DALP-9524","why":"The active organization has no deployed system on its default network.","fix":"Deploy the organization system before using system-scoped APIs.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TRANSACTION_PREPARATION_BINDING_CONFLICT","TRANSACTION_WORKFLOW_OWNED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["TRANSACTION_PREPARATION_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"TRANSACTION_PREPARATION_EXPIRED","status":410,"message":"The transaction preparation has expired","data":{"id":"DALP-12012","why":"The authorization window ended before the prepared operation was finalized.","fix":"Prepare the operation again and authorize the new preparation.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","TRANSACTION_PREPARATION_ACCOUNT_INELIGIBLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"TRANSACTION_PREPARATION_ACCOUNT_INELIGIBLE","status":422,"message":"This custody account cannot authorize a transaction preparation","data":{"id":"DALP-14032","why":"A preparation needs an active custody account that you hold in this organization, on the requested network, with a provider that lets you sign yourself. The account this request relies on does not meet those conditions. An account that does not exist, or that another user or organization holds, gets this same answer.","fix":"Prepare the operation with an externally signing custody account that you hold in this organization on the requested network. An account whose keys a managed custody provider holds does not use preparations: send its operations through their regular API routes, and the platform signs them.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","exec.queue.DEPENDENCY","exec.queue.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the immutable authorization facts and current submission state for one preparation in the authenticated user and organization scope.","summary":"Read a transaction preparation","x-dalp-auth":"session-or-api-key"}},"/api/v2/transaction-preparations/{preparationId}/claim":{"post":{"tags":["Transactions"],"operationId":"transactionPreparationsV2.claim","parameters":[{"name":"preparationId","in":"path","schema":{"type":"string","minLength":1,"description":"Server-prepared transaction authorization identifier","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The transaction preparation with its authorizing account, executor, and current state.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/TransactionPreparationId"},"authorizingCustodyAccountId":{"$ref":"#/components/schemas/CustodyAccountId"},"providerConfigurationId":{"$ref":"#/components/schemas/CustodyProviderConfigurationId"},"ledger":{"type":"string","enum":["evm","canton"]},"network":{"type":"string","minLength":1},"chainId":{"anyOf":[{"$ref":"#/components/schemas/ChainIdEncoded_1"},{"type":"null"}]},"executor":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["EvmTransactionExecutor"]},"ledger":{"type":"string","enum":["evm"]},"kind":{"type":"string","enum":["eoa","smart-account"]},"address":{"$ref":"#/components/schemas/EvmAddress"},"walletId":{"$ref":"#/components/schemas/WalletId"}},"required":["_tag","ledger","kind","address","walletId"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["CantonTransactionExecutor"]},"ledger":{"type":"string","enum":["canton"]},"kind":{"type":"string","enum":["party"]},"partyId":{"type":"string","minLength":1}},"required":["_tag","ledger","kind","partyId"],"additionalProperties":false}]},"ledgerSource":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["EvmLedgerSource"]},"ledger":{"type":"string","enum":["evm"]},"address":{"$ref":"#/components/schemas/EvmAddress"},"walletId":{"$ref":"#/components/schemas/WalletId"}},"required":["_tag","ledger","address","walletId"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["CantonLedgerSource"]},"ledger":{"type":"string","enum":["canton"]},"accountLocator":{"type":"string","minLength":1},"partyId":{"type":"string","minLength":1}},"required":["_tag","ledger","accountLocator","partyId"],"additionalProperties":false}]},"operation":{"type":"object","properties":{"kind":{"type":"string","minLength":1},"contractAddress":{"$ref":"#/components/schemas/EvmAddress"},"callData":{"$ref":"#/components/schemas/EthereumHexEncoded"},"value":{"type":"string","pattern":"^(?:0|[1-9][0-9]*)$"},"speed":{"type":"string","minLength":1},"contractType":{"type":"string","minLength":1},"orderingScope":{"type":"string","enum":["transaction","group","wallet"]},"orderingKey":{"type":"string","minLength":1}},"required":["kind","contractAddress","callData"],"additionalProperties":false},"operationDigest":{"$ref":"#/components/schemas/EthereumHexEncoded"},"preparationDigest":{"$ref":"#/components/schemas/EthereumHexEncoded"},"preparedUserOperation":{"anyOf":[{"type":"object","properties":{"userOperationHash":{"$ref":"#/components/schemas/EthereumHexEncoded"},"previewData":{"type":"object","properties":{"reservationId":{"type":"string","minLength":1},"nonceKey":{"$ref":"#/components/schemas/EthereumHexEncoded"},"nonce":{"$ref":"#/components/schemas/EthereumHexEncoded"},"callGasLimit":{"$ref":"#/components/schemas/EthereumHexEncoded"},"verificationGasLimit":{"$ref":"#/components/schemas/EthereumHexEncoded"},"preVerificationGas":{"$ref":"#/components/schemas/EthereumHexEncoded"},"paymasterVerificationGasLimit":{"$ref":"#/components/schemas/EthereumHexEncoded"},"paymasterPostOpGasLimit":{"$ref":"#/components/schemas/EthereumHexEncoded"},"maxFeePerGas":{"$ref":"#/components/schemas/EthereumHexEncoded"},"maxPriorityFeePerGas":{"$ref":"#/components/schemas/EthereumHexEncoded"},"encodedCallData":{"$ref":"#/components/schemas/EthereumHexEncoded"},"sender":{"$ref":"#/components/schemas/EvmAddress"},"entryPointAddress":{"$ref":"#/components/schemas/EvmAddress"},"chainId":{"type":"integer","exclusiveMinimum":0},"factory":{"$ref":"#/components/schemas/EvmAddress"},"factoryData":{"$ref":"#/components/schemas/EthereumHexEncoded"},"paymaster":{"$ref":"#/components/schemas/EvmAddress"},"paymasterData":{"$ref":"#/components/schemas/EthereumHexEncoded"}},"required":["reservationId","nonceKey","nonce","callGasLimit","verificationGasLimit","preVerificationGas","maxFeePerGas","maxPriorityFeePerGas","encodedCallData"],"additionalProperties":false}},"required":["userOperationHash","previewData"],"additionalProperties":false},{"type":"null"}]},"summary":{"type":"string","minLength":1},"signingMethod":{"type":"string","enum":["managed","eip-1193-transaction","eip-4337-user-operation","eip-712-typed-message"]},"state":{"type":"string","enum":["prepared","submission-claimed","consumed","expired"]},"submissionKind":{"anyOf":[{"type":"string","enum":["provider-handle","eip-1193"]},{"type":"null"}]},"providerHandle":{"anyOf":[{"type":"string"},{"type":"null"}]},"authorizationArtifact":{"anyOf":[{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["ManagedTransactionAuthorization"]},"kind":{"type":"string","enum":["managed"]}},"required":["_tag","kind"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["Eip1193TransactionAuthorization"]},"kind":{"type":"string","enum":["eip-1193-transaction"]},"sender":{"$ref":"#/components/schemas/EvmAddress"},"chainId":{"type":"integer","exclusiveMinimum":0},"nonce":{"type":"integer","minimum":0},"transactionHash":{"anyOf":[{"$ref":"#/components/schemas/EthereumHexEncoded"},{"type":"null"}]}},"required":["_tag","kind","sender","chainId","nonce","transactionHash"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["Eip4337UserOperationAuthorization"]},"kind":{"type":"string","enum":["eip-4337-user-operation"]},"userOperationHash":{"$ref":"#/components/schemas/EthereumHexEncoded"},"signature":{"$ref":"#/components/schemas/EthereumHexEncoded"}},"required":["_tag","kind","userOperationHash","signature"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["TypedMessageAuthorization"]},"kind":{"type":"string","enum":["eip-712-typed-message"]},"signature":{"$ref":"#/components/schemas/EthereumHexEncoded"}},"required":["_tag","kind","signature"],"additionalProperties":false}]},{"type":"null"}]},"transactionRequestId":{"anyOf":[{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},{"type":"null"}]},"expiresAt":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","authorizingCustodyAccountId","providerConfigurationId","ledger","network","chainId","executor","ledgerSource","operation","operationDigest","preparationDigest","preparedUserOperation","summary","signingMethod","state","submissionKind","providerHandle","authorizationArtifact","transactionRequestId","expiresAt","createdAt","updatedAt"],"additionalProperties":false},"examples":{"example-1":{"value":{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","authorizingCustodyAccountId":"019c0000-0000-7000-8000-000000000002","providerConfigurationId":"9f2e6c11-0a74-4b8d-95c3-7e1d48a0b652","ledger":"evm","network":"testnet","chainId":11155111,"executor":{"_tag":"EvmTransactionExecutor","ledger":"evm","kind":"eoa","address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","walletId":"wallet-custody-001"},"ledgerSource":{"_tag":"EvmLedgerSource","ledger":"evm","address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","walletId":"wallet-custody-001"},"operation":{"kind":"hold","contractAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","callData":"0x5208","value":"1000000000000000000","contractType":"TokenFactory","orderingScope":"transaction"},"operationDigest":"0x5208","preparationDigest":"0x5208","preparedUserOperation":null,"summary":"Transfer Northwind shares","signingMethod":"managed","state":"prepared","submissionKind":"provider-handle","providerHandle":null,"authorizationArtifact":{"_tag":"ManagedTransactionAuthorization","kind":"managed"},"transactionRequestId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","expiresAt":"2026-04-20T16:00:00.000Z","createdAt":"2026-08-01T09:00:00.000Z","updatedAt":"2026-08-01T09:00:00.000Z"}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","TRANSACTION_NOT_FOUND","TRANSACTION_PREPARATION_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"REQUEST_CHAIN_SYSTEM_REQUIRED","status":404,"message":"The organization has no deployed system on chain 1","data":{"id":"DALP-9524","why":"The active organization has no deployed system on its default network.","fix":"Deploy the organization system before using system-scoped APIs.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TRANSACTION_PREPARATION_BINDING_CONFLICT","TRANSACTION_WORKFLOW_OWNED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["TRANSACTION_PREPARATION_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"TRANSACTION_PREPARATION_EXPIRED","status":410,"message":"The transaction preparation has expired","data":{"id":"DALP-12012","why":"The authorization window ended before the prepared operation was finalized.","fix":"Prepare the operation again and authorize the new preparation.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","TRANSACTION_PREPARATION_ACCOUNT_INELIGIBLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"TRANSACTION_PREPARATION_ACCOUNT_INELIGIBLE","status":422,"message":"This custody account cannot authorize a transaction preparation","data":{"id":"DALP-14032","why":"A preparation needs an active custody account that you hold in this organization, on the requested network, with a provider that lets you sign yourself. The account this request relies on does not meet those conditions. An account that does not exist, or that another user or organization holds, gets this same answer.","fix":"Prepare the operation with an externally signing custody account that you hold in this organization on the requested network. An account whose keys a managed custody provider holds does not use preparations: send its operations through their regular API routes, and the platform signs them.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","exec.queue.DEPENDENCY","exec.queue.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Claims the transaction preparation in the path for one submission path, a provider handle or an EIP-1193 wallet transaction. Send a claim key. A second claim with a different key is refused.","summary":"Claim a transaction preparation","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"submissionKind":{"type":"string","enum":["provider-handle"]},"claimKey":{"type":"string","minLength":1}},"required":["submissionKind","claimKey"],"additionalProperties":false},{"type":"object","properties":{"submissionKind":{"type":"string","enum":["eip-1193"]},"claimKey":{"type":"string","minLength":1},"sender":{"$ref":"#/components/schemas/EvmAddress"},"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"nonce":{"type":"integer","minimum":0},"to":{"$ref":"#/components/schemas/EvmAddress"},"value":{"type":"string","pattern":"^(?:0|[1-9][0-9]*)$"},"data":{"$ref":"#/components/schemas/EthereumHexEncoded"},"startBlock":{"type":"integer","minimum":0}},"required":["submissionKind","claimKey","sender","chainId","nonce","to","value","data","startBlock"],"additionalProperties":false}]}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/transaction-preparations/{preparationId}/abandon":{"post":{"tags":["Transactions"],"operationId":"transactionPreparationsV2.abandon","parameters":[{"name":"preparationId","in":"path","schema":{"type":"string","minLength":1,"description":"Server-prepared transaction authorization identifier","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The transaction preparation with its authorizing account, executor, and current state.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/TransactionPreparationId"},"authorizingCustodyAccountId":{"$ref":"#/components/schemas/CustodyAccountId"},"providerConfigurationId":{"$ref":"#/components/schemas/CustodyProviderConfigurationId"},"ledger":{"type":"string","enum":["evm","canton"]},"network":{"type":"string","minLength":1},"chainId":{"anyOf":[{"$ref":"#/components/schemas/ChainIdEncoded_1"},{"type":"null"}]},"executor":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["EvmTransactionExecutor"]},"ledger":{"type":"string","enum":["evm"]},"kind":{"type":"string","enum":["eoa","smart-account"]},"address":{"$ref":"#/components/schemas/EvmAddress"},"walletId":{"$ref":"#/components/schemas/WalletId"}},"required":["_tag","ledger","kind","address","walletId"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["CantonTransactionExecutor"]},"ledger":{"type":"string","enum":["canton"]},"kind":{"type":"string","enum":["party"]},"partyId":{"type":"string","minLength":1}},"required":["_tag","ledger","kind","partyId"],"additionalProperties":false}]},"ledgerSource":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["EvmLedgerSource"]},"ledger":{"type":"string","enum":["evm"]},"address":{"$ref":"#/components/schemas/EvmAddress"},"walletId":{"$ref":"#/components/schemas/WalletId"}},"required":["_tag","ledger","address","walletId"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["CantonLedgerSource"]},"ledger":{"type":"string","enum":["canton"]},"accountLocator":{"type":"string","minLength":1},"partyId":{"type":"string","minLength":1}},"required":["_tag","ledger","accountLocator","partyId"],"additionalProperties":false}]},"operation":{"type":"object","properties":{"kind":{"type":"string","minLength":1},"contractAddress":{"$ref":"#/components/schemas/EvmAddress"},"callData":{"$ref":"#/components/schemas/EthereumHexEncoded"},"value":{"type":"string","pattern":"^(?:0|[1-9][0-9]*)$"},"speed":{"type":"string","minLength":1},"contractType":{"type":"string","minLength":1},"orderingScope":{"type":"string","enum":["transaction","group","wallet"]},"orderingKey":{"type":"string","minLength":1}},"required":["kind","contractAddress","callData"],"additionalProperties":false},"operationDigest":{"$ref":"#/components/schemas/EthereumHexEncoded"},"preparationDigest":{"$ref":"#/components/schemas/EthereumHexEncoded"},"preparedUserOperation":{"anyOf":[{"type":"object","properties":{"userOperationHash":{"$ref":"#/components/schemas/EthereumHexEncoded"},"previewData":{"type":"object","properties":{"reservationId":{"type":"string","minLength":1},"nonceKey":{"$ref":"#/components/schemas/EthereumHexEncoded"},"nonce":{"$ref":"#/components/schemas/EthereumHexEncoded"},"callGasLimit":{"$ref":"#/components/schemas/EthereumHexEncoded"},"verificationGasLimit":{"$ref":"#/components/schemas/EthereumHexEncoded"},"preVerificationGas":{"$ref":"#/components/schemas/EthereumHexEncoded"},"paymasterVerificationGasLimit":{"$ref":"#/components/schemas/EthereumHexEncoded"},"paymasterPostOpGasLimit":{"$ref":"#/components/schemas/EthereumHexEncoded"},"maxFeePerGas":{"$ref":"#/components/schemas/EthereumHexEncoded"},"maxPriorityFeePerGas":{"$ref":"#/components/schemas/EthereumHexEncoded"},"encodedCallData":{"$ref":"#/components/schemas/EthereumHexEncoded"},"sender":{"$ref":"#/components/schemas/EvmAddress"},"entryPointAddress":{"$ref":"#/components/schemas/EvmAddress"},"chainId":{"type":"integer","exclusiveMinimum":0},"factory":{"$ref":"#/components/schemas/EvmAddress"},"factoryData":{"$ref":"#/components/schemas/EthereumHexEncoded"},"paymaster":{"$ref":"#/components/schemas/EvmAddress"},"paymasterData":{"$ref":"#/components/schemas/EthereumHexEncoded"}},"required":["reservationId","nonceKey","nonce","callGasLimit","verificationGasLimit","preVerificationGas","maxFeePerGas","maxPriorityFeePerGas","encodedCallData"],"additionalProperties":false}},"required":["userOperationHash","previewData"],"additionalProperties":false},{"type":"null"}]},"summary":{"type":"string","minLength":1},"signingMethod":{"type":"string","enum":["managed","eip-1193-transaction","eip-4337-user-operation","eip-712-typed-message"]},"state":{"type":"string","enum":["prepared","submission-claimed","consumed","expired"]},"submissionKind":{"anyOf":[{"type":"string","enum":["provider-handle","eip-1193"]},{"type":"null"}]},"providerHandle":{"anyOf":[{"type":"string"},{"type":"null"}]},"authorizationArtifact":{"anyOf":[{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["ManagedTransactionAuthorization"]},"kind":{"type":"string","enum":["managed"]}},"required":["_tag","kind"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["Eip1193TransactionAuthorization"]},"kind":{"type":"string","enum":["eip-1193-transaction"]},"sender":{"$ref":"#/components/schemas/EvmAddress"},"chainId":{"type":"integer","exclusiveMinimum":0},"nonce":{"type":"integer","minimum":0},"transactionHash":{"anyOf":[{"$ref":"#/components/schemas/EthereumHexEncoded"},{"type":"null"}]}},"required":["_tag","kind","sender","chainId","nonce","transactionHash"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["Eip4337UserOperationAuthorization"]},"kind":{"type":"string","enum":["eip-4337-user-operation"]},"userOperationHash":{"$ref":"#/components/schemas/EthereumHexEncoded"},"signature":{"$ref":"#/components/schemas/EthereumHexEncoded"}},"required":["_tag","kind","userOperationHash","signature"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["TypedMessageAuthorization"]},"kind":{"type":"string","enum":["eip-712-typed-message"]},"signature":{"$ref":"#/components/schemas/EthereumHexEncoded"}},"required":["_tag","kind","signature"],"additionalProperties":false}]},{"type":"null"}]},"transactionRequestId":{"anyOf":[{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},{"type":"null"}]},"expiresAt":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","authorizingCustodyAccountId","providerConfigurationId","ledger","network","chainId","executor","ledgerSource","operation","operationDigest","preparationDigest","preparedUserOperation","summary","signingMethod","state","submissionKind","providerHandle","authorizationArtifact","transactionRequestId","expiresAt","createdAt","updatedAt"],"additionalProperties":false},"examples":{"example-1":{"value":{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","authorizingCustodyAccountId":"019c0000-0000-7000-8000-000000000002","providerConfigurationId":"9f2e6c11-0a74-4b8d-95c3-7e1d48a0b652","ledger":"evm","network":"testnet","chainId":11155111,"executor":{"_tag":"EvmTransactionExecutor","ledger":"evm","kind":"eoa","address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","walletId":"wallet-custody-001"},"ledgerSource":{"_tag":"EvmLedgerSource","ledger":"evm","address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","walletId":"wallet-custody-001"},"operation":{"kind":"hold","contractAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","callData":"0x5208","value":"1000000000000000000","contractType":"TokenFactory","orderingScope":"transaction"},"operationDigest":"0x5208","preparationDigest":"0x5208","preparedUserOperation":null,"summary":"Transfer Northwind shares","signingMethod":"managed","state":"prepared","submissionKind":"provider-handle","providerHandle":null,"authorizationArtifact":{"_tag":"ManagedTransactionAuthorization","kind":"managed"},"transactionRequestId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","expiresAt":"2026-04-20T16:00:00.000Z","createdAt":"2026-08-01T09:00:00.000Z","updatedAt":"2026-08-01T09:00:00.000Z"}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","TRANSACTION_NOT_FOUND","TRANSACTION_PREPARATION_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"REQUEST_CHAIN_SYSTEM_REQUIRED","status":404,"message":"The organization has no deployed system on chain 1","data":{"id":"DALP-9524","why":"The active organization has no deployed system on its default network.","fix":"Deploy the organization system before using system-scoped APIs.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TRANSACTION_PREPARATION_BINDING_CONFLICT","TRANSACTION_WORKFLOW_OWNED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["TRANSACTION_PREPARATION_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"TRANSACTION_PREPARATION_EXPIRED","status":410,"message":"The transaction preparation has expired","data":{"id":"DALP-12012","why":"The authorization window ended before the prepared operation was finalized.","fix":"Prepare the operation again and authorize the new preparation.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","TRANSACTION_PREPARATION_ACCOUNT_INELIGIBLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"TRANSACTION_PREPARATION_ACCOUNT_INELIGIBLE","status":422,"message":"This custody account cannot authorize a transaction preparation","data":{"id":"DALP-14032","why":"A preparation needs an active custody account that you hold in this organization, on the requested network, with a provider that lets you sign yourself. The account this request relies on does not meet those conditions. An account that does not exist, or that another user or organization holds, gets this same answer.","fix":"Prepare the operation with an externally signing custody account that you hold in this organization on the requested network. An account whose keys a managed custody provider holds does not use preparations: send its operations through their regular API routes, and the platform signs them.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","exec.queue.DEPENDENCY","exec.queue.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Abandons the transaction preparation in the path so it is not authorized or submitted. The platform returns the preparation in its final state.","summary":"Abandon a transaction preparation","x-dalp-auth":"session-or-api-key"}},"/api/v2/transaction-preparations/{preparationId}/attach":{"post":{"tags":["Transactions"],"operationId":"transactionPreparationsV2.attach","parameters":[{"name":"preparationId","in":"path","schema":{"type":"string","minLength":1,"description":"Server-prepared transaction authorization identifier","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The transaction preparation with its authorizing account, executor, and current state.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/TransactionPreparationId"},"authorizingCustodyAccountId":{"$ref":"#/components/schemas/CustodyAccountId"},"providerConfigurationId":{"$ref":"#/components/schemas/CustodyProviderConfigurationId"},"ledger":{"type":"string","enum":["evm","canton"]},"network":{"type":"string","minLength":1},"chainId":{"anyOf":[{"$ref":"#/components/schemas/ChainIdEncoded_1"},{"type":"null"}]},"executor":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["EvmTransactionExecutor"]},"ledger":{"type":"string","enum":["evm"]},"kind":{"type":"string","enum":["eoa","smart-account"]},"address":{"$ref":"#/components/schemas/EvmAddress"},"walletId":{"$ref":"#/components/schemas/WalletId"}},"required":["_tag","ledger","kind","address","walletId"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["CantonTransactionExecutor"]},"ledger":{"type":"string","enum":["canton"]},"kind":{"type":"string","enum":["party"]},"partyId":{"type":"string","minLength":1}},"required":["_tag","ledger","kind","partyId"],"additionalProperties":false}]},"ledgerSource":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["EvmLedgerSource"]},"ledger":{"type":"string","enum":["evm"]},"address":{"$ref":"#/components/schemas/EvmAddress"},"walletId":{"$ref":"#/components/schemas/WalletId"}},"required":["_tag","ledger","address","walletId"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["CantonLedgerSource"]},"ledger":{"type":"string","enum":["canton"]},"accountLocator":{"type":"string","minLength":1},"partyId":{"type":"string","minLength":1}},"required":["_tag","ledger","accountLocator","partyId"],"additionalProperties":false}]},"operation":{"type":"object","properties":{"kind":{"type":"string","minLength":1},"contractAddress":{"$ref":"#/components/schemas/EvmAddress"},"callData":{"$ref":"#/components/schemas/EthereumHexEncoded"},"value":{"type":"string","pattern":"^(?:0|[1-9][0-9]*)$"},"speed":{"type":"string","minLength":1},"contractType":{"type":"string","minLength":1},"orderingScope":{"type":"string","enum":["transaction","group","wallet"]},"orderingKey":{"type":"string","minLength":1}},"required":["kind","contractAddress","callData"],"additionalProperties":false},"operationDigest":{"$ref":"#/components/schemas/EthereumHexEncoded"},"preparationDigest":{"$ref":"#/components/schemas/EthereumHexEncoded"},"preparedUserOperation":{"anyOf":[{"type":"object","properties":{"userOperationHash":{"$ref":"#/components/schemas/EthereumHexEncoded"},"previewData":{"type":"object","properties":{"reservationId":{"type":"string","minLength":1},"nonceKey":{"$ref":"#/components/schemas/EthereumHexEncoded"},"nonce":{"$ref":"#/components/schemas/EthereumHexEncoded"},"callGasLimit":{"$ref":"#/components/schemas/EthereumHexEncoded"},"verificationGasLimit":{"$ref":"#/components/schemas/EthereumHexEncoded"},"preVerificationGas":{"$ref":"#/components/schemas/EthereumHexEncoded"},"paymasterVerificationGasLimit":{"$ref":"#/components/schemas/EthereumHexEncoded"},"paymasterPostOpGasLimit":{"$ref":"#/components/schemas/EthereumHexEncoded"},"maxFeePerGas":{"$ref":"#/components/schemas/EthereumHexEncoded"},"maxPriorityFeePerGas":{"$ref":"#/components/schemas/EthereumHexEncoded"},"encodedCallData":{"$ref":"#/components/schemas/EthereumHexEncoded"},"sender":{"$ref":"#/components/schemas/EvmAddress"},"entryPointAddress":{"$ref":"#/components/schemas/EvmAddress"},"chainId":{"type":"integer","exclusiveMinimum":0},"factory":{"$ref":"#/components/schemas/EvmAddress"},"factoryData":{"$ref":"#/components/schemas/EthereumHexEncoded"},"paymaster":{"$ref":"#/components/schemas/EvmAddress"},"paymasterData":{"$ref":"#/components/schemas/EthereumHexEncoded"}},"required":["reservationId","nonceKey","nonce","callGasLimit","verificationGasLimit","preVerificationGas","maxFeePerGas","maxPriorityFeePerGas","encodedCallData"],"additionalProperties":false}},"required":["userOperationHash","previewData"],"additionalProperties":false},{"type":"null"}]},"summary":{"type":"string","minLength":1},"signingMethod":{"type":"string","enum":["managed","eip-1193-transaction","eip-4337-user-operation","eip-712-typed-message"]},"state":{"type":"string","enum":["prepared","submission-claimed","consumed","expired"]},"submissionKind":{"anyOf":[{"type":"string","enum":["provider-handle","eip-1193"]},{"type":"null"}]},"providerHandle":{"anyOf":[{"type":"string"},{"type":"null"}]},"authorizationArtifact":{"anyOf":[{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["ManagedTransactionAuthorization"]},"kind":{"type":"string","enum":["managed"]}},"required":["_tag","kind"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["Eip1193TransactionAuthorization"]},"kind":{"type":"string","enum":["eip-1193-transaction"]},"sender":{"$ref":"#/components/schemas/EvmAddress"},"chainId":{"type":"integer","exclusiveMinimum":0},"nonce":{"type":"integer","minimum":0},"transactionHash":{"anyOf":[{"$ref":"#/components/schemas/EthereumHexEncoded"},{"type":"null"}]}},"required":["_tag","kind","sender","chainId","nonce","transactionHash"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["Eip4337UserOperationAuthorization"]},"kind":{"type":"string","enum":["eip-4337-user-operation"]},"userOperationHash":{"$ref":"#/components/schemas/EthereumHexEncoded"},"signature":{"$ref":"#/components/schemas/EthereumHexEncoded"}},"required":["_tag","kind","userOperationHash","signature"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["TypedMessageAuthorization"]},"kind":{"type":"string","enum":["eip-712-typed-message"]},"signature":{"$ref":"#/components/schemas/EthereumHexEncoded"}},"required":["_tag","kind","signature"],"additionalProperties":false}]},{"type":"null"}]},"transactionRequestId":{"anyOf":[{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},{"type":"null"}]},"expiresAt":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","authorizingCustodyAccountId","providerConfigurationId","ledger","network","chainId","executor","ledgerSource","operation","operationDigest","preparationDigest","preparedUserOperation","summary","signingMethod","state","submissionKind","providerHandle","authorizationArtifact","transactionRequestId","expiresAt","createdAt","updatedAt"],"additionalProperties":false},"examples":{"example-1":{"value":{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","authorizingCustodyAccountId":"019c0000-0000-7000-8000-000000000002","providerConfigurationId":"9f2e6c11-0a74-4b8d-95c3-7e1d48a0b652","ledger":"evm","network":"testnet","chainId":11155111,"executor":{"_tag":"EvmTransactionExecutor","ledger":"evm","kind":"eoa","address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","walletId":"wallet-custody-001"},"ledgerSource":{"_tag":"EvmLedgerSource","ledger":"evm","address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","walletId":"wallet-custody-001"},"operation":{"kind":"hold","contractAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","callData":"0x5208","value":"1000000000000000000","contractType":"TokenFactory","orderingScope":"transaction"},"operationDigest":"0x5208","preparationDigest":"0x5208","preparedUserOperation":null,"summary":"Transfer Northwind shares","signingMethod":"managed","state":"prepared","submissionKind":"provider-handle","providerHandle":null,"authorizationArtifact":{"_tag":"ManagedTransactionAuthorization","kind":"managed"},"transactionRequestId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","expiresAt":"2026-04-20T16:00:00.000Z","createdAt":"2026-08-01T09:00:00.000Z","updatedAt":"2026-08-01T09:00:00.000Z"}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","TRANSACTION_NOT_FOUND","TRANSACTION_PREPARATION_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"REQUEST_CHAIN_SYSTEM_REQUIRED","status":404,"message":"The organization has no deployed system on chain 1","data":{"id":"DALP-9524","why":"The active organization has no deployed system on its default network.","fix":"Deploy the organization system before using system-scoped APIs.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TRANSACTION_PREPARATION_BINDING_CONFLICT","TRANSACTION_WORKFLOW_OWNED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["TRANSACTION_PREPARATION_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"TRANSACTION_PREPARATION_EXPIRED","status":410,"message":"The transaction preparation has expired","data":{"id":"DALP-12012","why":"The authorization window ended before the prepared operation was finalized.","fix":"Prepare the operation again and authorize the new preparation.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","TRANSACTION_PREPARATION_ACCOUNT_INELIGIBLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"TRANSACTION_PREPARATION_ACCOUNT_INELIGIBLE","status":422,"message":"This custody account cannot authorize a transaction preparation","data":{"id":"DALP-14032","why":"A preparation needs an active custody account that you hold in this organization, on the requested network, with a provider that lets you sign yourself. The account this request relies on does not meet those conditions. An account that does not exist, or that another user or organization holds, gets this same answer.","fix":"Prepare the operation with an externally signing custody account that you hold in this organization on the requested network. An account whose keys a managed custody provider holds does not use preparations: send its operations through their regular API routes, and the platform signs them.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","exec.queue.DEPENDENCY","exec.queue.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Attaches the external submission to the transaction preparation in the path: either a provider handle or a prepared ERC-4337 user operation. The platform returns the preparation.","summary":"Attach a prepared user operation","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"claimKey":{"type":"string","minLength":1},"providerHandle":{"type":"string","minLength":1}},"required":["claimKey","providerHandle"],"additionalProperties":false},{"type":"object","properties":{"preparedUserOperation":{"type":"object","properties":{"userOperationHash":{"$ref":"#/components/schemas/EthereumHexEncoded"},"previewData":{"type":"object","properties":{"reservationId":{"type":"string","minLength":1},"nonceKey":{"$ref":"#/components/schemas/EthereumHexEncoded"},"nonce":{"$ref":"#/components/schemas/EthereumHexEncoded"},"callGasLimit":{"$ref":"#/components/schemas/EthereumHexEncoded"},"verificationGasLimit":{"$ref":"#/components/schemas/EthereumHexEncoded"},"preVerificationGas":{"$ref":"#/components/schemas/EthereumHexEncoded"},"paymasterVerificationGasLimit":{"$ref":"#/components/schemas/EthereumHexEncoded"},"paymasterPostOpGasLimit":{"$ref":"#/components/schemas/EthereumHexEncoded"},"maxFeePerGas":{"$ref":"#/components/schemas/EthereumHexEncoded"},"maxPriorityFeePerGas":{"$ref":"#/components/schemas/EthereumHexEncoded"},"encodedCallData":{"$ref":"#/components/schemas/EthereumHexEncoded"},"sender":{"$ref":"#/components/schemas/EvmAddress"},"entryPointAddress":{"$ref":"#/components/schemas/EvmAddress"},"chainId":{"type":"integer","exclusiveMinimum":0},"factory":{"$ref":"#/components/schemas/EvmAddress"},"factoryData":{"$ref":"#/components/schemas/EthereumHexEncoded"},"paymaster":{"$ref":"#/components/schemas/EvmAddress"},"paymasterData":{"$ref":"#/components/schemas/EthereumHexEncoded"}},"required":["reservationId","nonceKey","nonce","callGasLimit","verificationGasLimit","preVerificationGas","maxFeePerGas","maxPriorityFeePerGas","encodedCallData"],"additionalProperties":false}},"required":["userOperationHash","previewData"],"additionalProperties":false}},"required":["preparedUserOperation"],"additionalProperties":false}]}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/transaction-preparations/{preparationId}/finalize":{"post":{"tags":["Transactions"],"operationId":"transactionPreparationsV2.finalize","parameters":[{"name":"preparationId","in":"path","schema":{"type":"string","minLength":1,"description":"Server-prepared transaction authorization identifier","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The transaction preparation with its authorizing account, executor, and current state.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/TransactionPreparationId"},"authorizingCustodyAccountId":{"$ref":"#/components/schemas/CustodyAccountId"},"providerConfigurationId":{"$ref":"#/components/schemas/CustodyProviderConfigurationId"},"ledger":{"type":"string","enum":["evm","canton"]},"network":{"type":"string","minLength":1},"chainId":{"anyOf":[{"$ref":"#/components/schemas/ChainIdEncoded_1"},{"type":"null"}]},"executor":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["EvmTransactionExecutor"]},"ledger":{"type":"string","enum":["evm"]},"kind":{"type":"string","enum":["eoa","smart-account"]},"address":{"$ref":"#/components/schemas/EvmAddress"},"walletId":{"$ref":"#/components/schemas/WalletId"}},"required":["_tag","ledger","kind","address","walletId"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["CantonTransactionExecutor"]},"ledger":{"type":"string","enum":["canton"]},"kind":{"type":"string","enum":["party"]},"partyId":{"type":"string","minLength":1}},"required":["_tag","ledger","kind","partyId"],"additionalProperties":false}]},"ledgerSource":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["EvmLedgerSource"]},"ledger":{"type":"string","enum":["evm"]},"address":{"$ref":"#/components/schemas/EvmAddress"},"walletId":{"$ref":"#/components/schemas/WalletId"}},"required":["_tag","ledger","address","walletId"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["CantonLedgerSource"]},"ledger":{"type":"string","enum":["canton"]},"accountLocator":{"type":"string","minLength":1},"partyId":{"type":"string","minLength":1}},"required":["_tag","ledger","accountLocator","partyId"],"additionalProperties":false}]},"operation":{"type":"object","properties":{"kind":{"type":"string","minLength":1},"contractAddress":{"$ref":"#/components/schemas/EvmAddress"},"callData":{"$ref":"#/components/schemas/EthereumHexEncoded"},"value":{"type":"string","pattern":"^(?:0|[1-9][0-9]*)$"},"speed":{"type":"string","minLength":1},"contractType":{"type":"string","minLength":1},"orderingScope":{"type":"string","enum":["transaction","group","wallet"]},"orderingKey":{"type":"string","minLength":1}},"required":["kind","contractAddress","callData"],"additionalProperties":false},"operationDigest":{"$ref":"#/components/schemas/EthereumHexEncoded"},"preparationDigest":{"$ref":"#/components/schemas/EthereumHexEncoded"},"preparedUserOperation":{"anyOf":[{"type":"object","properties":{"userOperationHash":{"$ref":"#/components/schemas/EthereumHexEncoded"},"previewData":{"type":"object","properties":{"reservationId":{"type":"string","minLength":1},"nonceKey":{"$ref":"#/components/schemas/EthereumHexEncoded"},"nonce":{"$ref":"#/components/schemas/EthereumHexEncoded"},"callGasLimit":{"$ref":"#/components/schemas/EthereumHexEncoded"},"verificationGasLimit":{"$ref":"#/components/schemas/EthereumHexEncoded"},"preVerificationGas":{"$ref":"#/components/schemas/EthereumHexEncoded"},"paymasterVerificationGasLimit":{"$ref":"#/components/schemas/EthereumHexEncoded"},"paymasterPostOpGasLimit":{"$ref":"#/components/schemas/EthereumHexEncoded"},"maxFeePerGas":{"$ref":"#/components/schemas/EthereumHexEncoded"},"maxPriorityFeePerGas":{"$ref":"#/components/schemas/EthereumHexEncoded"},"encodedCallData":{"$ref":"#/components/schemas/EthereumHexEncoded"},"sender":{"$ref":"#/components/schemas/EvmAddress"},"entryPointAddress":{"$ref":"#/components/schemas/EvmAddress"},"chainId":{"type":"integer","exclusiveMinimum":0},"factory":{"$ref":"#/components/schemas/EvmAddress"},"factoryData":{"$ref":"#/components/schemas/EthereumHexEncoded"},"paymaster":{"$ref":"#/components/schemas/EvmAddress"},"paymasterData":{"$ref":"#/components/schemas/EthereumHexEncoded"}},"required":["reservationId","nonceKey","nonce","callGasLimit","verificationGasLimit","preVerificationGas","maxFeePerGas","maxPriorityFeePerGas","encodedCallData"],"additionalProperties":false}},"required":["userOperationHash","previewData"],"additionalProperties":false},{"type":"null"}]},"summary":{"type":"string","minLength":1},"signingMethod":{"type":"string","enum":["managed","eip-1193-transaction","eip-4337-user-operation","eip-712-typed-message"]},"state":{"type":"string","enum":["prepared","submission-claimed","consumed","expired"]},"submissionKind":{"anyOf":[{"type":"string","enum":["provider-handle","eip-1193"]},{"type":"null"}]},"providerHandle":{"anyOf":[{"type":"string"},{"type":"null"}]},"authorizationArtifact":{"anyOf":[{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["ManagedTransactionAuthorization"]},"kind":{"type":"string","enum":["managed"]}},"required":["_tag","kind"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["Eip1193TransactionAuthorization"]},"kind":{"type":"string","enum":["eip-1193-transaction"]},"sender":{"$ref":"#/components/schemas/EvmAddress"},"chainId":{"type":"integer","exclusiveMinimum":0},"nonce":{"type":"integer","minimum":0},"transactionHash":{"anyOf":[{"$ref":"#/components/schemas/EthereumHexEncoded"},{"type":"null"}]}},"required":["_tag","kind","sender","chainId","nonce","transactionHash"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["Eip4337UserOperationAuthorization"]},"kind":{"type":"string","enum":["eip-4337-user-operation"]},"userOperationHash":{"$ref":"#/components/schemas/EthereumHexEncoded"},"signature":{"$ref":"#/components/schemas/EthereumHexEncoded"}},"required":["_tag","kind","userOperationHash","signature"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["TypedMessageAuthorization"]},"kind":{"type":"string","enum":["eip-712-typed-message"]},"signature":{"$ref":"#/components/schemas/EthereumHexEncoded"}},"required":["_tag","kind","signature"],"additionalProperties":false}]},{"type":"null"}]},"transactionRequestId":{"anyOf":[{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},{"type":"null"}]},"expiresAt":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","authorizingCustodyAccountId","providerConfigurationId","ledger","network","chainId","executor","ledgerSource","operation","operationDigest","preparationDigest","preparedUserOperation","summary","signingMethod","state","submissionKind","providerHandle","authorizationArtifact","transactionRequestId","expiresAt","createdAt","updatedAt"],"additionalProperties":false},"examples":{"example-1":{"value":{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","authorizingCustodyAccountId":"019c0000-0000-7000-8000-000000000002","providerConfigurationId":"9f2e6c11-0a74-4b8d-95c3-7e1d48a0b652","ledger":"evm","network":"testnet","chainId":11155111,"executor":{"_tag":"EvmTransactionExecutor","ledger":"evm","kind":"eoa","address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","walletId":"wallet-custody-001"},"ledgerSource":{"_tag":"EvmLedgerSource","ledger":"evm","address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","walletId":"wallet-custody-001"},"operation":{"kind":"hold","contractAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","callData":"0x5208","value":"1000000000000000000","contractType":"TokenFactory","orderingScope":"transaction"},"operationDigest":"0x5208","preparationDigest":"0x5208","preparedUserOperation":null,"summary":"Transfer Northwind shares","signingMethod":"managed","state":"prepared","submissionKind":"provider-handle","providerHandle":null,"authorizationArtifact":{"_tag":"ManagedTransactionAuthorization","kind":"managed"},"transactionRequestId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","expiresAt":"2026-04-20T16:00:00.000Z","createdAt":"2026-08-01T09:00:00.000Z","updatedAt":"2026-08-01T09:00:00.000Z"}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","TRANSACTION_NOT_FOUND","TRANSACTION_PREPARATION_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"REQUEST_CHAIN_SYSTEM_REQUIRED","status":404,"message":"The organization has no deployed system on chain 1","data":{"id":"DALP-9524","why":"The active organization has no deployed system on its default network.","fix":"Deploy the organization system before using system-scoped APIs.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TRANSACTION_PREPARATION_BINDING_CONFLICT","TRANSACTION_WORKFLOW_OWNED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["TRANSACTION_PREPARATION_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"TRANSACTION_PREPARATION_EXPIRED","status":410,"message":"The transaction preparation has expired","data":{"id":"DALP-12012","why":"The authorization window ended before the prepared operation was finalized.","fix":"Prepare the operation again and authorize the new preparation.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","TRANSACTION_PREPARATION_ACCOUNT_INELIGIBLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"TRANSACTION_PREPARATION_ACCOUNT_INELIGIBLE","status":422,"message":"This custody account cannot authorize a transaction preparation","data":{"id":"DALP-14032","why":"A preparation needs an active custody account that you hold in this organization, on the requested network, with a provider that lets you sign yourself. The account this request relies on does not meet those conditions. An account that does not exist, or that another user or organization holds, gets this same answer.","fix":"Prepare the operation with an externally signing custody account that you hold in this organization on the requested network. An account whose keys a managed custody provider holds does not use preparations: send its operations through their regular API routes, and the platform signs them.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","exec.queue.DEPENDENCY","exec.queue.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Finalizes the transaction preparation in the path with its authorization artifact: a managed authorization, an EIP-1193 transaction, or an ERC-4337 user operation. The platform returns the preparation.","summary":"Finalize a transaction preparation","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"artifact":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["ManagedTransactionAuthorization"]},"kind":{"type":"string","enum":["managed"]}},"required":["_tag","kind"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["Eip1193TransactionAuthorization"]},"kind":{"type":"string","enum":["eip-1193-transaction"]},"sender":{"$ref":"#/components/schemas/EvmAddress"},"chainId":{"type":"integer","exclusiveMinimum":0},"nonce":{"type":"integer","minimum":0},"transactionHash":{"anyOf":[{"$ref":"#/components/schemas/EthereumHexEncoded"},{"type":"null"}]}},"required":["_tag","kind","sender","chainId","nonce","transactionHash"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["Eip4337UserOperationAuthorization"]},"kind":{"type":"string","enum":["eip-4337-user-operation"]},"userOperationHash":{"$ref":"#/components/schemas/EthereumHexEncoded"},"signature":{"$ref":"#/components/schemas/EthereumHexEncoded"}},"required":["_tag","kind","userOperationHash","signature"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["TypedMessageAuthorization"]},"kind":{"type":"string","enum":["eip-712-typed-message"]},"signature":{"$ref":"#/components/schemas/EthereumHexEncoded"}},"required":["_tag","kind","signature"],"additionalProperties":false}]}},"required":["artifact"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/system/paymasters":{"get":{"tags":["Transaction funding"],"operationId":"systemAaV2.paymasterList","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000}},"allOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"object","properties":{"eq":{"anyOf":[{"type":"string"},{"type":"number"}]},"ne":{"anyOf":[{"type":"string"},{"type":"number"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]}},"additionalProperties":false}]}}]},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true}],"responses":{"200":{"description":"One page of indexed system paymasters on the selected chain. Sort defaults to createdAt descending. The call does not query the chain.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"organizationId":{"$ref":"#/components/schemas/OrganizationId"},"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"address":{"$ref":"#/components/schemas/EvmAddress"},"enabled":{"type":"boolean"},"deposit":{"anyOf":[{"type":"string","pattern":"^-?\\d+$"},{"type":"null"}],"description":"The paymaster's EntryPoint deposit, in wei. Null until the deposit is indexed."},"signerState":{"type":"string","enum":["ready","rotation-pending","degraded"]}},"required":["organizationId","chainId","address","enabled","deposit","signerState"],"additionalProperties":false}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"organizationId":"org_northwind_coffee","chainId":11155111,"address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","enabled":true,"deposit":"1","signerState":"ready"}],"meta":{"total":1,"facets":{}},"links":{"self":"/v2/system/paymasters?sort=-createdAt&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/system/paymasters?sort=-createdAt&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/system/paymasters?sort=-createdAt&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_CHAIN_SYSTEM_REQUIRED","status":404,"message":"The organization has no deployed system on chain 1","data":{"id":"DALP-9524","why":"The active organization has no deployed system on its default network.","fix":"Deploy the organization system before using system-scoped APIs.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","exec.aa.READ_DEPENDENCY"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of indexed system paymasters on the selected chain. Sort defaults to createdAt descending. The call does not query the chain.","summary":"List system paymasters","x-dalp-auth":"session-or-api-key"}},"/api/v2/system/paymasters/config":{"get":{"tags":["Transaction funding"],"operationId":"systemAaV2.paymasterConfigRead","parameters":[],"responses":{"200":{"description":"Single-resource envelope. `data` is the item. `links.self` is its canonical URL. Used for reads and for mutations that return the resource immediately.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"enabled":{"type":"boolean"}},"required":["enabled"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"enabled":true},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants"}}}}}}},"400":{"description":"This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_CHAIN_SYSTEM_REQUIRED","status":404,"message":"The organization has no deployed system on chain 1","data":{"id":"DALP-9524","why":"The active organization has no deployed system on its default network.","fix":"Deploy the organization system before using system-scoped APIs.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","exec.aa.READ_DEPENDENCY"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the organization paymaster policy: whether later user operations are sponsored. The value comes from organization settings, not from the chain.","summary":"Read paymaster configuration","x-dalp-auth":"session-or-api-key"},"put":{"tags":["Transaction funding"],"operationId":"systemAaV2.paymasterConfig","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Single-resource envelope. `data` is the item. `links.self` is its canonical URL. Used for reads and for mutations that return the resource immediately.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"enabled":{"type":"boolean"}},"required":["enabled"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"enabled":true},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TRANSACTION_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","exec.aa.READ_DEPENDENCY","exec.queue.DEPENDENCY"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Replaces the organization paymaster policy and returns the stored value immediately. Send the full configuration. The new policy applies to later user operations, not to operations already in flight.","summary":"Update paymaster configuration","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"enabled":{"type":"boolean"}},"required":["enabled"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/system/paymasters/{address}/deposits":{"post":{"tags":["Transaction funding"],"operationId":"systemAaV2.paymasterDeposit","parameters":[{"name":"address","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous mutation result (HTTP 200). The write settled within the request wait window. `data` is the resulting resource, `meta.txHashes` lists submitted transactions, and `links.self` is the resource URL.","content":{"application/json":{"schema":{"type":"object","properties":{"organizationId":{"$ref":"#/components/schemas/OrganizationId"},"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"address":{"$ref":"#/components/schemas/EvmAddress"},"enabled":{"type":"boolean"},"deposit":{"anyOf":[{"type":"string","pattern":"^-?\\d+$"},{"type":"null"}],"description":"The paymaster's EntryPoint deposit, in wei. Null until the deposit is indexed."},"signerState":{"type":"string","enum":["ready","rotation-pending","degraded"]}},"required":["organizationId","chainId","address","enabled","deposit","signerState"],"additionalProperties":false},"examples":{"example-1":{"value":{"organizationId":"org_northwind_coffee","chainId":11155111,"address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","enabled":true,"deposit":"1","signerState":"ready"}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","OIDC_MFA_INVALID","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_PAYMASTER_NOT_FOUND_ADDRESS_INDEXED_LIST_AVAILABLE_PAYMASTERS_VIA_GET","TRANSACTION_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","OIDC_MFA_UNAVAILABLE","SESSION_RESOLUTION_FAILED","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","exec.aa.READ_DEPENDENCY","exec.queue.DEPENDENCY"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Queues an on-chain write that adds native funds to the paymaster at `address`.","summary":"Fund a paymaster deposit","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"amount":{"type":"string","pattern":"^[1-9][0-9]*$"},"walletVerification":{"$ref":"#/components/schemas/OptionalUserVerification"}},"required":["amount"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/system/paymasters/{address}/balance":{"get":{"tags":["Transaction funding"],"operationId":"systemAaV2.paymasterBalance","parameters":[{"name":"address","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true}],"responses":{"200":{"description":"Single-resource envelope. `data` is the item. `links.self` is its canonical URL. Used for reads and for mutations that return the resource immediately.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"address":{"$ref":"#/components/schemas/EvmAddress"},"depositBalance":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The paymaster's EntryPoint deposit, in wei, as a decimal string. Null until the deposit is indexed.","examples":["8500000000000000000"]}},"required":["address","depositBalance"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","depositBalance":"8500000000000000000"},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants"}}}}}}},"400":{"description":"This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_PAYMASTER_NOT_FOUND_ADDRESS_INDEXED_LIST_AVAILABLE_PAYMASTERS_VIA_GET_V2"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","exec.aa.READ_DEPENDENCY"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the indexed EntryPoint deposit held by the paymaster at `address`. Repeat the call after a deposit if the balance was too low.","summary":"Read a paymaster balance","x-dalp-auth":"session-or-api-key"}},"/api/v2/system/paymasters/{address}/signer-key/rotate":{"post":{"tags":["Transaction funding"],"operationId":"systemAaV2.paymasterRotateKey","parameters":[{"name":"address","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous mutation result (HTTP 200). The write settled within the request wait window. `data` is the resulting resource, `meta.txHashes` lists submitted transactions, and `links.self` is the resource URL.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"anyOf":[{"type":"object","properties":{"state":{"type":"string","enum":["none"]}},"required":["state"],"additionalProperties":false},{"type":"object","properties":{"state":{"type":"string","enum":["pending"]},"requestedAt":{"type":"string"}},"required":["state","requestedAt"],"additionalProperties":false},{"type":"object","properties":{"state":{"type":"string","enum":["promoted"]},"signerAddress":{"$ref":"#/components/schemas/EvmAddress"},"promotedAt":{"type":"string"}},"required":["state","signerAddress","promotedAt"],"additionalProperties":false},{"type":"object","properties":{"state":{"type":"string","enum":["active"],"description":"The paymaster still signs with the signer it was deployed with; no rotation has been recorded."},"signerAddress":{"$ref":"#/components/schemas/EvmAddress"}},"required":["state","signerAddress"],"additionalProperties":false}]},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"state":"none"},"meta":{"txHashes":["0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","OIDC_MFA_INVALID","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_PAYMASTER_SPONSORSHIP_NOT_FOUND_ADDRESS","TRANSACTION_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","OIDC_MFA_UNAVAILABLE","SESSION_RESOLUTION_FAILED","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","exec.aa.READ_DEPENDENCY","exec.queue.DEPENDENCY"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Queues an on-chain write that replaces the signer key for the paymaster at `address`.","summary":"Rotate a paymaster signer key","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MutationInput"}}},"required":false},"x-dalp-auth":"session-or-api-key"}},"/api/v2/system/paymasters/{address}/signer-key/status":{"get":{"tags":["Transaction funding"],"operationId":"systemAaV2.paymasterRotationStatus","parameters":[{"name":"address","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true}],"responses":{"200":{"description":"Single-resource envelope. `data` is the item. `links.self` is its canonical URL. Used for reads and for mutations that return the resource immediately.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"anyOf":[{"type":"object","properties":{"state":{"type":"string","enum":["none"]}},"required":["state"],"additionalProperties":false},{"type":"object","properties":{"state":{"type":"string","enum":["pending"]},"requestedAt":{"type":"string"}},"required":["state","requestedAt"],"additionalProperties":false},{"type":"object","properties":{"state":{"type":"string","enum":["promoted"]},"signerAddress":{"$ref":"#/components/schemas/EvmAddress"},"promotedAt":{"type":"string"}},"required":["state","signerAddress","promotedAt"],"additionalProperties":false},{"type":"object","properties":{"state":{"type":"string","enum":["active"],"description":"The paymaster still signs with the signer it was deployed with; no rotation has been recorded."},"signerAddress":{"$ref":"#/components/schemas/EvmAddress"}},"required":["state","signerAddress"],"additionalProperties":false}]},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"state":"none"},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants"}}}}}}},"400":{"description":"This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_PAYMASTER_SPONSORSHIP_NOT_FOUND_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","exec.aa.READ_DEPENDENCY"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the public address of the active paymaster signer key and when it was last rotated. The private key is never returned. Null fields mean no signer is configured.","summary":"Read paymaster signer-key status","x-dalp-auth":"session-or-api-key"}},"/api/v2/system/payers/{address}/withdrawable":{"get":{"tags":["Transaction funding"],"operationId":"systemAaV2.payerWithdrawable","parameters":[{"name":"address","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"name":"destination","in":"query","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":false}],"responses":{"200":{"description":"The wallet's balance, the reserve it keeps for the transfer, and the withdrawable amount, all in wei as decimal strings.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/PayerWithdrawable"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"payerAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","balance":"500000000000000000","reserve":"1050000000000000","withdrawable":"498950000000000000"},"links":{"self":"/api/v2/system/payers/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/withdrawable"}}}}}}},"400":{"description":"This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","PAYER_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"PAYER_NOT_FOUND","status":404,"message":"0xabababababababababababababababababababab is not a wallet this organization pays gas from on this network","data":{"id":"DALP-14025","why":"Withdrawals move funds out of the organization's relayer, bundler or operator wallet on the request's network. The address is none of them.","fix":"Withdraw from a relayer, bundler or operator wallet listed on the Funding tab of Transaction funding for this network.","retryable":false,"category":"client","payerAddress":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","PAYER_DESTINATION_REFUSED","PAYER_PAYMASTER_WITHDRAWAL_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"PAYER_DESTINATION_REFUSED","status":422,"message":"0xabababababababababababababababababababab cannot receive this withdrawal","data":{"id":"DALP-14028","why":"The destination is the zero address, the wallet the funds would leave, or an address that reverts a plain native transfer. `data.reason` names which.","fix":"Name a different destination address.","retryable":false,"category":"client","destination":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","exec.aa.READ_DEPENDENCY"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the live native balance of the organization's relayer, bundler or operator wallet at `address`, the reserve it keeps to pay for a withdrawal (including a replacement at a raised fee), and the most a withdrawal can move now. Pass `destination` to price the reserve for a transfer to that address, which costs more when it is a contract. A paymaster's EntryPoint deposit is refused, and so is a destination that cannot receive the withdrawal. Repeating the request is safe.","summary":"Read how much can be withdrawn from a payer wallet","x-dalp-auth":"session-or-api-key"}},"/api/v2/system/payers/{address}/withdrawals":{"post":{"tags":["Transaction funding"],"operationId":"systemAaV2.payerWithdraw","parameters":[{"name":"address","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The withdrawal once the transfer settled within the request wait window.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PayerWithdrawal"},"examples":{"example-1":{"value":{"payerAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","destination":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","amount":"10000"}}}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"}}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"},"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","OIDC_MFA_INVALID","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","PAYER_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"PAYER_NOT_FOUND","status":404,"message":"0xabababababababababababababababababababab is not a wallet this organization pays gas from on this network","data":{"id":"DALP-14025","why":"Withdrawals move funds out of the organization's relayer, bundler or operator wallet on the request's network. The address is none of them.","fix":"Withdraw from a relayer, bundler or operator wallet listed on the Funding tab of Transaction funding for this network.","retryable":false,"category":"client","payerAddress":"0xabababababababababababababababababababab"}}]}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","PAYER_DESTINATION_REFUSED","PAYER_PAYMASTER_WITHDRAWAL_UNSUPPORTED","PAYER_WITHDRAWAL_EXCEEDS_AVAILABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"PAYER_DESTINATION_REFUSED","status":422,"message":"0xabababababababababababababababababababab cannot receive this withdrawal","data":{"id":"DALP-14028","why":"The destination is the zero address, the wallet the funds would leave, or an address that reverts a plain native transfer. `data.reason` names which.","fix":"Name a different destination address.","retryable":false,"category":"client","destination":"0xabababababababababababababababababababab"}}]}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","OIDC_MFA_UNAVAILABLE","SESSION_RESOLUTION_FAILED","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","exec.queue.DEPENDENCY"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Queues a transfer of `amount` wei from the organization's relayer, bundler or operator wallet at `address` to `destination`. The wallet signs and pays for the transfer itself. Requires the admin role and a wallet verification. The amount cannot exceed the withdrawable amount the matching GET returns. A paymaster's EntryPoint deposit is refused.","summary":"Withdraw native funds from a payer wallet","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"destination":{"$ref":"#/components/schemas/EvmAddress"},"amount":{"type":"string","pattern":"^[1-9][0-9]*$","description":"The amount to withdraw, in wei, as a decimal string.","examples":["250000000000000000"]},"walletVerification":{"$ref":"#/components/schemas/OptionalUserVerification"}},"required":["destination","amount"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/system/bundler/status":{"get":{"tags":["Transaction funding"],"operationId":"systemAaV2.bundlerStatus","parameters":[],"responses":{"200":{"description":"Single-resource envelope. `data` is the item. `links.self` is its canonical URL. Used for reads and for mutations that return the resource immediately.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/BundlerStatus"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants"}}}}}}},"400":{"description":"This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_CHAIN_SYSTEM_REQUIRED","status":404,"message":"The organization has no deployed system on chain 1","data":{"id":"DALP-9524","why":"The active organization has no deployed system on its default network.","fix":"Deploy the organization system before using system-scoped APIs.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","exec.aa.READ_DEPENDENCY"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the configured bundler wallet address for the organization, or null when none is stored. This is an organization setting, not a live chain probe.","summary":"Read bundler status","x-dalp-auth":"session-or-api-key"}},"/api/v2/system/bundler/balance":{"get":{"tags":["Transaction funding"],"operationId":"systemAaV2.bundlerBalance","parameters":[],"responses":{"200":{"description":"Single-resource envelope. `data` is the item. `links.self` is its canonical URL. Used for reads and for mutations that return the resource immediately.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/BundlerBalance"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","balance":"125000","nativeTokenSymbol":"ETH","nativeTokenDecimals":0},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants"}}}}}}},"400":{"description":"This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_CHAIN_SYSTEM_REQUIRED","status":404,"message":"The organization has no deployed system on chain 1","data":{"id":"DALP-9524","why":"The active organization has no deployed system on its default network.","fix":"Deploy the organization system before using system-scoped APIs.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","exec.aa.READ_DEPENDENCY"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the live native balance of the configured bundler wallet on the selected chain. Repeat the call after a deposit if the balance was too low.","summary":"Read bundler balance","x-dalp-auth":"session-or-api-key"}},"/api/v2/system/refund-splitter/status":{"get":{"tags":["Transaction funding"],"operationId":"systemAaV2.splitterStatus","parameters":[],"responses":{"200":{"description":"Single-resource envelope. `data` is the item. `links.self` is its canonical URL. Used for reads and for mutations that return the resource immediately.","content":{"application/json":{"schema":{"type":"object","properties":{"organizationId":{"$ref":"#/components/schemas/OrganizationId"},"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"address":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}],"description":"Refund splitter addressed for the organization on this chain. Null when none is configured or its chain is inactive."},"balance":{"anyOf":[{"type":"string","pattern":"^-?\\d+$"},{"type":"null"}],"description":"Splitter balance, in wei, from the newest runway snapshot. Null until a snapshot exists."},"warnDays":{"type":"integer","exclusiveMinimum":0},"criticalDays":{"type":"integer","exclusiveMinimum":0},"bps":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Refund share in basis points, as indexed. Null until the splitter's state is indexed."},"sponsorshipEnabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether the splitter sponsors user operations, as indexed. Null until the splitter's state is indexed."}},"required":["organizationId","chainId","address","balance","warnDays","criticalDays","bps","sponsorshipEnabled"],"additionalProperties":false},"examples":{"example-1":{"value":{"organizationId":"org_northwind_coffee","chainId":11155111,"address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","balance":"125000","warnDays":1,"criticalDays":1,"bps":0,"sponsorshipEnabled":false}}}}}},"400":{"description":"This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_CHAIN_SYSTEM_REQUIRED","status":404,"message":"The organization has no deployed system on chain 1","data":{"id":"DALP-9524","why":"The active organization has no deployed system on its default network.","fix":"Deploy the organization system before using system-scoped APIs.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","exec.aa.READ_DEPENDENCY"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the live allocation, sponsorship flag, and runway for the refund splitter on the selected chain. Repeat the call after a deposit or policy change.","summary":"Read refund-splitter status","x-dalp-auth":"session-or-api-key"}},"/api/v2/system/refund-splitter/thresholds":{"get":{"tags":["Transaction funding"],"operationId":"systemAaV2.splitterThresholdsRead","parameters":[],"responses":{"200":{"description":"Single-resource envelope. `data` is the item. `links.self` is its canonical URL. Used for reads and for mutations that return the resource immediately.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"warnDays":{"type":"integer","exclusiveMinimum":0},"criticalDays":{"type":"integer","exclusiveMinimum":0}},"required":["warnDays","criticalDays"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"warnDays":1,"criticalDays":1},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants"}}}}}}},"400":{"description":"This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_CHAIN_SYSTEM_REQUIRED","status":404,"message":"The organization has no deployed system on chain 1","data":{"id":"DALP-9524","why":"The active organization has no deployed system on its default network.","fix":"Deploy the organization system before using system-scoped APIs.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","exec.aa.READ_DEPENDENCY"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the stored low and critical runway thresholds that trigger refill alerts. The values come from organization settings, not from the chain.","summary":"Read refund-splitter thresholds","x-dalp-auth":"session-or-api-key"},"put":{"tags":["Transaction funding"],"operationId":"systemAaV2.splitterThresholds","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Single-resource envelope. `data` is the item. `links.self` is its canonical URL. Used for reads and for mutations that return the resource immediately.","content":{"application/json":{"schema":{"type":"object","properties":{"organizationId":{"$ref":"#/components/schemas/OrganizationId"},"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"address":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}],"description":"Refund splitter addressed for the organization on this chain. Null when none is configured or its chain is inactive."},"balance":{"anyOf":[{"type":"string","pattern":"^-?\\d+$"},{"type":"null"}],"description":"Splitter balance, in wei, from the newest runway snapshot. Null until a snapshot exists."},"warnDays":{"type":"integer","exclusiveMinimum":0},"criticalDays":{"type":"integer","exclusiveMinimum":0},"bps":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Refund share in basis points, as indexed. Null until the splitter's state is indexed."},"sponsorshipEnabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether the splitter sponsors user operations, as indexed. Null until the splitter's state is indexed."}},"required":["organizationId","chainId","address","balance","warnDays","criticalDays","bps","sponsorshipEnabled"],"additionalProperties":false},"examples":{"example-1":{"value":{"organizationId":"org_northwind_coffee","chainId":11155111,"address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","balance":"125000","warnDays":1,"criticalDays":1,"bps":0,"sponsorshipEnabled":false}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TRANSACTION_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","exec.aa.READ_DEPENDENCY","exec.queue.DEPENDENCY"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Replaces the stored low and critical runway thresholds and returns them immediately. The low threshold must be greater than the critical threshold. The new values apply to later runway checks.","summary":"Update refund-splitter thresholds","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"warnDays":{"type":"integer","exclusiveMinimum":0},"criticalDays":{"type":"integer","exclusiveMinimum":0}},"required":["warnDays","criticalDays"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/system/refund-splitter/bps":{"put":{"tags":["Transaction funding"],"operationId":"systemAaV2.splitterBps","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous mutation result (HTTP 200). The write settled within the request wait window. `data` is the resulting resource, `meta.txHashes` lists submitted transactions, and `links.self` is the resource URL.","content":{"application/json":{"schema":{"type":"object","properties":{"organizationId":{"$ref":"#/components/schemas/OrganizationId"},"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"address":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}],"description":"Refund splitter addressed for the organization on this chain. Null when none is configured or its chain is inactive."},"balance":{"anyOf":[{"type":"string","pattern":"^-?\\d+$"},{"type":"null"}],"description":"Splitter balance, in wei, from the newest runway snapshot. Null until a snapshot exists."},"warnDays":{"type":"integer","exclusiveMinimum":0},"criticalDays":{"type":"integer","exclusiveMinimum":0},"bps":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Refund share in basis points, as indexed. Null until the splitter's state is indexed."},"sponsorshipEnabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether the splitter sponsors user operations, as indexed. Null until the splitter's state is indexed."}},"required":["organizationId","chainId","address","balance","warnDays","criticalDays","bps","sponsorshipEnabled"],"additionalProperties":false},"examples":{"example-1":{"value":{"organizationId":"org_northwind_coffee","chainId":11155111,"address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","balance":"125000","warnDays":1,"criticalDays":1,"bps":0,"sponsorshipEnabled":false}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","OIDC_MFA_INVALID","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TRANSACTION_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","OIDC_MFA_UNAVAILABLE","SESSION_RESOLUTION_FAILED","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","exec.aa.READ_DEPENDENCY","exec.queue.DEPENDENCY"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Queues an on-chain write that sets the basis-point split between the platform and the organization.","summary":"Update refund-splitter allocation","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"bps":{"type":"integer","minimum":0,"maximum":10000},"walletVerification":{"$ref":"#/components/schemas/OptionalUserVerification"}},"required":["bps"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/system/refund-splitter/history":{"get":{"tags":["Transaction funding"],"operationId":"systemAaV2.splitterHistory","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000}},"allOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"object","properties":{"eq":{"anyOf":[{"type":"string"},{"type":"number"}]},"ne":{"anyOf":[{"type":"string"},{"type":"number"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]}},"additionalProperties":false}]}}]},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false},{"name":"days","in":"query","schema":{"type":"integer","minimum":1,"maximum":30},"required":false}],"responses":{"200":{"description":"One page of stored daily runway observations for the refund splitter. `days` defaults to 30 and also caps the page size. The call does not query the chain.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"organizationId":{"$ref":"#/components/schemas/OrganizationId"},"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"address":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}],"description":"Refund splitter addressed for the organization on this chain. Null when none is configured or its chain is inactive."},"balance":{"anyOf":[{"type":"string","pattern":"^-?\\d+$"},{"type":"null"}],"description":"Splitter balance, in wei, from the newest runway snapshot. Null until a snapshot exists."},"warnDays":{"type":"integer","exclusiveMinimum":0},"criticalDays":{"type":"integer","exclusiveMinimum":0},"bps":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Refund share in basis points, as indexed. Null until the splitter's state is indexed."},"sponsorshipEnabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Whether the splitter sponsors user operations, as indexed. Null until the splitter's state is indexed."}},"required":["organizationId","chainId","address","balance","warnDays","criticalDays","bps","sponsorshipEnabled"],"additionalProperties":false}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"organizationId":"org_northwind_coffee","chainId":11155111,"address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","balance":"125000","warnDays":1,"criticalDays":1,"bps":0,"sponsorshipEnabled":false}],"meta":{"total":1,"facets":{}},"links":{"self":"/v2/system/refund-splitter/history?days=30&sort=-snapshotAt&page%5Boffset%5D=0&page%5Blimit%5D=30","first":"/v2/system/refund-splitter/history?days=30&sort=-snapshotAt&page%5Boffset%5D=0&page%5Blimit%5D=30","prev":null,"next":null,"last":"/v2/system/refund-splitter/history?days=30&sort=-snapshotAt&page%5Boffset%5D=0&page%5Blimit%5D=30"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_CHAIN_SYSTEM_REQUIRED","status":404,"message":"The organization has no deployed system on chain 1","data":{"id":"DALP-9524","why":"The active organization has no deployed system on its default network.","fix":"Deploy the organization system before using system-scoped APIs.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","exec.aa.READ_DEPENDENCY"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns stored daily runway observations for the refund splitter. `days` defaults to 30 and also caps the page size. The call does not query the chain.","summary":"List refund-splitter runway history","x-dalp-auth":"session-or-api-key"}},"/api/v2/system/runway/snapshots":{"get":{"tags":["Transaction funding"],"operationId":"systemAaV2.runwaySnapshots","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":200},"required":false},{"name":"offset","in":"query","schema":{"type":"integer","minimum":0,"maximum":10000},"required":false}],"responses":{"200":{"description":"One page of runway snapshots and the total count.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"organizationId":{"$ref":"#/components/schemas/OrganizationId"},"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"account":{"type":"string","enum":["bundler","paymaster","splitter"]},"address":{"$ref":"#/components/schemas/EvmAddress"},"available":{"type":"string","pattern":"^-?\\d+$"},"required":{"type":"string","pattern":"^-?\\d+$"},"sevenDayBurn":{"type":"string","pattern":"^-?\\d+$"},"snapshotAt":{"type":"string"},"splitterAddress":{"$ref":"#/components/schemas/EvmAddress"},"splitterUsableForWrite":{"type":"boolean"}},"required":["organizationId","chainId","account","address","available","required","sevenDayBurn","snapshotAt"],"additionalProperties":false}},"total":{"type":"integer","minimum":0}},"required":["data","total"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"organizationId":"org_northwind_coffee","chainId":11155111,"account":"bundler","address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","available":"900000000","required":"1","sevenDayBurn":"1","snapshotAt":"2026-03-16T08:00:00.000Z","splitterAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","splitterUsableForWrite":false}],"total":1}}}}}},"400":{"description":"This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_CHAIN_SYSTEM_REQUIRED","status":404,"message":"The organization has no deployed system on chain 1","data":{"id":"DALP-9524","why":"The active organization has no deployed system on its default network.","fix":"Deploy the organization system before using system-scoped APIs.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","exec.aa.READ_DEPENDENCY"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of funding runway snapshots for the bundler, paymaster, and refund splitter accounts: available and required balance, seven-day burn, and snapshot time. Page with `limit` and `offset`. Repeating the request is safe.","summary":"List funding runway snapshots","x-dalp-auth":"session-or-api-key"}},"/api/v2/exchange-rates/{baseCurrency}/{quoteCurrency}":{"get":{"tags":["Exchange rates"],"operationId":"v2/exchangeRates/read","parameters":[{"name":"baseCurrency","in":"path","schema":{"type":"string","pattern":"^[A-Z]{3}$"},"required":true},{"name":"quoteCurrency","in":"path","schema":{"type":"string","pattern":"^[A-Z]{3}$"},"required":true}],"responses":{"200":{"description":"The latest observation for the requested pair in the v2 single-resource envelope. The route answers 404 when no positive observation exists.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"baseCurrency":{"$ref":"#/components/schemas/FiatCurrency"},"quoteCurrency":{"$ref":"#/components/schemas/FiatCurrency"},"rate":{"type":"number","exclusiveMinimum":0},"effectiveAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["baseCurrency","quoteCurrency","rate","effectiveAt"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"baseCurrency":"EUR","quoteCurrency":"USD","rate":1.0842,"effectiveAt":"2026-03-11T16:02:08.000Z"},"links":{"self":"/v2/exchange-rates/EUR/USD"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","FEEDS_SUBMIT_OBSERVED_AT_TOO_FAR_IN_FUTURE","FEED_PRICE_NOT_REPRESENTABLE","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FEED_SUBMISSION_NOT_AUTHORIZED","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXCHANGE_RATE_NOT_FOUND","FEEDS_FEED_ADDRESS_NOT_FOUND","FEED_ROUND_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"EXCHANGE_RATE_NOT_FOUND","status":404,"message":"Exchange rate not found","data":{"id":"DALP-0116","why":"No active FX feed covers the requested currency pair on the current chain, or the feed exists but has not yet recorded an observed rate.","fix":"Check the supported currencies list to confirm the pair is available. If the pair was recently added, retry after the feed publishes its first observation.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","FEED_ADDON_NOT_INSTALLED","FEED_BATCH_NOT_SUBMITTABLE","FEED_TOPIC_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXCHANGE_RATE_CURRENCY_UNSUPPORTED","FEED_CONTRACT_INVALID"]}},"required":["code"]}],"examples":[{"code":"EXCHANGE_RATE_CURRENCY_UNSUPPORTED","status":422,"message":"No feed on this network prices the currency","data":{"id":"DALP-12247","why":"The exchange-rate graph for the selected network has no feed that quotes the requested currency.","fix":"Use a currency from the supported-currencies list, or add an exchange-rate feed for the currency on this network.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","FEED_DIRECTORY_UNAVAILABLE","FEED_SUBMISSION_SIGNER_AMBIGUOUS","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the latest positive observation for the ISO 4217 pair in the path, wrapped in the v2 single-resource envelope. The route answers 404 when that pair has no observation. Repeat the call after a feed publishes a value.","summary":"Read an exchange rate","x-dalp-auth":"session-or-api-key"}},"/api/v2/exchange-rates":{"get":{"tags":["Exchange rates"],"operationId":"v2/exchangeRates/list","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000},"baseCurrency":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"quoteCurrency":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"rate":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"string"}]},{"type":"object","properties":{"eq":{"anyOf":[{"type":"number"},{"type":"string"}]},"ne":{"anyOf":[{"type":"number"},{"type":"string"}]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"anyOf":[{"type":"number"},{"type":"string"}]},"gte":{"anyOf":[{"type":"number"},{"type":"string"}]},"lt":{"anyOf":[{"type":"number"},{"type":"string"}]},"lte":{"anyOf":[{"type":"number"},{"type":"string"}]},"between":{"type":"string","maxLength":64}},"additionalProperties":false}]},"effectiveAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"updatedAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"One page of configured currency pairs after the indexer deduplicates each base and quote pair. `meta.total` counts every matching pair. `rate` is null until the feed publishes a positive observation. Filter with `filter[baseCurrency]` and `filter[quoteCurrency]`, and search both codes with `filter[q]`.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"baseCurrency":{"$ref":"#/components/schemas/FiatCurrency"},"quoteCurrency":{"$ref":"#/components/schemas/FiatCurrency"},"rate":{"anyOf":[{"type":"number"},{"type":"null"}]},"effectiveAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"updatedAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"feedAddress":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]}},"required":["baseCurrency","quoteCurrency","rate","effectiveAt","updatedAt","feedAddress"],"additionalProperties":false}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"baseCurrency":"EUR","quoteCurrency":"USD","rate":1.0842,"effectiveAt":"2026-03-11T16:02:08.000Z","updatedAt":"2026-03-11T16:02:08.000Z","feedAddress":"0x5FbDB2315678afecb367f032d93F642f64180aa3"}],"meta":{"total":1,"facets":{"baseCurrency":[{"value":"EUR","count":1}],"quoteCurrency":[{"value":"USD","count":1}]}},"links":{"self":"/v2/exchange-rates?sort=-effectiveAt&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/exchange-rates?sort=-effectiveAt&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/exchange-rates?sort=-effectiveAt&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","FEEDS_SUBMIT_OBSERVED_AT_TOO_FAR_IN_FUTURE","FEED_PRICE_NOT_REPRESENTABLE","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FEED_SUBMISSION_NOT_AUTHORIZED","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXCHANGE_RATE_NOT_FOUND","FEEDS_FEED_ADDRESS_NOT_FOUND","FEED_ROUND_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"EXCHANGE_RATE_NOT_FOUND","status":404,"message":"Exchange rate not found","data":{"id":"DALP-0116","why":"No active FX feed covers the requested currency pair on the current chain, or the feed exists but has not yet recorded an observed rate.","fix":"Check the supported currencies list to confirm the pair is available. If the pair was recently added, retry after the feed publishes its first observation.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","FEED_ADDON_NOT_INSTALLED","FEED_BATCH_NOT_SUBMITTABLE","FEED_TOPIC_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXCHANGE_RATE_CURRENCY_UNSUPPORTED","FEED_CONTRACT_INVALID"]}},"required":["code"]}],"examples":[{"code":"EXCHANGE_RATE_CURRENCY_UNSUPPORTED","status":422,"message":"No feed on this network prices the currency","data":{"id":"DALP-12247","why":"The exchange-rate graph for the selected network has no feed that quotes the requested currency.","fix":"Use a currency from the supported-currencies list, or add an exchange-rate feed for the currency on this network.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","FEED_DIRECTORY_UNAVAILABLE","FEED_SUBMISSION_SIGNER_AMBIGUOUS","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of configured currency pairs after the indexer deduplicates each base and quote pair. `page[limit]` defaults to 50 and accepts at most 200. Filter with `filter[baseCurrency]` and `filter[quoteCurrency]`, search both codes with `filter[q]`, and sort by `effectiveAt` descending unless you send `sort`. The call is safe to repeat.","summary":"List exchange rates","x-dalp-auth":"session-or-api-key"}},"/api/v2/exchange-rates/{baseCurrency}/{quoteCurrency}/history":{"get":{"tags":["Exchange rates"],"operationId":"v2/exchangeRates/history","parameters":[{"name":"baseCurrency","in":"path","schema":{"type":"string","pattern":"^[A-Z]{3}$"},"required":true},{"name":"quoteCurrency","in":"path","schema":{"type":"string","pattern":"^[A-Z]{3}$"},"required":true},{"name":"filter","in":"query","schema":{"type":"object","properties":{"rate":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"string"}]},{"type":"object","properties":{"eq":{"anyOf":[{"type":"number"},{"type":"string"}]},"ne":{"anyOf":[{"type":"number"},{"type":"string"}]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"anyOf":[{"type":"number"},{"type":"string"}]},"gte":{"anyOf":[{"type":"number"},{"type":"string"}]},"lt":{"anyOf":[{"type":"number"},{"type":"string"}]},"lte":{"anyOf":[{"type":"number"},{"type":"string"}]},"between":{"type":"string","maxLength":64}},"additionalProperties":false}]},"effectiveAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"One page of historical observations for the path-bound currency pair. `rate` is a decimal string. Sort defaults to `effectiveAt` descending. The page is empty when the pair has no observations in the selected window.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"baseCurrency":{"$ref":"#/components/schemas/FiatCurrency"},"quoteCurrency":{"$ref":"#/components/schemas/FiatCurrency"},"rate":{"type":"string"},"effectiveAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["baseCurrency","quoteCurrency","rate","effectiveAt"],"additionalProperties":false}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"baseCurrency":"EUR","quoteCurrency":"USD","rate":"1.0842","effectiveAt":"2026-03-11T16:02:08.000Z"}],"meta":{"total":1},"links":{"self":"/v2/exchange-rates/EUR/USD/history?sort=-effectiveAt&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/exchange-rates/EUR/USD/history?sort=-effectiveAt&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/exchange-rates/EUR/USD/history?sort=-effectiveAt&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","FEEDS_SUBMIT_OBSERVED_AT_TOO_FAR_IN_FUTURE","FEED_PRICE_NOT_REPRESENTABLE","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FEED_SUBMISSION_NOT_AUTHORIZED","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXCHANGE_RATE_NOT_FOUND","FEEDS_FEED_ADDRESS_NOT_FOUND","FEED_ROUND_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"EXCHANGE_RATE_NOT_FOUND","status":404,"message":"Exchange rate not found","data":{"id":"DALP-0116","why":"No active FX feed covers the requested currency pair on the current chain, or the feed exists but has not yet recorded an observed rate.","fix":"Check the supported currencies list to confirm the pair is available. If the pair was recently added, retry after the feed publishes its first observation.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","FEED_ADDON_NOT_INSTALLED","FEED_BATCH_NOT_SUBMITTABLE","FEED_TOPIC_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXCHANGE_RATE_CURRENCY_UNSUPPORTED","FEED_CONTRACT_INVALID"]}},"required":["code"]}],"examples":[{"code":"EXCHANGE_RATE_CURRENCY_UNSUPPORTED","status":422,"message":"No feed on this network prices the currency","data":{"id":"DALP-12247","why":"The exchange-rate graph for the selected network has no feed that quotes the requested currency.","fix":"Use a currency from the supported-currencies list, or add an exchange-rate feed for the currency on this network.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","FEED_DIRECTORY_UNAVAILABLE","FEED_SUBMISSION_SIGNER_AMBIGUOUS","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of historical observations for the path-bound ISO 4217 pair. Sort defaults to `effectiveAt` descending. The pair is fixed by the path, so currency filters are not accepted here. The page is empty when the window has no observations. The call is safe to repeat.","summary":"List exchange-rate history","x-dalp-auth":"session-or-api-key"}},"/api/v2/exchange-rates/supported-currencies":{"get":{"tags":["Exchange rates"],"operationId":"v2/exchangeRates/supportedCurrencies","parameters":[],"responses":{"200":{"description":"ISO 4217 alpha-3 codes a target-currency write accepts: the provider snapshot of the last 48 hours, or the platform bootstrap codes while no such snapshot exists. The call is safe to repeat.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"providerKey":{"type":"string"},"currencies":{"type":"array","items":{"$ref":"#/components/schemas/FiatCurrency"}}},"required":["providerKey","currencies"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"providerKey":"open-er-api","currencies":["AED","EUR","GBP","JPY","SGD","USD"]},"links":{"self":"/v2/exchange-rates/supported-currencies"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","FEEDS_SUBMIT_OBSERVED_AT_TOO_FAR_IN_FUTURE","FEED_PRICE_NOT_REPRESENTABLE","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FEED_SUBMISSION_NOT_AUTHORIZED","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXCHANGE_RATE_NOT_FOUND","FEEDS_FEED_ADDRESS_NOT_FOUND","FEED_ROUND_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"EXCHANGE_RATE_NOT_FOUND","status":404,"message":"Exchange rate not found","data":{"id":"DALP-0116","why":"No active FX feed covers the requested currency pair on the current chain, or the feed exists but has not yet recorded an observed rate.","fix":"Check the supported currencies list to confirm the pair is available. If the pair was recently added, retry after the feed publishes its first observation.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","FEED_ADDON_NOT_INSTALLED","FEED_BATCH_NOT_SUBMITTABLE","FEED_TOPIC_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXCHANGE_RATE_CURRENCY_UNSUPPORTED","FEED_CONTRACT_INVALID"]}},"required":["code"]}],"examples":[{"code":"EXCHANGE_RATE_CURRENCY_UNSUPPORTED","status":422,"message":"No feed on this network prices the currency","data":{"id":"DALP-12247","why":"The exchange-rate graph for the selected network has no feed that quotes the requested currency.","fix":"Use a currency from the supported-currencies list, or add an exchange-rate feed for the currency on this network.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","FEED_DIRECTORY_UNAVAILABLE","FEED_SUBMISSION_SIGNER_AMBIGUOUS","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the ISO 4217 alpha-3 codes a target-currency write accepts, plus the configured exchange-rate provider key. These are the codes the provider reported in its last 48 hours of refreshes. While no such snapshot exists, the call returns the platform bootstrap codes USD, EUR, SGD, AED and JPY. The call is safe to repeat.","summary":"List supported currencies","x-dalp-auth":"session-or-api-key"}},"/api/v2/system/feed/capabilities":{"get":{"tags":["Price feeds"],"operationId":"v2/system/feeds/capabilities","parameters":[],"responses":{"200":{"description":"Installation state of the feed directory, issuer-signed factory, and adapter factory on the selected chain, wrapped in the v2 single-resource envelope. `address` is null when that component is not installed.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"feedsDirectory":{"type":"object","properties":{"installed":{"type":"boolean"},"address":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]}},"required":["installed","address"],"additionalProperties":false},"issuerSignedScalarFeedFactory":{"type":"object","properties":{"installed":{"type":"boolean"},"address":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"typeId":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["installed","address"],"additionalProperties":false},"scalarFeedAggregatorAdapterFactory":{"type":"object","properties":{"installed":{"type":"boolean"},"address":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"typeId":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["installed","address"],"additionalProperties":false},"priceResolver":{"type":"object","properties":{"installed":{"type":"boolean"},"address":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"typeId":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["installed","address"],"additionalProperties":false},"supportedFeedKinds":{"type":"array","items":{"anyOf":[{"type":"string","enum":["SCALAR"]}]}},"chainId":{"type":"number"}},"required":["feedsDirectory","issuerSignedScalarFeedFactory","scalarFeedAggregatorAdapterFactory","priceResolver","supportedFeedKinds","chainId"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"feedsDirectory":{"installed":true,"address":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"},"issuerSignedScalarFeedFactory":{"installed":true,"address":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30","typeId":"issuer-signed-scalar-feed"},"scalarFeedAggregatorAdapterFactory":{"installed":true,"address":"0xe7f1725E7734CE168F8367e1Bb143E90bb3F0512","typeId":"scalar-feed-aggregator-adapter"},"priceResolver":{"installed":true,"address":"0xe7f1725E7734CE168F8367e1Bb143E90bb3F0512","typeId":"price-resolver"},"supportedFeedKinds":["SCALAR"],"chainId":1},"links":{"self":"/v2/system/feed/capabilities"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","FEEDS_SUBMIT_OBSERVED_AT_TOO_FAR_IN_FUTURE","FEED_PRICE_NOT_REPRESENTABLE","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FEED_SUBMISSION_NOT_AUTHORIZED","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXCHANGE_RATE_NOT_FOUND","FEEDS_FEED_ADDRESS_NOT_FOUND","FEED_ROUND_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"EXCHANGE_RATE_NOT_FOUND","status":404,"message":"Exchange rate not found","data":{"id":"DALP-0116","why":"No active FX feed covers the requested currency pair on the current chain, or the feed exists but has not yet recorded an observed rate.","fix":"Check the supported currencies list to confirm the pair is available. If the pair was recently added, retry after the feed publishes its first observation.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","FEED_ADDON_NOT_INSTALLED","FEED_BATCH_NOT_SUBMITTABLE","FEED_TOPIC_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXCHANGE_RATE_CURRENCY_UNSUPPORTED","FEED_CONTRACT_INVALID"]}},"required":["code"]}],"examples":[{"code":"EXCHANGE_RATE_CURRENCY_UNSUPPORTED","status":422,"message":"No feed on this network prices the currency","data":{"id":"DALP-12247","why":"The exchange-rate graph for the selected network has no feed that quotes the requested currency.","fix":"Use a currency from the supported-currencies list, or add an exchange-rate feed for the currency on this network.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","FEED_DIRECTORY_UNAVAILABLE","FEED_SUBMISSION_SIGNER_AMBIGUOUS","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns whether the feed directory, issuer-signed factory, and adapter factory are installed on the selected chain, wrapped in the v2 single-resource envelope. Addresses are null when a component is not installed. The call is safe to repeat.","summary":"Read feed capabilities","x-dalp-auth":"session-or-api-key"}},"/api/v2/system/feed":{"get":{"tags":["Price feeds"],"operationId":"v2/system/feeds/list","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"feedAddress":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"subject":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"topicId":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"kind":{"anyOf":[{"type":"string","enum":["issuer-signed-scalar","aggregator-adapter","external"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"scope":{"anyOf":[{"type":"string","enum":["global","identity","asset","other"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"isActive":{"anyOf":[{"type":"string","enum":["true","false"]},{"type":"object","properties":{"eq":{"type":"string","enum":["true","false"]},"ne":{"type":"string","enum":["true","false"]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"One page of registered feeds. Filter by subject, topic, kind, scope, or activity, sort by `registeredAt` by default, and search the description with `filter[q]`. `latestValue` is null until the first observation is indexed.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"ref":{"type":"object","properties":{"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"address":{"$ref":"#/components/schemas/EvmAddress"}},"required":["chainId","address"],"additionalProperties":false},"subject":{"$ref":"#/components/schemas/EvmAddress"},"topicId":{"type":"string","pattern":"^-?\\d+$"},"kind":{"type":"string","enum":["issuer-signed-scalar","aggregator-adapter","external"]},"description":{"type":"string","minLength":1},"decimals":{"$ref":"#/components/schemas/DecimalsEncoded"},"driftAllowance":{"type":"number","minimum":0},"active":{"type":"boolean"},"registeredAt":{"$ref":"#/components/schemas/TimestampEncoded"},"scope":{"type":"string","enum":["global","identity","asset","other"]},"adapterAddress":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]}},"required":["ref","subject","topicId","kind","description","decimals","driftAllowance","active","registeredAt","scope","adapterAddress"],"additionalProperties":false}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"ref":{"chainId":11155111,"address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"},"subject":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","topicId":"1","kind":"issuer-signed-scalar","description":"EUR / USD","decimals":8,"driftAllowance":0,"active":true,"registeredAt":"2026-03-04T09:12:41.000Z","scope":"global","adapterAddress":null}],"meta":{"total":1,"facets":{}},"links":{"self":"/v2/system/feed?sort=-registeredAt&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/system/feed?sort=-registeredAt&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/system/feed?sort=-registeredAt&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","FEEDS_SUBMIT_OBSERVED_AT_TOO_FAR_IN_FUTURE","FEED_PRICE_NOT_REPRESENTABLE","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FEED_SUBMISSION_NOT_AUTHORIZED","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXCHANGE_RATE_NOT_FOUND","FEEDS_FEED_ADDRESS_NOT_FOUND","FEED_ROUND_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"EXCHANGE_RATE_NOT_FOUND","status":404,"message":"Exchange rate not found","data":{"id":"DALP-0116","why":"No active FX feed covers the requested currency pair on the current chain, or the feed exists but has not yet recorded an observed rate.","fix":"Check the supported currencies list to confirm the pair is available. If the pair was recently added, retry after the feed publishes its first observation.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","FEED_ADDON_NOT_INSTALLED","FEED_BATCH_NOT_SUBMITTABLE","FEED_TOPIC_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXCHANGE_RATE_CURRENCY_UNSUPPORTED","FEED_CONTRACT_INVALID"]}},"required":["code"]}],"examples":[{"code":"EXCHANGE_RATE_CURRENCY_UNSUPPORTED","status":422,"message":"No feed on this network prices the currency","data":{"id":"DALP-12247","why":"The exchange-rate graph for the selected network has no feed that quotes the requested currency.","fix":"Use a currency from the supported-currencies list, or add an exchange-rate feed for the currency on this network.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","FEED_DIRECTORY_UNAVAILABLE","FEED_SUBMISSION_SIGNER_AMBIGUOUS","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of registered feeds. Filter by subject, topic, kind, scope, or activity, sort by `registeredAt` descending by default, and search the description with `filter[q]`. `latestValue` is null until the first observation is indexed. The call is safe to repeat.","summary":"List feeds","x-dalp-auth":"session-or-api-key"}},"/api/v2/system/feed/resolutions":{"get":{"tags":["Price feeds"],"operationId":"v2/system/feeds/resolve","parameters":[{"name":"subject","in":"query","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"name":"topicId","in":"query","schema":{"type":"string","pattern":"^-?\\d+$"},"required":true}],"responses":{"200":{"description":"Directory mapping for one subject and topic, wrapped in the v2 single-resource envelope. `exists` is false when the directory has no mapping.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"subject":{"$ref":"#/components/schemas/EvmAddress"},"topicId":{"type":"string","pattern":"^-?\\d+$"},"feed":{"anyOf":[{"type":"object","properties":{"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"address":{"$ref":"#/components/schemas/EvmAddress"}},"required":["chainId","address"],"additionalProperties":false},{"type":"null"}]},"exists":{"type":"boolean"}},"required":["subject","topicId","feed","exists"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"subject":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","topicId":"1","feed":{"chainId":11155111,"address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"},"exists":true},"links":{"self":"/v2/system/feed/resolutions?subject=0x0000000000000000000000000000000000000000&topicId=1"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","FEEDS_SUBMIT_OBSERVED_AT_TOO_FAR_IN_FUTURE","FEED_PRICE_NOT_REPRESENTABLE","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FEED_SUBMISSION_NOT_AUTHORIZED","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXCHANGE_RATE_NOT_FOUND","FEEDS_FEED_ADDRESS_NOT_FOUND","FEED_ROUND_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"EXCHANGE_RATE_NOT_FOUND","status":404,"message":"Exchange rate not found","data":{"id":"DALP-0116","why":"No active FX feed covers the requested currency pair on the current chain, or the feed exists but has not yet recorded an observed rate.","fix":"Check the supported currencies list to confirm the pair is available. If the pair was recently added, retry after the feed publishes its first observation.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","FEED_ADDON_NOT_INSTALLED","FEED_BATCH_NOT_SUBMITTABLE","FEED_TOPIC_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXCHANGE_RATE_CURRENCY_UNSUPPORTED","FEED_CONTRACT_INVALID"]}},"required":["code"]}],"examples":[{"code":"EXCHANGE_RATE_CURRENCY_UNSUPPORTED","status":422,"message":"No feed on this network prices the currency","data":{"id":"DALP-12247","why":"The exchange-rate graph for the selected network has no feed that quotes the requested currency.","fix":"Use a currency from the supported-currencies list, or add an exchange-rate feed for the currency on this network.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","FEED_DIRECTORY_UNAVAILABLE","FEED_SUBMISSION_SIGNER_AMBIGUOUS","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the directory mapping for one subject and topic. Send `topicName` or `topicId`. `exists` is false when the directory has no mapping. Indexed fields appear only after the indexer has processed the registration. The call is safe to repeat.","summary":"Resolve a feed","x-dalp-auth":"session-or-api-key"}},"/api/v2/system/feed/{feedAddress}":{"get":{"tags":["Price feeds"],"operationId":"v2/system/feeds/read","parameters":[{"name":"feedAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true}],"responses":{"200":{"description":"Registered feed at `feedAddress` and its latest indexed observation, wrapped in the v2 single-resource envelope.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"ref":{"type":"object","properties":{"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"address":{"$ref":"#/components/schemas/EvmAddress"}},"required":["chainId","address"],"additionalProperties":false},"subject":{"$ref":"#/components/schemas/EvmAddress"},"topicId":{"type":"string","pattern":"^-?\\d+$"},"kind":{"type":"string","enum":["issuer-signed-scalar","aggregator-adapter","external"]},"description":{"type":"string","minLength":1},"decimals":{"$ref":"#/components/schemas/DecimalsEncoded"},"driftAllowance":{"type":"number","minimum":0},"active":{"type":"boolean"},"registeredAt":{"$ref":"#/components/schemas/TimestampEncoded"},"scope":{"type":"string","enum":["global","identity","asset","other"]},"adapterAddress":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]}},"required":["ref","subject","topicId","kind","description","decimals","driftAllowance","active","registeredAt","scope","adapterAddress"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"ref":{"chainId":11155111,"address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"},"subject":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","topicId":"1","kind":"issuer-signed-scalar","description":"EUR / USD","decimals":8,"driftAllowance":0,"active":true,"registeredAt":"2026-03-04T09:12:41.000Z","scope":"global","adapterAddress":null},"links":{"self":"/v2/system/feed/0x5FbDB2315678afecb367f032d93F642f64180aa3"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","FEEDS_SUBMIT_OBSERVED_AT_TOO_FAR_IN_FUTURE","FEED_PRICE_NOT_REPRESENTABLE","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FEED_SUBMISSION_NOT_AUTHORIZED","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXCHANGE_RATE_NOT_FOUND","FEEDS_FEED_ADDRESS_NOT_FOUND","FEED_ROUND_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"EXCHANGE_RATE_NOT_FOUND","status":404,"message":"Exchange rate not found","data":{"id":"DALP-0116","why":"No active FX feed covers the requested currency pair on the current chain, or the feed exists but has not yet recorded an observed rate.","fix":"Check the supported currencies list to confirm the pair is available. If the pair was recently added, retry after the feed publishes its first observation.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","FEED_ADDON_NOT_INSTALLED","FEED_BATCH_NOT_SUBMITTABLE","FEED_TOPIC_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXCHANGE_RATE_CURRENCY_UNSUPPORTED","FEED_CONTRACT_INVALID"]}},"required":["code"]}],"examples":[{"code":"EXCHANGE_RATE_CURRENCY_UNSUPPORTED","status":422,"message":"No feed on this network prices the currency","data":{"id":"DALP-12247","why":"The exchange-rate graph for the selected network has no feed that quotes the requested currency.","fix":"Use a currency from the supported-currencies list, or add an exchange-rate feed for the currency on this network.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","FEED_DIRECTORY_UNAVAILABLE","FEED_SUBMISSION_SIGNER_AMBIGUOUS","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the registered feed at `feedAddress` and its latest indexed observation, wrapped in the v2 single-resource envelope. The route answers 404 when that address is not registered on the selected system and chain. The call is safe to repeat.","summary":"Read a feed","x-dalp-auth":"session-or-api-key"}},"/api/v2/system/feed/{feedAddress}/latest":{"get":{"tags":["Price feeds"],"operationId":"v2/system/feeds/latest","parameters":[{"name":"feedAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true}],"responses":{"200":{"description":"Latest on-chain round for the feed, wrapped in the v2 single-resource envelope. `answer` is the integer observation and `formattedAnswer` applies the feed decimals.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"feedAddress":{"$ref":"#/components/schemas/EvmAddress"},"roundId":{"type":"string"},"answer":{"type":"string"},"decimals":{"type":"number"},"formattedAnswer":{"type":"string"},"startedAt":{"anyOf":[{"type":"string"},{"type":"number","minimum":0}]},"updatedAt":{"anyOf":[{"type":"string"},{"type":"number","minimum":0}]},"answeredInRound":{"type":"string"},"description":{"type":"string"},"version":{"type":"string"}},"required":["feedAddress","roundId","answer","decimals","formattedAnswer","startedAt","updatedAt","answeredInRound","description","version"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"feedAddress":"0x5FbDB2315678afecb367f032d93F642f64180aa3","roundId":"42","answer":"108420000","decimals":8,"formattedAnswer":"1.0842","startedAt":"2026-03-11T16:02:08.000Z","updatedAt":"2026-03-11T16:02:08.000Z","answeredInRound":"42","description":"EUR / USD","version":"1"},"links":{"self":"/v2/system/feed/0x5FbDB2315678afecb367f032d93F642f64180aa3/latest"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","FEEDS_SUBMIT_OBSERVED_AT_TOO_FAR_IN_FUTURE","FEED_PRICE_NOT_REPRESENTABLE","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FEED_SUBMISSION_NOT_AUTHORIZED","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXCHANGE_RATE_NOT_FOUND","FEEDS_FEED_ADDRESS_NOT_FOUND","FEED_ROUND_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"EXCHANGE_RATE_NOT_FOUND","status":404,"message":"Exchange rate not found","data":{"id":"DALP-0116","why":"No active FX feed covers the requested currency pair on the current chain, or the feed exists but has not yet recorded an observed rate.","fix":"Check the supported currencies list to confirm the pair is available. If the pair was recently added, retry after the feed publishes its first observation.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","FEED_ADDON_NOT_INSTALLED","FEED_BATCH_NOT_SUBMITTABLE","FEED_TOPIC_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXCHANGE_RATE_CURRENCY_UNSUPPORTED","FEED_CONTRACT_INVALID"]}},"required":["code"]}],"examples":[{"code":"EXCHANGE_RATE_CURRENCY_UNSUPPORTED","status":422,"message":"No feed on this network prices the currency","data":{"id":"DALP-12247","why":"The exchange-rate graph for the selected network has no feed that quotes the requested currency.","fix":"Use a currency from the supported-currencies list, or add an exchange-rate feed for the currency on this network.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","FEED_DIRECTORY_UNAVAILABLE","FEED_SUBMISSION_SIGNER_AMBIGUOUS","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the latest on-chain round for `feedAddress`, wrapped in the v2 single-resource envelope. `answer` is the integer observation and `formattedAnswer` applies the feed decimals. Repeat the call when you need a newer round.","summary":"Read the latest feed round","x-dalp-auth":"session-or-api-key"}},"/api/v2/system/feed/{feedAddress}/configuration":{"get":{"tags":["Price feeds"],"operationId":"v2/system/feeds/config","parameters":[{"name":"feedAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true}],"responses":{"200":{"description":"Immutable issuer-signed feed settings, wrapped in the v2 single-resource envelope.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"ref":{"type":"object","properties":{"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"address":{"$ref":"#/components/schemas/EvmAddress"}},"required":["chainId","address"],"additionalProperties":false},"kind":{"type":"string","enum":["issuer-signed-scalar","aggregator-adapter","external"]},"description":{"type":"string","minLength":1},"decimals":{"$ref":"#/components/schemas/DecimalsEncoded"},"driftAllowance":{"type":"number","minimum":0},"schemaHash":{"$ref":"#/components/schemas/EthereumHexEncoded"},"historyMode":{"type":"string","enum":["latest-only","bounded","full"]},"historySize":{"type":"integer","minimum":0},"requirePositive":{"type":"boolean"}},"required":["ref","kind","description","decimals","driftAllowance","schemaHash","historyMode","historySize","requirePositive"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"ref":{"chainId":11155111,"address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"},"kind":"issuer-signed-scalar","description":"EUR / USD","decimals":8,"driftAllowance":0,"schemaHash":"0x5208","historyMode":"latest-only","historySize":1,"requirePositive":true},"links":{"self":"/v2/system/feed/0x5FbDB2315678afecb367f032d93F642f64180aa3/configuration"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","FEEDS_SUBMIT_OBSERVED_AT_TOO_FAR_IN_FUTURE","FEED_PRICE_NOT_REPRESENTABLE","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FEED_SUBMISSION_NOT_AUTHORIZED","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXCHANGE_RATE_NOT_FOUND","FEEDS_FEED_ADDRESS_NOT_FOUND","FEED_ROUND_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"EXCHANGE_RATE_NOT_FOUND","status":404,"message":"Exchange rate not found","data":{"id":"DALP-0116","why":"No active FX feed covers the requested currency pair on the current chain, or the feed exists but has not yet recorded an observed rate.","fix":"Check the supported currencies list to confirm the pair is available. If the pair was recently added, retry after the feed publishes its first observation.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","FEED_ADDON_NOT_INSTALLED","FEED_BATCH_NOT_SUBMITTABLE","FEED_TOPIC_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXCHANGE_RATE_CURRENCY_UNSUPPORTED","FEED_CONTRACT_INVALID"]}},"required":["code"]}],"examples":[{"code":"EXCHANGE_RATE_CURRENCY_UNSUPPORTED","status":422,"message":"No feed on this network prices the currency","data":{"id":"DALP-12247","why":"The exchange-rate graph for the selected network has no feed that quotes the requested currency.","fix":"Use a currency from the supported-currencies list, or add an exchange-rate feed for the currency on this network.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","FEED_DIRECTORY_UNAVAILABLE","FEED_SUBMISSION_SIGNER_AMBIGUOUS","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the immutable issuer-signed settings for `feedAddress`: decimals, history mode and size, whether observations must be positive, and drift allowance. These values are fixed at creation, so the same request always returns the same configuration after the feed exists.","summary":"Read feed configuration","x-dalp-auth":"session-or-api-key"}},"/api/v2/system/feed/staleness-windows/effective":{"get":{"tags":["Price feeds"],"operationId":"v2/system/feeds/stalenessWindow/effective","parameters":[{"name":"subject","in":"query","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"name":"topicId","in":"query","schema":{"type":"string","pattern":"^-?\\d+$"},"required":true}],"responses":{"200":{"description":"The window in force for a (subject, topic) pair and whether it came from that feed's override or the global default.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"subject":{"$ref":"#/components/schemas/EvmAddress"},"topicId":{"type":"string","pattern":"^-?\\d+$"},"policy":{"anyOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["seconds"]},"seconds":{"type":"integer","exclusiveMinimum":0}},"required":["mode","seconds"],"additionalProperties":false},{"type":"object","properties":{"mode":{"type":"string","enum":["never"]}},"required":["mode"],"additionalProperties":false},{"type":"object","properties":{"mode":{"type":"string","enum":["inherit"]}},"required":["mode"],"additionalProperties":false}]},"source":{"type":"string","enum":["feed-override","global-default"]}},"required":["subject","topicId","policy","source"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"subject":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","topicId":"7","policy":{"mode":"seconds","seconds":1},"source":"feed-override"},"links":{"self":"/v2/system/feed/staleness-windows/effective"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","FEEDS_SUBMIT_OBSERVED_AT_TOO_FAR_IN_FUTURE","FEED_PRICE_NOT_REPRESENTABLE","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FEED_SUBMISSION_NOT_AUTHORIZED","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXCHANGE_RATE_NOT_FOUND","FEEDS_FEED_ADDRESS_NOT_FOUND","FEED_ROUND_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"EXCHANGE_RATE_NOT_FOUND","status":404,"message":"Exchange rate not found","data":{"id":"DALP-0116","why":"No active FX feed covers the requested currency pair on the current chain, or the feed exists but has not yet recorded an observed rate.","fix":"Check the supported currencies list to confirm the pair is available. If the pair was recently added, retry after the feed publishes its first observation.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","FEED_ADDON_NOT_INSTALLED","FEED_BATCH_NOT_SUBMITTABLE","FEED_TOPIC_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXCHANGE_RATE_CURRENCY_UNSUPPORTED","FEED_CONTRACT_INVALID"]}},"required":["code"]}],"examples":[{"code":"EXCHANGE_RATE_CURRENCY_UNSUPPORTED","status":422,"message":"No feed on this network prices the currency","data":{"id":"DALP-12247","why":"The exchange-rate graph for the selected network has no feed that quotes the requested currency.","fix":"Use a currency from the supported-currencies list, or add an exchange-rate feed for the currency on this network.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","FEED_DIRECTORY_UNAVAILABLE","FEED_SUBMISSION_SIGNER_AMBIGUOUS","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the window in force for a (subject, topic) pair and whether it comes from that feed's own override or the resolver's global default. This is the read that explains why a mint was or was not blocked on price age.","summary":"Read the effective staleness window","x-dalp-auth":"session-or-api-key"}},"/api/v2/system/feed/staleness-windows/global":{"get":{"tags":["Price feeds"],"operationId":"v2/system/feeds/stalenessWindow/global","parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"anyOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["seconds"]},"seconds":{"type":"integer","exclusiveMinimum":0}},"required":["mode","seconds"],"additionalProperties":false},{"type":"object","properties":{"mode":{"type":"string","enum":["never"]}},"required":["mode"],"additionalProperties":false}]},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"mode":"seconds","seconds":1},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","FEEDS_SUBMIT_OBSERVED_AT_TOO_FAR_IN_FUTURE","FEED_PRICE_NOT_REPRESENTABLE","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FEED_SUBMISSION_NOT_AUTHORIZED","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXCHANGE_RATE_NOT_FOUND","FEEDS_FEED_ADDRESS_NOT_FOUND","FEED_ROUND_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"EXCHANGE_RATE_NOT_FOUND","status":404,"message":"Exchange rate not found","data":{"id":"DALP-0116","why":"No active FX feed covers the requested currency pair on the current chain, or the feed exists but has not yet recorded an observed rate.","fix":"Check the supported currencies list to confirm the pair is available. If the pair was recently added, retry after the feed publishes its first observation.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","FEED_ADDON_NOT_INSTALLED","FEED_BATCH_NOT_SUBMITTABLE","FEED_TOPIC_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXCHANGE_RATE_CURRENCY_UNSUPPORTED","FEED_CONTRACT_INVALID"]}},"required":["code"]}],"examples":[{"code":"EXCHANGE_RATE_CURRENCY_UNSUPPORTED","status":422,"message":"No feed on this network prices the currency","data":{"id":"DALP-12247","why":"The exchange-rate graph for the selected network has no feed that quotes the requested currency.","fix":"Use a currency from the supported-currencies list, or add an exchange-rate feed for the currency on this network.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","FEED_DIRECTORY_UNAVAILABLE","FEED_SUBMISSION_SIGNER_AMBIGUOUS","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"summary":"Read the global staleness window","x-dalp-auth":"session-or-api-key"},"put":{"tags":["Price feeds"],"operationId":"v2/system/feeds/stalenessWindow/setGlobal","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled global default. Every feed without an override of its own now uses this window.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"null"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":null,"meta":{"txHashes":["0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/v2/system/feed/staleness-windows/global"}}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false}}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false},"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","FEEDS_SUBMIT_OBSERVED_AT_TOO_FAR_IN_FUTURE","FEED_PRICE_NOT_REPRESENTABLE","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FEED_MANAGER_PERMISSION_REQUIRED","FEED_SUBMISSION_NOT_AUTHORIZED","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_STEP_UP_CHALLENGE_REFUSED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXCHANGE_RATE_NOT_FOUND","FEEDS_FEED_ADDRESS_NOT_FOUND","FEED_ROUND_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"EXCHANGE_RATE_NOT_FOUND","status":404,"message":"Exchange rate not found","data":{"id":"DALP-0116","why":"No active FX feed covers the requested currency pair on the current chain, or the feed exists but has not yet recorded an observed rate.","fix":"Check the supported currencies list to confirm the pair is available. If the pair was recently added, retry after the feed publishes its first observation.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","FEED_ADDON_NOT_INSTALLED","FEED_BATCH_NOT_SUBMITTABLE","FEED_TOPIC_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXCHANGE_RATE_CURRENCY_UNSUPPORTED","FEED_CONTRACT_INVALID"]}},"required":["code"]}],"examples":[{"code":"EXCHANGE_RATE_CURRENCY_UNSUPPORTED","status":422,"message":"No feed on this network prices the currency","data":{"id":"DALP-12247","why":"The exchange-rate graph for the selected network has no feed that quotes the requested currency.","fix":"Use a currency from the supported-currencies list, or add an exchange-rate feed for the currency on this network.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","FEED_DIRECTORY_UNAVAILABLE","FEED_SUBMISSION_SIGNER_AMBIGUOUS","OIDC_MFA_UNAVAILABLE","SESSION_RESOLUTION_FAILED","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Sets the price resolver's default staleness window, applied to every feed that carries no override of its own. The window is expressed as a tagged `mode`; choose `seconds` for a finite limit or `never` to disable expiry for feeds without an override.","summary":"Set the global staleness window","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["seconds"]},"seconds":{"type":"integer","exclusiveMinimum":0},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["mode","seconds"],"additionalProperties":false},{"type":"object","properties":{"mode":{"type":"string","enum":["never"]},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["mode"],"additionalProperties":false}]}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/system/feed/external-registrations":{"post":{"tags":["Price feeds"],"operationId":"v2/system/feeds/registerExternal","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled external registration. `data` is the stored mapping on the EVM family and the settled operation on the Canton family, and `meta.txHashes` lists the submitted write.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"anyOf":[{"type":"object","properties":{"feed":{"type":"object","properties":{"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"address":{"$ref":"#/components/schemas/EvmAddress"}},"required":["chainId","address"],"additionalProperties":false},"transactionHash":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"required":["feed","transactionHash"],"additionalProperties":false},{"$ref":"#/components/schemas/CantonIdentityOperationOutput"}]},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"feed":{"chainId":11155111,"address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"},"transactionHash":"0x3a1b2c4d5e6f708192a3b4c5d6e7f8091a2b3c4d5e6f708192a3b4c5d6e7f809"},"meta":{"txHashes":["0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/v2/system/feed/0x5FbDB2315678afecb367f032d93F642f64180aa3"}}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false}}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false},"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","FEEDS_SUBMIT_OBSERVED_AT_TOO_FAR_IN_FUTURE","FEED_PRICE_NOT_REPRESENTABLE","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FEED_MANAGER_PERMISSION_REQUIRED","FEED_SUBMISSION_NOT_AUTHORIZED","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_STEP_UP_CHALLENGE_REFUSED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXCHANGE_RATE_NOT_FOUND","FEEDS_FEED_ADDRESS_NOT_FOUND","FEED_ROUND_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"EXCHANGE_RATE_NOT_FOUND","status":404,"message":"Exchange rate not found","data":{"id":"DALP-0116","why":"No active FX feed covers the requested currency pair on the current chain, or the feed exists but has not yet recorded an observed rate.","fix":"Check the supported currencies list to confirm the pair is available. If the pair was recently added, retry after the feed publishes its first observation.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","FEED_ADDON_NOT_INSTALLED","FEED_BATCH_NOT_SUBMITTABLE","FEED_TOPIC_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXCHANGE_RATE_CURRENCY_UNSUPPORTED","FEED_CONTRACT_INVALID","OPERATION_FAMILY_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"EXCHANGE_RATE_CURRENCY_UNSUPPORTED","status":422,"message":"No feed on this network prices the currency","data":{"id":"DALP-12247","why":"The exchange-rate graph for the selected network has no feed that quotes the requested currency.","fix":"Use a currency from the supported-currencies list, or add an exchange-rate feed for the currency on this network.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","FEED_DIRECTORY_UNAVAILABLE","FEED_SUBMISSION_SIGNER_AMBIGUOUS","OIDC_MFA_UNAVAILABLE","SESSION_RESOLUTION_FAILED","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Queues an on-chain write that registers an already deployed compatible feed for a subject and topic. Send `topicName` or `topicId`. A body carrying `cantonPartyId` is a Canton write instead: it adds a feed definition to the Canton catalog.","summary":"Create an external feed registration","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"subject":{"$ref":"#/components/schemas/EvmAddress"},"topicId":{"type":"string","pattern":"^-?\\d+$"},"feedAddress":{"$ref":"#/components/schemas/EvmAddress"},"description":{"type":"string","minLength":1},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]},"cantonPartyId":{"not":{}},"providerParty":{"not":{}}},"required":["subject","topicId","feedAddress","description"],"additionalProperties":false},{"type":"object","properties":{"cantonPartyId":{"type":"string","minLength":1,"description":"Canton party identifier.","examples":["Canton::1220a1b2c3d4"]},"providerParty":{"type":"string","minLength":1,"description":"Canton party identifier.","examples":["Canton::1220a1b2c3d4"]},"feedId":{"type":"string","minLength":1},"description":{"type":"string"},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["cantonPartyId","providerParty","feedId","description"],"additionalProperties":false}]}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/system/feed/registrations":{"put":{"tags":["Price feeds"],"operationId":"v2/system/feeds/replace","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled replacement. `data.oldFeedAddress` is the mapping the write retired and `meta.txHashes` lists the submitted write.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"feed":{"type":"object","properties":{"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"address":{"$ref":"#/components/schemas/EvmAddress"}},"required":["chainId","address"],"additionalProperties":false},"transactionHash":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"required":["feed","transactionHash"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"feed":{"chainId":11155111,"address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"},"transactionHash":"0x3a1b2c4d5e6f708192a3b4c5d6e7f8091a2b3c4d5e6f708192a3b4c5d6e7f809"},"meta":{"txHashes":["0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/v2/system/feed/0x5FbDB2315678afecb367f032d93F642f64180aa3"}}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false}}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false},"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","FEEDS_SUBMIT_OBSERVED_AT_TOO_FAR_IN_FUTURE","FEED_PRICE_NOT_REPRESENTABLE","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FEED_MANAGER_PERMISSION_REQUIRED","FEED_SUBMISSION_NOT_AUTHORIZED","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_STEP_UP_CHALLENGE_REFUSED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXCHANGE_RATE_NOT_FOUND","FEEDS_FEED_ADDRESS_NOT_FOUND","FEED_ROUND_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"EXCHANGE_RATE_NOT_FOUND","status":404,"message":"Exchange rate not found","data":{"id":"DALP-0116","why":"No active FX feed covers the requested currency pair on the current chain, or the feed exists but has not yet recorded an observed rate.","fix":"Check the supported currencies list to confirm the pair is available. If the pair was recently added, retry after the feed publishes its first observation.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","FEED_ADDON_NOT_INSTALLED","FEED_BATCH_NOT_SUBMITTABLE","FEED_TOPIC_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXCHANGE_RATE_CURRENCY_UNSUPPORTED","FEED_CONTRACT_INVALID"]}},"required":["code"]}],"examples":[{"code":"EXCHANGE_RATE_CURRENCY_UNSUPPORTED","status":422,"message":"No feed on this network prices the currency","data":{"id":"DALP-12247","why":"The exchange-rate graph for the selected network has no feed that quotes the requested currency.","fix":"Use a currency from the supported-currencies list, or add an exchange-rate feed for the currency on this network.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","FEED_DIRECTORY_UNAVAILABLE","FEED_SUBMISSION_SIGNER_AMBIGUOUS","OIDC_MFA_UNAVAILABLE","SESSION_RESOLUTION_FAILED","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Queues an on-chain write that replaces the feed address held for a subject and topic. The previous address is retired once the write settles.","summary":"Replace a feed registration","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"subject":{"$ref":"#/components/schemas/EvmAddress"},"topicId":{"type":"string","pattern":"^-?\\d+$"},"feedAddress":{"$ref":"#/components/schemas/EvmAddress"},"description":{"type":"string","minLength":1},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]},"cantonPartyId":{"not":{}},"providerParty":{"not":{}}},"required":["subject","topicId","feedAddress","description"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"},"delete":{"tags":["Price feeds"],"operationId":"v2/system/feeds/remove","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled removal. The directory mapping is gone after this write, and on the Canton family the retired feed definition is gone with it.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"anyOf":[{"type":"object","properties":{"feed":{"type":"object","properties":{"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"address":{"$ref":"#/components/schemas/EvmAddress"}},"required":["chainId","address"],"additionalProperties":false},"transactionHash":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"required":["feed","transactionHash"],"additionalProperties":false},{"$ref":"#/components/schemas/CantonIdentityOperationOutput"}]},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"feed":{"chainId":11155111,"address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"},"transactionHash":"0x3a1b2c4d5e6f708192a3b4c5d6e7f8091a2b3c4d5e6f708192a3b4c5d6e7f809"},"meta":{"txHashes":["0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/v2/system/feed/registrations"}}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false}}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false},"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","FEEDS_SUBMIT_OBSERVED_AT_TOO_FAR_IN_FUTURE","FEED_PRICE_NOT_REPRESENTABLE","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FEED_MANAGER_PERMISSION_REQUIRED","FEED_SUBMISSION_NOT_AUTHORIZED","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_STEP_UP_CHALLENGE_REFUSED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXCHANGE_RATE_NOT_FOUND","FEEDS_FEED_ADDRESS_NOT_FOUND","FEED_ROUND_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"EXCHANGE_RATE_NOT_FOUND","status":404,"message":"Exchange rate not found","data":{"id":"DALP-0116","why":"No active FX feed covers the requested currency pair on the current chain, or the feed exists but has not yet recorded an observed rate.","fix":"Check the supported currencies list to confirm the pair is available. If the pair was recently added, retry after the feed publishes its first observation.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","FEED_ADDON_NOT_INSTALLED","FEED_BATCH_NOT_SUBMITTABLE","FEED_TOPIC_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXCHANGE_RATE_CURRENCY_UNSUPPORTED","FEED_CONTRACT_INVALID","OPERATION_FAMILY_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"EXCHANGE_RATE_CURRENCY_UNSUPPORTED","status":422,"message":"No feed on this network prices the currency","data":{"id":"DALP-12247","why":"The exchange-rate graph for the selected network has no feed that quotes the requested currency.","fix":"Use a currency from the supported-currencies list, or add an exchange-rate feed for the currency on this network.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","FEED_DIRECTORY_UNAVAILABLE","FEED_SUBMISSION_SIGNER_AMBIGUOUS","OIDC_MFA_UNAVAILABLE","SESSION_RESOLUTION_FAILED","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Queues an on-chain write that removes the directory mapping for a subject and topic. The feed contract itself stays deployed. A body carrying `cantonPartyId` is a Canton write instead: it withdraws a Canton feed definition.","summary":"Delete a feed registration","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"subject":{"$ref":"#/components/schemas/EvmAddress"},"topicId":{"type":"string","pattern":"^-?\\d+$"},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]},"cantonPartyId":{"not":{}}},"required":["subject","topicId"],"additionalProperties":false},{"type":"object","properties":{"cantonPartyId":{"type":"string","minLength":1,"description":"Canton party identifier.","examples":["Canton::1220a1b2c3d4"]},"feedId":{"type":"string","minLength":1},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["cantonPartyId","feedId"],"additionalProperties":false}]}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/system/feed/{feedAddress}/submissions":{"post":{"tags":["Price feeds"],"operationId":"v2/system/feeds/submit","parameters":[{"name":"feedAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled observation. `data.nonce` is the issuer nonce consumed by this write.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"feed":{"type":"object","properties":{"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"address":{"$ref":"#/components/schemas/EvmAddress"}},"required":["chainId","address"],"additionalProperties":false},"transactionHash":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"required":["feed","transactionHash"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"feed":{"chainId":11155111,"address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"},"transactionHash":"0x3a1b2c4d5e6f708192a3b4c5d6e7f8091a2b3c4d5e6f708192a3b4c5d6e7f809"},"meta":{"txHashes":["0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/v2/system/feed/0x5FbDB2315678afecb367f032d93F642f64180aa3/latest"}}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false}}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false},"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","FEEDS_SUBMIT_OBSERVED_AT_TOO_FAR_IN_FUTURE","FEED_PRICE_NOT_REPRESENTABLE","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FEED_MANAGER_PERMISSION_REQUIRED","FEED_SUBMISSION_NOT_AUTHORIZED","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_STEP_UP_CHALLENGE_REFUSED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXCHANGE_RATE_NOT_FOUND","FEEDS_FEED_ADDRESS_NOT_FOUND","FEED_ROUND_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"EXCHANGE_RATE_NOT_FOUND","status":404,"message":"Exchange rate not found","data":{"id":"DALP-0116","why":"No active FX feed covers the requested currency pair on the current chain, or the feed exists but has not yet recorded an observed rate.","fix":"Check the supported currencies list to confirm the pair is available. If the pair was recently added, retry after the feed publishes its first observation.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","FEED_ADDON_NOT_INSTALLED","FEED_BATCH_NOT_SUBMITTABLE","FEED_TOPIC_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXCHANGE_RATE_CURRENCY_UNSUPPORTED","FEED_CONTRACT_INVALID"]}},"required":["code"]}],"examples":[{"code":"EXCHANGE_RATE_CURRENCY_UNSUPPORTED","status":422,"message":"No feed on this network prices the currency","data":{"id":"DALP-12247","why":"The exchange-rate graph for the selected network has no feed that quotes the requested currency.","fix":"Use a currency from the supported-currencies list, or add an exchange-rate feed for the currency on this network.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","FEED_DIRECTORY_UNAVAILABLE","FEED_SUBMISSION_SIGNER_AMBIGUOUS","OIDC_MFA_UNAVAILABLE","SESSION_RESOLUTION_FAILED","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Signs and queues one integer observation from the caller's issuer identity. `value` is the unscaled integer and `observedAt` is a Unix timestamp in seconds.","summary":"Create a feed submission","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"value":{"$ref":"#/components/schemas/FiniteDecimalFromStringEncoded"},"observedAt":{"$ref":"#/components/schemas/TimestampEncoded"},"deadline":{"$ref":"#/components/schemas/TimestampEncoded"},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["value","observedAt"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/system/feed/issuer-signed":{"post":{"tags":["Price feeds"],"operationId":"v2/system/feeds/issuerSigned/create","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled issuer-signed feed. `data.feedAddress` is the new contract.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"feed":{"type":"object","properties":{"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"address":{"$ref":"#/components/schemas/EvmAddress"}},"required":["chainId","address"],"additionalProperties":false},"transactionHash":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"required":["feed","transactionHash"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"feed":{"chainId":11155111,"address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"},"transactionHash":"0x3a1b2c4d5e6f708192a3b4c5d6e7f8091a2b3c4d5e6f708192a3b4c5d6e7f809"},"meta":{"txHashes":["0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/v2/system/feed/0x5FbDB2315678afecb367f032d93F642f64180aa3"}}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false}}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false},"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","FEEDS_SUBMIT_OBSERVED_AT_TOO_FAR_IN_FUTURE","FEED_PRICE_NOT_REPRESENTABLE","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FEED_MANAGER_PERMISSION_REQUIRED","FEED_SUBMISSION_NOT_AUTHORIZED","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_STEP_UP_CHALLENGE_REFUSED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXCHANGE_RATE_NOT_FOUND","FEEDS_FEED_ADDRESS_NOT_FOUND","FEED_ROUND_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"EXCHANGE_RATE_NOT_FOUND","status":404,"message":"Exchange rate not found","data":{"id":"DALP-0116","why":"No active FX feed covers the requested currency pair on the current chain, or the feed exists but has not yet recorded an observed rate.","fix":"Check the supported currencies list to confirm the pair is available. If the pair was recently added, retry after the feed publishes its first observation.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","FEED_ADDON_NOT_INSTALLED","FEED_BATCH_NOT_SUBMITTABLE","FEED_TOPIC_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXCHANGE_RATE_CURRENCY_UNSUPPORTED","FEED_CONTRACT_INVALID"]}},"required":["code"]}],"examples":[{"code":"EXCHANGE_RATE_CURRENCY_UNSUPPORTED","status":422,"message":"No feed on this network prices the currency","data":{"id":"DALP-12247","why":"The exchange-rate graph for the selected network has no feed that quotes the requested currency.","fix":"Use a currency from the supported-currencies list, or add an exchange-rate feed for the currency on this network.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","FEED_DIRECTORY_UNAVAILABLE","FEED_SUBMISSION_SIGNER_AMBIGUOUS","OIDC_MFA_UNAVAILABLE","SESSION_RESOLUTION_FAILED","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Queues an on-chain write that creates an issuer-signed scalar feed and registers it for a subject and topic. Send `topicName` or `topicId`. `decimals` is 0 to 18. The feed keeps only its latest round and accepts only positive values, so it cannot carry a negative rate or delta.","summary":"Create an issuer-signed feed","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"subject":{"$ref":"#/components/schemas/EvmAddress"},"topicId":{"type":"string","pattern":"^-?\\d+$"},"description":{"type":"string","minLength":1},"decimals":{"$ref":"#/components/schemas/DecimalsEncoded"},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["subject","topicId","description","decimals"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/system/feed/adapters":{"post":{"tags":["Price feeds"],"operationId":"v2/system/feeds/adapters/create","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled adapter. `data.adapterAddress` is the stable contract callers should read.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"feed":{"type":"object","properties":{"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"address":{"$ref":"#/components/schemas/EvmAddress"}},"required":["chainId","address"],"additionalProperties":false},"transactionHash":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"required":["feed","transactionHash"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"feed":{"chainId":11155111,"address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"},"transactionHash":"0x3a1b2c4d5e6f708192a3b4c5d6e7f8091a2b3c4d5e6f708192a3b4c5d6e7f809"},"meta":{"txHashes":["0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/v2/system/feed/adapters"}}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false}}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false},"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","FEEDS_SUBMIT_OBSERVED_AT_TOO_FAR_IN_FUTURE","FEED_PRICE_NOT_REPRESENTABLE","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FEED_MANAGER_PERMISSION_REQUIRED","FEED_SUBMISSION_NOT_AUTHORIZED","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_STEP_UP_CHALLENGE_REFUSED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXCHANGE_RATE_NOT_FOUND","FEEDS_FEED_ADDRESS_NOT_FOUND","FEED_ROUND_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"EXCHANGE_RATE_NOT_FOUND","status":404,"message":"Exchange rate not found","data":{"id":"DALP-0116","why":"No active FX feed covers the requested currency pair on the current chain, or the feed exists but has not yet recorded an observed rate.","fix":"Check the supported currencies list to confirm the pair is available. If the pair was recently added, retry after the feed publishes its first observation.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","FEED_ADDON_NOT_INSTALLED","FEED_BATCH_NOT_SUBMITTABLE","FEED_TOPIC_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXCHANGE_RATE_CURRENCY_UNSUPPORTED","FEED_CONTRACT_INVALID"]}},"required":["code"]}],"examples":[{"code":"EXCHANGE_RATE_CURRENCY_UNSUPPORTED","status":422,"message":"No feed on this network prices the currency","data":{"id":"DALP-12247","why":"The exchange-rate graph for the selected network has no feed that quotes the requested currency.","fix":"Use a currency from the supported-currencies list, or add an exchange-rate feed for the currency on this network.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","FEED_DIRECTORY_UNAVAILABLE","FEED_SUBMISSION_SIGNER_AMBIGUOUS","OIDC_MFA_UNAVAILABLE","SESSION_RESOLUTION_FAILED","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Queues an on-chain write that creates a stable adapter address for a subject and topic. The adapter keeps the same address when the backing feed is replaced.","summary":"Create a feed adapter","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"subject":{"$ref":"#/components/schemas/EvmAddress"},"topicId":{"type":"string","pattern":"^-?\\d+$"},"aggregator":{"$ref":"#/components/schemas/EvmAddress"},"decimals":{"$ref":"#/components/schemas/DecimalsEncoded"},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["subject","topicId","aggregator","decimals"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/system/feed/staleness-windows":{"put":{"tags":["Price feeds"],"operationId":"v2/system/feeds/stalenessWindow/setFeed","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled per-feed window. `maxAgeSeconds` is `0` when the override was cleared.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"null"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":null,"meta":{"txHashes":["0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/v2/system/feed/staleness-windows"}}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false}}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false},"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","FEEDS_SUBMIT_OBSERVED_AT_TOO_FAR_IN_FUTURE","FEED_PRICE_NOT_REPRESENTABLE","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FEED_MANAGER_PERMISSION_REQUIRED","FEED_SUBMISSION_NOT_AUTHORIZED","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_STEP_UP_CHALLENGE_REFUSED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXCHANGE_RATE_NOT_FOUND","FEEDS_FEED_ADDRESS_NOT_FOUND","FEED_ROUND_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"EXCHANGE_RATE_NOT_FOUND","status":404,"message":"Exchange rate not found","data":{"id":"DALP-0116","why":"No active FX feed covers the requested currency pair on the current chain, or the feed exists but has not yet recorded an observed rate.","fix":"Check the supported currencies list to confirm the pair is available. If the pair was recently added, retry after the feed publishes its first observation.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","FEED_ADDON_NOT_INSTALLED","FEED_BATCH_NOT_SUBMITTABLE","FEED_TOPIC_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXCHANGE_RATE_CURRENCY_UNSUPPORTED","FEED_CONTRACT_INVALID"]}},"required":["code"]}],"examples":[{"code":"EXCHANGE_RATE_CURRENCY_UNSUPPORTED","status":422,"message":"No feed on this network prices the currency","data":{"id":"DALP-12247","why":"The exchange-rate graph for the selected network has no feed that quotes the requested currency.","fix":"Use a currency from the supported-currencies list, or add an exchange-rate feed for the currency on this network.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","FEED_DIRECTORY_UNAVAILABLE","FEED_SUBMISSION_SIGNER_AMBIGUOUS","OIDC_MFA_UNAVAILABLE","SESSION_RESOLUTION_FAILED","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Sets, replaces, or clears the staleness window for a single (subject, topic) feed. Asset feeds and FX conversion feeds alike. `mode: \"inherit\"` clears the override; `mode: \"never\"` exempts the feed from the staleness check entirely.","summary":"Set one feed's staleness window","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"subject":{"$ref":"#/components/schemas/EvmAddress"},"topicId":{"type":"string","pattern":"^-?\\d+$"},"policy":{"anyOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["seconds"]},"seconds":{"type":"integer","exclusiveMinimum":0}},"required":["mode","seconds"],"additionalProperties":false},{"type":"object","properties":{"mode":{"type":"string","enum":["never"]}},"required":["mode"],"additionalProperties":false},{"type":"object","properties":{"mode":{"type":"string","enum":["inherit"]}},"required":["mode"],"additionalProperties":false}]},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["subject","topicId","policy"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/monitoring/api/request-metrics/summary":{"get":{"tags":["Monitoring"],"operationId":"opsApiMonitoring.summary","parameters":[{"name":"from","in":"query","schema":{"type":"string"},"required":true},{"name":"to","in":"query","schema":{"type":"string"},"required":true},{"name":"requestType","in":"query","schema":{"type":"string","enum":["rest","rpc"]},"required":false}],"responses":{"200":{"description":"Aggregated API request counts and rates for the requested window. The window must be at most 7 days and `from` must be before `to`. The call is safe to repeat.","content":{"application/json":{"schema":{"type":"object","properties":{"totalRequests":{"type":"number"},"errorRate":{"type":"number"},"serverErrorRate":{"type":"number"},"clientErrorRate":{"type":"number"},"avgDurationMs":{"type":"number"},"p95DurationMs":{"anyOf":[{"type":"number"},{"type":"null"}]},"error4xxCount":{"type":"number"},"error5xxCount":{"type":"number"}},"required":["totalRequests","errorRate","avgDurationMs","p95DurationMs","error4xxCount","error5xxCount"],"additionalProperties":false},"examples":{"example-1":{"value":{"totalRequests":1842,"errorRate":0.012,"serverErrorRate":0.003,"clientErrorRate":0.009,"avgDurationMs":48,"p95DurationMs":126,"error4xxCount":17,"error5xxCount":6}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","DEBUG_BUNDLE_WINDOW_INVALID","INVALID_REQUEST_EXECUTOR","REINDEX_REQUEST_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","ADMIN_ACCESS_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["API_MONITORING_LOG_ENTRY_NOT_FOUND","APPROVAL_NOT_FOUND","CONTRACT_ERROR","METADATA_NOT_FOUND","OPERATIONS_CASE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"API_MONITORING_LOG_ENTRY_NOT_FOUND","status":404,"message":"API monitoring log entry was not found","data":{"id":"DALP-0048","why":"No API monitoring log entry exists for the requested id in the active organization.","fix":"Verify the log entry id and organization, then retry.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["APPROVAL_REFUSED","CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","OPERATIONS_CASE_REFUSED","OPERATIONS_REINDEX_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"APPROVAL_REFUSED","status":409,"message":"The approval decision was refused","data":{"id":"DALP-9541","why":"The platform four-eyes rules and the policy version the request was raised under decide who may approve and whether the decision is still valid: the maker cannot approve their own request, a role the pinned policy does not name cannot approve, a signature that leaves the policy's approver floor short is recorded against the request rather than admitting it, a borrowed session cannot approve when the pinned policy sets operatorMayApprove to false, a payload that moved invalidates the approval, and an expired request accepts no decision. A policy that names no approving role admits any role the platform has already admitted as an approver.","fix":"Read the request again for its current state and row version, and have a distinct operator decide it.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","REINDEX_SERVICE_UNREACHABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns request counts, error rates, and latency for Platform API traffic in the requested window. The window must be at most 7 days and `from` must be before `to`. Filter with `requestType` to limit the rollup to REST or JSON-RPC. You need the administrator or organization-owner role. Repeat the call to refresh.","summary":"Read API request summary","x-dalp-auth":"session-or-api-key"}},"/api/v2/monitoring/api/request-metrics/timeline":{"get":{"tags":["Monitoring"],"operationId":"opsApiMonitoring.timeline","parameters":[{"name":"from","in":"query","schema":{"type":"string"},"required":true},{"name":"to","in":"query","schema":{"type":"string"},"required":true},{"name":"requestType","in":"query","schema":{"type":"string","enum":["rest","rpc"]},"required":false}],"responses":{"200":{"description":"API request counts grouped into hour or day buckets for the requested window. The window must be at most 31 days. The call is safe to repeat.","content":{"application/json":{"schema":{"type":"object","properties":{"buckets":{"type":"array","items":{"type":"object","properties":{"timestamp":{"type":"string"},"restSuccessCount":{"type":"number"},"rpcSuccessCount":{"type":"number"},"restError4xxCount":{"type":"number"},"rpcError4xxCount":{"type":"number"},"restError5xxCount":{"type":"number"},"rpcError5xxCount":{"type":"number"},"avgDurationMs":{"type":"number"}},"required":["timestamp","restSuccessCount","rpcSuccessCount","restError4xxCount","rpcError4xxCount","restError5xxCount","rpcError5xxCount","avgDurationMs"],"additionalProperties":false}}},"required":["buckets"],"additionalProperties":false},"examples":{"example-1":{"value":{"buckets":[{"timestamp":"2026-03-11T16:00:00.000Z","restSuccessCount":210,"rpcSuccessCount":18,"restError4xxCount":3,"rpcError4xxCount":0,"restError5xxCount":1,"rpcError5xxCount":0,"avgDurationMs":44}]}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","DEBUG_BUNDLE_WINDOW_INVALID","INVALID_REQUEST_EXECUTOR","REINDEX_REQUEST_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","ADMIN_ACCESS_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["API_MONITORING_LOG_ENTRY_NOT_FOUND","APPROVAL_NOT_FOUND","CONTRACT_ERROR","METADATA_NOT_FOUND","OPERATIONS_CASE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"API_MONITORING_LOG_ENTRY_NOT_FOUND","status":404,"message":"API monitoring log entry was not found","data":{"id":"DALP-0048","why":"No API monitoring log entry exists for the requested id in the active organization.","fix":"Verify the log entry id and organization, then retry.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["APPROVAL_REFUSED","CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","OPERATIONS_CASE_REFUSED","OPERATIONS_REINDEX_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"APPROVAL_REFUSED","status":409,"message":"The approval decision was refused","data":{"id":"DALP-9541","why":"The platform four-eyes rules and the policy version the request was raised under decide who may approve and whether the decision is still valid: the maker cannot approve their own request, a role the pinned policy does not name cannot approve, a signature that leaves the policy's approver floor short is recorded against the request rather than admitting it, a borrowed session cannot approve when the pinned policy sets operatorMayApprove to false, a payload that moved invalidates the approval, and an expired request accepts no decision. A policy that names no approving role admits any role the platform has already admitted as an approver.","fix":"Read the request again for its current state and row version, and have a distinct operator decide it.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","REINDEX_SERVICE_UNREACHABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns Platform API request counts grouped into hour or day buckets for the requested window. The window must be at most 31 days. Optional `endpointId` limits the series to one route. You need the administrator or organization-owner role. Repeat the call to refresh.","summary":"Read API request timeline","x-dalp-auth":"session-or-api-key"}},"/api/v2/monitoring/api/endpoint-metrics":{"get":{"tags":["Monitoring"],"operationId":"opsApiMonitoring.endpoints","parameters":[{"name":"from","in":"query","schema":{"type":"string"},"required":true},{"name":"to","in":"query","schema":{"type":"string"},"required":true},{"name":"requestType","in":"query","schema":{"type":"string","enum":["rest","rpc"]},"required":false}],"responses":{"200":{"description":"Per-endpoint request counts, average duration, and error rate for the requested window. Sort defaults to `requestCount` descending. The call is safe to repeat.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"endpointId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"method":{"type":"string"},"routeTemplate":{"type":"string"},"requestType":{"type":"string","enum":["rest","rpc"]},"tag":{"anyOf":[{"type":"string"},{"type":"null"}]},"requestCount":{"type":"number"},"avgDurationMs":{"type":"number"},"errorRate":{"type":"number"}},"required":["endpointId","method","routeTemplate","requestType","tag","requestCount","avgDurationMs","errorRate"],"additionalProperties":false}},"totalCount":{"type":"number"},"facets":{"type":"object","additionalProperties":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"count":{"type":"number"}},"required":["value","count"],"additionalProperties":false}}}},"required":["items","totalCount","facets"],"additionalProperties":false},"examples":{"example-1":{"value":{"items":[{"endpointId":"0198f1b3-4d5e-7890-ab12-3c4d5e6f7a01","method":"GET","routeTemplate":"/api/v2/transaction-requests/:transactionId","requestType":"rest","tag":"Transactions","requestCount":312,"avgDurationMs":38,"errorRate":0.006}],"totalCount":1,"facets":{}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","DEBUG_BUNDLE_WINDOW_INVALID","INVALID_REQUEST_EXECUTOR","REINDEX_REQUEST_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","ADMIN_ACCESS_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["API_MONITORING_LOG_ENTRY_NOT_FOUND","APPROVAL_NOT_FOUND","CONTRACT_ERROR","METADATA_NOT_FOUND","OPERATIONS_CASE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"API_MONITORING_LOG_ENTRY_NOT_FOUND","status":404,"message":"API monitoring log entry was not found","data":{"id":"DALP-0048","why":"No API monitoring log entry exists for the requested id in the active organization.","fix":"Verify the log entry id and organization, then retry.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["APPROVAL_REFUSED","CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","OPERATIONS_CASE_REFUSED","OPERATIONS_REINDEX_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"APPROVAL_REFUSED","status":409,"message":"The approval decision was refused","data":{"id":"DALP-9541","why":"The platform four-eyes rules and the policy version the request was raised under decide who may approve and whether the decision is still valid: the maker cannot approve their own request, a role the pinned policy does not name cannot approve, a signature that leaves the policy's approver floor short is recorded against the request rather than admitting it, a borrowed session cannot approve when the pinned policy sets operatorMayApprove to false, a payload that moved invalidates the approval, and an expired request accepts no decision. A policy that names no approving role admits any role the platform has already admitted as an approver.","fix":"Read the request again for its current state and row version, and have a distinct operator decide it.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","REINDEX_SERVICE_UNREACHABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one offset page of per-route request counts, average duration, and error rate for the requested window. Sort defaults to `requestCount` descending. Filter by HTTP method, route template, tag, or REST versus JSON-RPC. You need the administrator or organization-owner role. Repeat the call to refresh.","summary":"List API endpoint metrics","x-dalp-auth":"session-or-api-key"}},"/api/v2/monitoring/api/request-metrics/top-errors":{"get":{"tags":["Monitoring"],"operationId":"opsApiMonitoring.topErrors","parameters":[{"name":"from","in":"query","schema":{"type":"string"},"required":true},{"name":"to","in":"query","schema":{"type":"string"},"required":true},{"name":"requestType","in":"query","schema":{"type":"string","enum":["rest","rpc"]},"required":false}],"responses":{"200":{"description":"Endpoints with the highest error counts in the requested window. `limit` defaults to 5 and accepts at most 20. The call is safe to repeat.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"endpointId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"method":{"type":"string"},"routeTemplate":{"type":"string"},"requestType":{"type":"string","enum":["rest","rpc"]},"errorCount":{"type":"number"},"totalCount":{"type":"number"},"errorRate":{"type":"number"},"dominantStatusCode":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["endpointId","method","routeTemplate","requestType","errorCount","totalCount","errorRate","dominantStatusCode"],"additionalProperties":false}}},"required":["items"],"additionalProperties":false},"examples":{"example-1":{"value":{"items":[{"endpointId":"0198f1b3-4d5e-7890-ab12-3c4d5e6f7a01","method":"GET","routeTemplate":"/api/v2/transaction-requests/:transactionId","requestType":"rest","errorCount":4,"totalCount":312,"errorRate":0.013,"dominantStatusCode":404}]}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","DEBUG_BUNDLE_WINDOW_INVALID","INVALID_REQUEST_EXECUTOR","REINDEX_REQUEST_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","ADMIN_ACCESS_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["API_MONITORING_LOG_ENTRY_NOT_FOUND","APPROVAL_NOT_FOUND","CONTRACT_ERROR","METADATA_NOT_FOUND","OPERATIONS_CASE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"API_MONITORING_LOG_ENTRY_NOT_FOUND","status":404,"message":"API monitoring log entry was not found","data":{"id":"DALP-0048","why":"No API monitoring log entry exists for the requested id in the active organization.","fix":"Verify the log entry id and organization, then retry.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["APPROVAL_REFUSED","CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","OPERATIONS_CASE_REFUSED","OPERATIONS_REINDEX_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"APPROVAL_REFUSED","status":409,"message":"The approval decision was refused","data":{"id":"DALP-9541","why":"The platform four-eyes rules and the policy version the request was raised under decide who may approve and whether the decision is still valid: the maker cannot approve their own request, a role the pinned policy does not name cannot approve, a signature that leaves the policy's approver floor short is recorded against the request rather than admitting it, a borrowed session cannot approve when the pinned policy sets operatorMayApprove to false, a payload that moved invalidates the approval, and an expired request accepts no decision. A policy that names no approving role admits any role the platform has already admitted as an approver.","fix":"Read the request again for its current state and row version, and have a distinct operator decide it.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","REINDEX_SERVICE_UNREACHABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the Platform API routes with the highest error counts in the requested window. The window must be at most 30 days. `limit` defaults to 5 and accepts at most 20. You need the administrator or organization-owner role. Repeat the call to refresh.","summary":"List top erroring API endpoints","x-dalp-auth":"session-or-api-key"}},"/api/v2/monitoring/api/request-logs":{"get":{"tags":["Monitoring"],"operationId":"opsApiMonitoring.logs","parameters":[{"name":"from","in":"query","schema":{"type":"string"},"required":true},{"name":"to","in":"query","schema":{"type":"string"},"required":true},{"name":"requestType","in":"query","schema":{"type":"string","enum":["rest","rpc"]},"required":false},{"name":"endpointId","in":"query","schema":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"required":false},{"name":"statusCode","in":"query","schema":{"type":"integer"},"required":false},{"name":"statusClass","in":"query","schema":{"type":"string","enum":["2xx","4xx","5xx"]},"required":false},{"name":"endpoint","in":"query","schema":{"type":"string"},"required":false},{"name":"method","in":"query","schema":{"type":"string"},"required":false},{"name":"cursor","in":"query","schema":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"required":false},{"name":"limit","in":"query","schema":{"type":"integer"},"required":false}],"responses":{"200":{"description":"One page of API request logs in the requested window. `nextCursor` is null on the last page. `id` is the request identifier you pass to the detail route.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"method":{"type":"string"},"routeTemplate":{"type":"string"},"requestType":{"type":"string","enum":["rest","rpc"]},"statusCode":{"anyOf":[{"type":"number"},{"type":"null"}]},"durationMs":{"anyOf":[{"type":"number"},{"type":"null"}]},"requestedAt":{"type":"string"},"userId":{"anyOf":[{"type":"string"},{"type":"null"}]},"organizationId":{"anyOf":[{"type":"string"},{"type":"null"}]},"ipAddress":{"anyOf":[{"type":"string"},{"type":"null"}]},"userAgent":{"anyOf":[{"type":"string"},{"type":"null"}]},"callerType":{"type":"string","enum":["user","anonymous","invalid"]},"callerDisplay":{"anyOf":[{"type":"string"},{"type":"null"}]},"traceId":{"anyOf":[{"type":"string"},{"type":"null"}]},"idempotencyKey":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","method","routeTemplate","requestType","statusCode","durationMs","requestedAt","userId","organizationId","ipAddress","userAgent","callerType","callerDisplay","traceId","idempotencyKey"],"additionalProperties":false}},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"totalCount":{"type":"number"},"facets":{"type":"object","additionalProperties":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"count":{"type":"number"}},"required":["value","count"],"additionalProperties":false}}}},"required":["items","nextCursor","totalCount","facets"],"additionalProperties":false},"examples":{"example-1":{"value":{"items":[{"id":"0198f1b3-4d5e-7890-ab12-3c4d5e6f7a8b","method":"GET","routeTemplate":"/api/v2/transaction-requests/:transactionId","requestType":"rest","statusCode":200,"durationMs":42,"requestedAt":"2026-03-11T16:02:08.000Z","userId":"usr_northwind_ops","organizationId":"org_northwind_coffee","ipAddress":"203.0.113.24","userAgent":"dalp-cli/1.4.0","callerType":"user","callerDisplay":"Northwind Operations","traceId":"4bf92f3577b34da6a3ce929d0e0e4736","idempotencyKey":"0198f1b3-4d5e-7890-ab12-3c4d5e6f7a8b"}],"nextCursor":null,"totalCount":1,"facets":{"statusClass":[{"value":"2xx","count":1}]}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","DEBUG_BUNDLE_WINDOW_INVALID","INVALID_REQUEST_EXECUTOR","REINDEX_REQUEST_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","ADMIN_ACCESS_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["API_MONITORING_LOG_ENTRY_NOT_FOUND","APPROVAL_NOT_FOUND","CONTRACT_ERROR","METADATA_NOT_FOUND","OPERATIONS_CASE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"API_MONITORING_LOG_ENTRY_NOT_FOUND","status":404,"message":"API monitoring log entry was not found","data":{"id":"DALP-0048","why":"No API monitoring log entry exists for the requested id in the active organization.","fix":"Verify the log entry id and organization, then retry.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["APPROVAL_REFUSED","CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","OPERATIONS_CASE_REFUSED","OPERATIONS_REINDEX_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"APPROVAL_REFUSED","status":409,"message":"The approval decision was refused","data":{"id":"DALP-9541","why":"The platform four-eyes rules and the policy version the request was raised under decide who may approve and whether the decision is still valid: the maker cannot approve their own request, a role the pinned policy does not name cannot approve, a signature that leaves the policy's approver floor short is recorded against the request rather than admitting it, a borrowed session cannot approve when the pinned policy sets operatorMayApprove to false, a payload that moved invalidates the approval, and an expired request accepts no decision. A policy that names no approving role admits any role the platform has already admitted as an approver.","fix":"Read the request again for its current state and row version, and have a distinct operator decide it.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","REINDEX_SERVICE_UNREACHABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one keyset page of captured Platform API request logs in the requested window. `nextCursor` is null on the last page. Pass a row `id` to the request-log detail route. You need the administrator or organization-owner role. Repeat the call to refresh.","summary":"List API request logs","x-dalp-auth":"session-or-api-key"}},"/api/v2/monitoring/api/request-logs/{id}":{"get":{"tags":["Monitoring"],"operationId":"opsApiMonitoring.logDetail","parameters":[{"name":"id","in":"path","schema":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"required":true}],"responses":{"200":{"description":"One API request log, including sizes, headers, and bodies when they were captured. `id` is the request identifier from the logs list. The route answers 404 when that identifier is not visible in the active organization.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"method":{"type":"string"},"routeTemplate":{"type":"string"},"requestType":{"type":"string","enum":["rest","rpc"]},"statusCode":{"anyOf":[{"type":"number"},{"type":"null"}]},"durationMs":{"anyOf":[{"type":"number"},{"type":"null"}]},"requestedAt":{"type":"string"},"userId":{"anyOf":[{"type":"string"},{"type":"null"}]},"organizationId":{"anyOf":[{"type":"string"},{"type":"null"}]},"ipAddress":{"anyOf":[{"type":"string"},{"type":"null"}]},"userAgent":{"anyOf":[{"type":"string"},{"type":"null"}]},"callerType":{"type":"string","enum":["user","anonymous","invalid"]},"callerDisplay":{"anyOf":[{"type":"string"},{"type":"null"}]},"traceId":{"anyOf":[{"type":"string"},{"type":"null"}]},"idempotencyKey":{"anyOf":[{"type":"string"},{"type":"null"}]},"requestSize":{"anyOf":[{"type":"number"},{"type":"null"}]},"responseSize":{"anyOf":[{"type":"number"},{"type":"null"}]},"errorMessage":{"anyOf":[{"type":"string"},{"type":"null"}]},"requestHeaders":{"anyOf":[{"$ref":"#/components/schemas/JsonValue"},{"type":"null"}]},"responseHeaders":{"anyOf":[{"$ref":"#/components/schemas/JsonValue"},{"type":"null"}]},"requestBody":{"anyOf":[{"$ref":"#/components/schemas/JsonValue"},{"type":"null"}]},"responseBody":{"anyOf":[{"$ref":"#/components/schemas/JsonValue"},{"type":"null"}]},"requestUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"errorDetails":{"anyOf":[{"$ref":"#/components/schemas/JsonValue"},{"type":"null"}]}},"required":["id","method","routeTemplate","requestType","statusCode","durationMs","requestedAt","userId","organizationId","ipAddress","userAgent","callerType","callerDisplay","traceId","idempotencyKey","requestSize","responseSize","errorMessage","requestHeaders","responseHeaders","requestBody","responseBody","requestUrl","errorDetails"],"additionalProperties":false},"examples":{"example-1":{"value":{"id":"0198f1b3-4d5e-7890-ab12-3c4d5e6f7a8b","method":"GET","routeTemplate":"/api/v2/transaction-requests/:transactionId","requestType":"rest","statusCode":200,"durationMs":42,"requestedAt":"2026-03-11T16:02:08.000Z","userId":"usr_northwind_ops","organizationId":"org_northwind_coffee","ipAddress":"203.0.113.24","userAgent":"dalp-cli/1.4.0","callerType":"user","callerDisplay":"Northwind Operations","traceId":"4bf92f3577b34da6a3ce929d0e0e4736","idempotencyKey":"0198f1b3-4d5e-7890-ab12-3c4d5e6f7a8b","requestSize":0,"responseSize":864,"errorMessage":null,"requestHeaders":{"accept":"application/json"},"responseHeaders":{"content-type":"application/json"},"requestBody":null,"responseBody":{"data":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"COMPLETED"}},"requestUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","errorDetails":null}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","DEBUG_BUNDLE_WINDOW_INVALID","INVALID_REQUEST_EXECUTOR","REINDEX_REQUEST_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","ADMIN_ACCESS_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["API_MONITORING_LOG_ENTRY_NOT_FOUND","APPROVAL_NOT_FOUND","CONTRACT_ERROR","METADATA_NOT_FOUND","OPERATIONS_CASE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"API_MONITORING_LOG_ENTRY_NOT_FOUND","status":404,"message":"API monitoring log entry was not found","data":{"id":"DALP-0048","why":"No API monitoring log entry exists for the requested id in the active organization.","fix":"Verify the log entry id and organization, then retry.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["APPROVAL_REFUSED","CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","OPERATIONS_CASE_REFUSED","OPERATIONS_REINDEX_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"APPROVAL_REFUSED","status":409,"message":"The approval decision was refused","data":{"id":"DALP-9541","why":"The platform four-eyes rules and the policy version the request was raised under decide who may approve and whether the decision is still valid: the maker cannot approve their own request, a role the pinned policy does not name cannot approve, a signature that leaves the policy's approver floor short is recorded against the request rather than admitting it, a borrowed session cannot approve when the pinned policy sets operatorMayApprove to false, a payload that moved invalidates the approval, and an expired request accepts no decision. A policy that names no approving role admits any role the platform has already admitted as an approver.","fix":"Read the request again for its current state and row version, and have a distinct operator decide it.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","REINDEX_SERVICE_UNREACHABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the captured Platform API request log named by `id`, including sizes, headers, and bodies when they were stored. The route answers 404 when that identifier is not visible in the active organization. You need the administrator or organization-owner role. The call is safe to repeat.","summary":"Read one API request log","x-dalp-auth":"session-or-api-key"}},"/api/v2/monitoring/api/request-logs/stream":{"get":{"tags":["Monitoring"],"operationId":"opsApiMonitoring.logsStream","parameters":[],"responses":{"200":{"description":"Each SSE data event is one captured Platform API request log for the active organization, in the same shape as a request-logs list item. Events are emitted in increasing log-id order. Connecting does not replay stored history, and the request has no resume cursor. While the connection stays open, the platform fills id gaps from stored logs when a live publish is dropped. Apply filters on the client. Use the request-logs list and detail routes for historical pages.","content":{"text/event-stream":{"schema":{"type":"object","properties":{"eventType":{"type":"string","enum":["request"]},"request":{"type":"object","properties":{"id":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"method":{"type":"string"},"routeTemplate":{"type":"string"},"requestType":{"type":"string","enum":["rest","rpc"]},"statusCode":{"anyOf":[{"type":"number"},{"type":"null"}]},"durationMs":{"anyOf":[{"type":"number"},{"type":"null"}]},"requestedAt":{"type":"string"},"userId":{"anyOf":[{"type":"string"},{"type":"null"}]},"organizationId":{"anyOf":[{"type":"string"},{"type":"null"}]},"ipAddress":{"anyOf":[{"type":"string"},{"type":"null"}]},"userAgent":{"anyOf":[{"type":"string"},{"type":"null"}]},"callerType":{"type":"string","enum":["user","anonymous","invalid"]},"callerDisplay":{"anyOf":[{"type":"string"},{"type":"null"}]},"traceId":{"anyOf":[{"type":"string"},{"type":"null"}]},"idempotencyKey":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","method","routeTemplate","requestType","statusCode","durationMs","requestedAt","userId","organizationId","ipAddress","userAgent","callerType","callerDisplay","traceId","idempotencyKey"],"additionalProperties":true}},"required":["eventType","request"],"additionalProperties":true},"x-effect-stream":{"encoding":"sse","causeSchema":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["Fail"]},"error":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["OpsLogNotFound"]},"message":{"type":"string","minLength":1},"cause":{"anyOf":[{},{"type":"null"}]}},"required":["_tag","message"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["OpsAdminRequired"]},"message":{"type":"string","minLength":1},"cause":{"anyOf":[{},{"type":"null"}]}},"required":["_tag","message"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["OpsReindexConflict"]},"message":{"type":"string","minLength":1},"cause":{"anyOf":[{},{"type":"null"}]}},"required":["_tag","message"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["OpsReindexInvalid"]},"message":{"type":"string","minLength":1},"cause":{"anyOf":[{},{"type":"null"}]}},"required":["_tag","message"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["OpsIndexerUnreachable"]},"message":{"type":"string","minLength":1},"cause":{"anyOf":[{},{"type":"null"}]}},"required":["_tag","message"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["OpsMetadataNotFound"]},"message":{"type":"string","minLength":1},"cause":{"anyOf":[{},{"type":"null"}]}},"required":["_tag","message"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["OpsBundleWindowInvalid"]},"message":{"type":"string","minLength":1},"cause":{"anyOf":[{},{"type":"null"}]}},"required":["_tag","message"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["OpsApprovalNotFound"]},"message":{"type":"string","minLength":1},"cause":{"anyOf":[{},{"type":"null"}]}},"required":["_tag","message"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["OpsApprovalRefused"]},"message":{"type":"string","minLength":1},"cause":{"anyOf":[{},{"type":"null"}]},"violation":{"type":"string","enum":["same-actor","already-decided","wrong-kind","wrong-state","impersonated-session","digest-moved","row-version-moved","expired","approver-role-not-permitted","quorum-not-met","not-named-approver"]},"storedDigest":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"submittedDigest":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]}},"required":["_tag","message","violation","storedDigest","submittedDigest"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["OpsCaseNotFound"]},"message":{"type":"string","minLength":1},"cause":{"anyOf":[{},{"type":"null"}]}},"required":["_tag","message"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["OpsCaseRefused"]},"message":{"type":"string","minLength":1},"cause":{"anyOf":[{},{"type":"null"}]},"reason":{"type":"string","enum":["already-resolved","already-acknowledged","expired","row-version-moved"]}},"required":["_tag","message","reason"],"additionalProperties":false}]}},"required":["_tag","error"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["Die"]},"defect":{}},"required":["_tag","defect"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["Interrupt"]},"fiberId":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["_tag","fiberId"],"additionalProperties":false}]}},"errorSchema":{"anyOf":[{"$ref":"#/components/schemas/OpsLogNotFoundEncoded"},{"$ref":"#/components/schemas/OpsAdminRequiredEncoded"},{"$ref":"#/components/schemas/OpsReindexConflictEncoded"},{"$ref":"#/components/schemas/OpsReindexInvalidEncoded"},{"$ref":"#/components/schemas/OpsIndexerUnreachableEncoded"},{"$ref":"#/components/schemas/OpsMetadataNotFoundEncoded"},{"$ref":"#/components/schemas/OpsBundleWindowInvalidEncoded"},{"$ref":"#/components/schemas/OpsApprovalNotFoundEncoded"},{"$ref":"#/components/schemas/OpsApprovalRefusedEncoded"},{"$ref":"#/components/schemas/OpsCaseNotFoundEncoded"},{"$ref":"#/components/schemas/OpsCaseRefusedEncoded"}],"discriminator":{"propertyName":"_tag","mapping":{"OpsLogNotFound":"#/components/schemas/OpsLogNotFoundEncoded","OpsAdminRequired":"#/components/schemas/OpsAdminRequiredEncoded","OpsReindexConflict":"#/components/schemas/OpsReindexConflictEncoded","OpsReindexInvalid":"#/components/schemas/OpsReindexInvalidEncoded","OpsIndexerUnreachable":"#/components/schemas/OpsIndexerUnreachableEncoded","OpsMetadataNotFound":"#/components/schemas/OpsMetadataNotFoundEncoded","OpsBundleWindowInvalid":"#/components/schemas/OpsBundleWindowInvalidEncoded","OpsApprovalNotFound":"#/components/schemas/OpsApprovalNotFoundEncoded","OpsApprovalRefused":"#/components/schemas/OpsApprovalRefusedEncoded","OpsCaseNotFound":"#/components/schemas/OpsCaseNotFoundEncoded","OpsCaseRefused":"#/components/schemas/OpsCaseRefusedEncoded"}}},"failureEvent":"effect/http-api/stream/failure"},"examples":{"example-1":{"value":{"eventType":"request","request":{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","method":"GET","routeTemplate":"/api/v2/transaction-requests/:transactionId","requestType":"rest","statusCode":200,"durationMs":42,"requestedAt":"2026-03-11T16:02:08.000Z","userId":"user_northwind_treasury","organizationId":"org_northwind_coffee","ipAddress":"203.0.113.24","userAgent":"dalp-cli/1.4.0","callerType":"user","callerDisplay":"Northwind Operations","traceId":"4bf92f3577b34da6a3ce929d0e0e4736","idempotencyKey":"0198f1b3-4d5e-7890-ab12-3c4d5e6f7a8b"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","DEBUG_BUNDLE_WINDOW_INVALID","INVALID_REQUEST_EXECUTOR","REINDEX_REQUEST_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","ADMIN_ACCESS_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["API_MONITORING_LOG_ENTRY_NOT_FOUND","APPROVAL_NOT_FOUND","CONTRACT_ERROR","METADATA_NOT_FOUND","OPERATIONS_CASE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"API_MONITORING_LOG_ENTRY_NOT_FOUND","status":404,"message":"API monitoring log entry was not found","data":{"id":"DALP-0048","why":"No API monitoring log entry exists for the requested id in the active organization.","fix":"Verify the log entry id and organization, then retry.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["APPROVAL_REFUSED","CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","OPERATIONS_CASE_REFUSED","OPERATIONS_REINDEX_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"APPROVAL_REFUSED","status":409,"message":"The approval decision was refused","data":{"id":"DALP-9541","why":"The platform four-eyes rules and the policy version the request was raised under decide who may approve and whether the decision is still valid: the maker cannot approve their own request, a role the pinned policy does not name cannot approve, a signature that leaves the policy's approver floor short is recorded against the request rather than admitting it, a borrowed session cannot approve when the pinned policy sets operatorMayApprove to false, a payload that moved invalidates the approval, and an expired request accepts no decision. A policy that names no approving role admits any role the platform has already admitted as an approver.","fix":"Read the request again for its current state and row version, and have a distinct operator decide it.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","REINDEX_SERVICE_UNREACHABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Opens an SSE stream of new Platform API request logs for the active organization. The stream does not accept filters; apply filters on the client. The stream stays open until the client disconnects. You need the administrator or organization-owner role.","summary":"Stream API request logs","x-dalp-auth":"session-or-api-key"}},"/api/v2/blockchain-monitoring/service-health-metrics":{"get":{"tags":["Monitoring"],"operationId":"opsChainHealth.services","parameters":[],"responses":{"200":{"description":"Per-service health statistics for tracked network RPC endpoints and Ledger Index services. The window must be at most 7 days.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"serviceId":{"type":"string","minLength":1},"serviceType":{"type":"string","enum":["chain-rpc","indexer"]},"chainId":{"type":"number"},"networkName":{"type":"string"},"latestStatus":{"type":"string","enum":["healthy","degraded","critical","unknown","reindexing"]},"latestSampledAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"snapshotCount":{"type":"number"},"avgSyncLag":{"anyOf":[{"type":"number"},{"type":"null"}]},"avgBlockAgeSeconds":{"anyOf":[{"type":"number"},{"type":"null"}]},"avgFinalityLagBlocks":{"anyOf":[{"type":"number"},{"type":"null"}]},"avgStallSeconds":{"anyOf":[{"type":"number"},{"type":"null"}]},"healthyPct":{"type":"number"},"degradedPct":{"type":"number"},"criticalPct":{"type":"number"}},"required":["serviceId","serviceType","chainId","networkName","latestStatus","latestSampledAt","snapshotCount","avgSyncLag","avgBlockAgeSeconds","avgFinalityLagBlocks","avgStallSeconds","healthyPct","degradedPct","criticalPct"],"additionalProperties":false}},"examples":{"example-1":{"value":[{"serviceId":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c","serviceType":"chain-rpc","chainId":1,"networkName":"sepolia","latestStatus":"healthy","latestSampledAt":"2026-03-11T16:02:08.000Z","snapshotCount":96,"avgSyncLag":2,"avgBlockAgeSeconds":0,"avgFinalityLagBlocks":0,"avgStallSeconds":0,"healthyPct":100,"degradedPct":0,"criticalPct":0}]}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","DEBUG_BUNDLE_WINDOW_INVALID","INVALID_REQUEST_EXECUTOR","REINDEX_REQUEST_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","ADMIN_ACCESS_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["API_MONITORING_LOG_ENTRY_NOT_FOUND","APPROVAL_NOT_FOUND","CONTRACT_ERROR","METADATA_NOT_FOUND","OPERATIONS_CASE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"API_MONITORING_LOG_ENTRY_NOT_FOUND","status":404,"message":"API monitoring log entry was not found","data":{"id":"DALP-0048","why":"No API monitoring log entry exists for the requested id in the active organization.","fix":"Verify the log entry id and organization, then retry.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["APPROVAL_REFUSED","CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","OPERATIONS_CASE_REFUSED","OPERATIONS_REINDEX_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"APPROVAL_REFUSED","status":409,"message":"The approval decision was refused","data":{"id":"DALP-9541","why":"The platform four-eyes rules and the policy version the request was raised under decide who may approve and whether the decision is still valid: the maker cannot approve their own request, a role the pinned policy does not name cannot approve, a signature that leaves the policy's approver floor short is recorded against the request rather than admitting it, a borrowed session cannot approve when the pinned policy sets operatorMayApprove to false, a payload that moved invalidates the approval, and an expired request accepts no decision. A policy that names no approving role admits any role the platform has already admitted as an approver.","fix":"Read the request again for its current state and row version, and have a distinct operator decide it.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","REINDEX_SERVICE_UNREACHABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns per-service health statistics for tracked network RPC endpoints and Ledger Index services in the requested window. The window must be at most 7 days. You need the administrator or organization-owner role. Repeat the call to refresh.","summary":"List blockchain-service health","x-dalp-auth":"session-or-api-key"}},"/api/v2/blockchain-monitoring/health-metrics/summary":{"get":{"tags":["Monitoring"],"operationId":"opsChainHealth.summary","parameters":[],"responses":{"200":{"description":"Latest stored health snapshot for each tracked network RPC endpoint and Ledger Index service. The window must be at most 7 days. Repeat the call to refresh.","content":{"application/json":{"schema":{"type":"object","properties":{"services":{"type":"array","items":{"type":"object","properties":{"serviceId":{"type":"string","minLength":1},"serviceType":{"type":"string","enum":["chain-rpc","indexer"]},"chainId":{"type":"number"},"networkName":{"type":"string"},"latestStatus":{"type":"string","enum":["healthy","degraded","critical","unknown","reindexing"]},"latestSampledAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"snapshotCount":{"type":"number"},"avgSyncLag":{"anyOf":[{"type":"number"},{"type":"null"}]},"avgBlockAgeSeconds":{"anyOf":[{"type":"number"},{"type":"null"}]},"avgFinalityLagBlocks":{"anyOf":[{"type":"number"},{"type":"null"}]},"avgStallSeconds":{"anyOf":[{"type":"number"},{"type":"null"}]},"healthyPct":{"type":"number"},"degradedPct":{"type":"number"},"criticalPct":{"type":"number"}},"required":["serviceId","serviceType","chainId","networkName","latestStatus","latestSampledAt","snapshotCount","avgSyncLag","avgBlockAgeSeconds","avgFinalityLagBlocks","avgStallSeconds","healthyPct","degradedPct","criticalPct"],"additionalProperties":false}}},"required":["services"],"additionalProperties":false},"examples":{"example-1":{"value":{"services":[{"serviceId":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c","serviceType":"indexer","chainId":1,"networkName":"Ethereum","latestStatus":"healthy","latestSampledAt":"2026-03-11T16:02:08.000Z","snapshotCount":96,"avgSyncLag":2,"avgBlockAgeSeconds":0,"avgFinalityLagBlocks":0,"avgStallSeconds":0,"healthyPct":100,"degradedPct":0,"criticalPct":0}]}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","DEBUG_BUNDLE_WINDOW_INVALID","INVALID_REQUEST_EXECUTOR","REINDEX_REQUEST_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","ADMIN_ACCESS_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["API_MONITORING_LOG_ENTRY_NOT_FOUND","APPROVAL_NOT_FOUND","CONTRACT_ERROR","METADATA_NOT_FOUND","OPERATIONS_CASE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"API_MONITORING_LOG_ENTRY_NOT_FOUND","status":404,"message":"API monitoring log entry was not found","data":{"id":"DALP-0048","why":"No API monitoring log entry exists for the requested id in the active organization.","fix":"Verify the log entry id and organization, then retry.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["APPROVAL_REFUSED","CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","OPERATIONS_CASE_REFUSED","OPERATIONS_REINDEX_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"APPROVAL_REFUSED","status":409,"message":"The approval decision was refused","data":{"id":"DALP-9541","why":"The platform four-eyes rules and the policy version the request was raised under decide who may approve and whether the decision is still valid: the maker cannot approve their own request, a role the pinned policy does not name cannot approve, a signature that leaves the policy's approver floor short is recorded against the request rather than admitting it, a borrowed session cannot approve when the pinned policy sets operatorMayApprove to false, a payload that moved invalidates the approval, and an expired request accepts no decision. A policy that names no approving role admits any role the platform has already admitted as an approver.","fix":"Read the request again for its current state and row version, and have a distinct operator decide it.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","REINDEX_SERVICE_UNREACHABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the latest stored health snapshot for each tracked network RPC endpoint and Ledger Index service. The window must be at most 7 days. You need the administrator or organization-owner role. Repeat the call to refresh.","summary":"Read blockchain-service health","x-dalp-auth":"session-or-api-key"}},"/api/v2/blockchain-monitoring/health-metrics/timeline":{"get":{"tags":["Monitoring"],"operationId":"opsChainHealth.timeline","parameters":[{"name":"from","in":"query","schema":{"type":"string"},"required":true},{"name":"to","in":"query","schema":{"type":"string"},"required":true},{"name":"requestType","in":"query","schema":{"type":"string","enum":["rest","rpc"]},"required":false}],"responses":{"200":{"description":"Health samples grouped into hour or day buckets for each tracked network RPC endpoint and Ledger Index service. The window must be at most 31 days. Buckets come from hourly health rollups, so the newest bucket can trail live samples by up to five minutes. Repeat the call to refresh.","content":{"application/json":{"schema":{"type":"object","properties":{"buckets":{"type":"array","items":{"type":"object","properties":{"timestamp":{"type":"string"},"services":{"type":"array","items":{"type":"object","properties":{"serviceKey":{"type":"string"},"serviceType":{"type":"string","enum":["chain-rpc","indexer"]},"chainId":{"type":"number"},"networkName":{"type":"string"},"healthyPct":{"type":"number"},"degradedPct":{"type":"number"},"criticalPct":{"type":"number"}},"required":["serviceKey","serviceType","chainId","networkName","healthyPct","degradedPct","criticalPct"],"additionalProperties":false}}},"required":["timestamp","services"],"additionalProperties":false}}},"required":["buckets"],"additionalProperties":false},"examples":{"example-1":{"value":{"buckets":[{"timestamp":"2026-03-11T16:00:00.000Z","services":[{"serviceKey":"indexer-1","serviceType":"indexer","chainId":1,"networkName":"Ethereum","healthyPct":100,"degradedPct":0,"criticalPct":0}]}]}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","DEBUG_BUNDLE_WINDOW_INVALID","INVALID_REQUEST_EXECUTOR","REINDEX_REQUEST_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","ADMIN_ACCESS_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["API_MONITORING_LOG_ENTRY_NOT_FOUND","APPROVAL_NOT_FOUND","CONTRACT_ERROR","METADATA_NOT_FOUND","OPERATIONS_CASE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"API_MONITORING_LOG_ENTRY_NOT_FOUND","status":404,"message":"API monitoring log entry was not found","data":{"id":"DALP-0048","why":"No API monitoring log entry exists for the requested id in the active organization.","fix":"Verify the log entry id and organization, then retry.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["APPROVAL_REFUSED","CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","OPERATIONS_CASE_REFUSED","OPERATIONS_REINDEX_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"APPROVAL_REFUSED","status":409,"message":"The approval decision was refused","data":{"id":"DALP-9541","why":"The platform four-eyes rules and the policy version the request was raised under decide who may approve and whether the decision is still valid: the maker cannot approve their own request, a role the pinned policy does not name cannot approve, a signature that leaves the policy's approver floor short is recorded against the request rather than admitting it, a borrowed session cannot approve when the pinned policy sets operatorMayApprove to false, a payload that moved invalidates the approval, and an expired request accepts no decision. A policy that names no approving role admits any role the platform has already admitted as an approver.","fix":"Read the request again for its current state and row version, and have a distinct operator decide it.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","REINDEX_SERVICE_UNREACHABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns hour or day health buckets over the requested window for each tracked network RPC endpoint and Ledger Index service. The window must be at most 31 days. Optional `serviceId` limits the series to one service. You need the administrator or organization-owner role. Repeat the call to refresh.","summary":"Read blockchain-service health timeline","x-dalp-auth":"session-or-api-key"}},"/api/v2/blockchain-monitoring/deployment-state":{"get":{"tags":["Monitoring"],"operationId":"opsChainHealth.deploymentState","parameters":[],"responses":{"200":{"description":"Indexer deployment versions, reindex progress, and backfill counts. Null fields are not yet reported.","content":{"application/json":{"schema":{"type":"object","properties":{"servingVersion":{"anyOf":[{"type":"number"},{"type":"null"}]},"buildingVersion":{"anyOf":[{"type":"number"},{"type":"null"}]},"codeVersion":{"anyOf":[{"type":"number"},{"type":"null"}]},"reindexProgressPct":{"anyOf":[{"type":"number"},{"type":"null"}]},"reindexCurrentBlock":{"anyOf":[{"type":"number"},{"type":"null"}]},"reindexTargetBlock":{"anyOf":[{"type":"number"},{"type":"null"}]},"reindexStartedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"pendingBackfillCount":{"anyOf":[{"type":"number"},{"type":"null"}]},"backfillingCount":{"anyOf":[{"type":"number"},{"type":"null"}]},"syncedCount":{"anyOf":[{"type":"number"},{"type":"null"}]},"failedCount":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["servingVersion","buildingVersion","codeVersion","reindexProgressPct","reindexCurrentBlock","reindexTargetBlock","reindexStartedAt","pendingBackfillCount","backfillingCount","syncedCount","failedCount"],"additionalProperties":false},"examples":{"example-1":{"value":{"servingVersion":14,"buildingVersion":0,"codeVersion":14,"reindexProgressPct":0,"reindexCurrentBlock":0,"reindexTargetBlock":0,"reindexStartedAt":null,"pendingBackfillCount":0,"backfillingCount":0,"syncedCount":0,"failedCount":0}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","DEBUG_BUNDLE_WINDOW_INVALID","INVALID_REQUEST_EXECUTOR","REINDEX_REQUEST_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","ADMIN_ACCESS_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["API_MONITORING_LOG_ENTRY_NOT_FOUND","APPROVAL_NOT_FOUND","CONTRACT_ERROR","METADATA_NOT_FOUND","OPERATIONS_CASE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"API_MONITORING_LOG_ENTRY_NOT_FOUND","status":404,"message":"API monitoring log entry was not found","data":{"id":"DALP-0048","why":"No API monitoring log entry exists for the requested id in the active organization.","fix":"Verify the log entry id and organization, then retry.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["APPROVAL_REFUSED","CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","OPERATIONS_CASE_REFUSED","OPERATIONS_REINDEX_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"APPROVAL_REFUSED","status":409,"message":"The approval decision was refused","data":{"id":"DALP-9541","why":"The platform four-eyes rules and the policy version the request was raised under decide who may approve and whether the decision is still valid: the maker cannot approve their own request, a role the pinned policy does not name cannot approve, a signature that leaves the policy's approver floor short is recorded against the request rather than admitting it, a borrowed session cannot approve when the pinned policy sets operatorMayApprove to false, a payload that moved invalidates the approval, and an expired request accepts no decision. A policy that names no approving role admits any role the platform has already admitted as an approver.","fix":"Read the request again for its current state and row version, and have a distinct operator decide it.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","REINDEX_SERVICE_UNREACHABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the indexer deployment state for the active chain: the serving, building, and code versions, reindex progress, and backfill counts. A field is null when the indexer has not reported it. Repeating the request is safe.","summary":"Read indexer deployment state","x-dalp-auth":"session-or-api-key"}},"/api/v2/blockchain-monitoring/health-snapshots/stream":{"get":{"tags":["Monitoring"],"operationId":"opsChainHealth.snapshotStream","parameters":[],"responses":{"200":{"description":"Each SSE data event is a snapshot health sample for one network RPC or Ledger Index service, or a block-progress update with the latest Ledger Index block on one chain. Snapshot events are emitted in increasing snapshot-id order. Connecting does not replay stored snapshots, and the request has no resume cursor. While the connection stays open, the platform fills snapshot-id gaps from stored samples when a live publish is dropped. Block-progress events are live only and are not replayed. Use the health-snapshots list for historical samples.","content":{"text/event-stream":{"schema":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"serviceType":{"type":"string","enum":["chain-rpc","indexer"]},"chainId":{"type":"number"},"networkName":{"type":"string"},"status":{"type":"string","enum":["healthy","degraded","critical","unknown","reindexing"]},"rawStatus":{"type":"string","enum":["healthy","degraded","critical","unknown","reindexing"]},"sampledAt":{"type":"string"},"blockHeight":{"anyOf":[{"type":"number"},{"type":"null"}]},"chainHeadBlock":{"anyOf":[{"type":"number"},{"type":"null"}]},"syncLag":{"anyOf":[{"type":"number"},{"type":"null"}]},"entityCount":{"anyOf":[{"type":"number"},{"type":"null"}]},"blockAgeSeconds":{"anyOf":[{"type":"number"},{"type":"null"}]},"finalityLagBlocks":{"anyOf":[{"type":"number"},{"type":"null"}]},"stallSeconds":{"anyOf":[{"type":"number"},{"type":"null"}]},"collectorLatencyMs":{"anyOf":[{"type":"number"},{"type":"null"}]},"eventType":{"type":"string","enum":["snapshot"]},"serviceId":{"type":"string","minLength":1},"deploymentState":{"anyOf":[{"type":"object","properties":{"servingVersion":{"anyOf":[{"type":"number"},{"type":"null"}]},"buildingVersion":{"anyOf":[{"type":"number"},{"type":"null"}]},"codeVersion":{"anyOf":[{"type":"number"},{"type":"null"}]},"reindexProgressPct":{"anyOf":[{"type":"number"},{"type":"null"}]},"reindexCurrentBlock":{"anyOf":[{"type":"number"},{"type":"null"}]},"reindexTargetBlock":{"anyOf":[{"type":"number"},{"type":"null"}]},"reindexStartedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"pendingBackfillCount":{"anyOf":[{"type":"number"},{"type":"null"}]},"backfillingCount":{"anyOf":[{"type":"number"},{"type":"null"}]},"syncedCount":{"anyOf":[{"type":"number"},{"type":"null"}]},"failedCount":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["servingVersion","buildingVersion","codeVersion","reindexProgressPct","reindexCurrentBlock","reindexTargetBlock","reindexStartedAt","pendingBackfillCount","backfillingCount","syncedCount","failedCount"],"additionalProperties":true},{"type":"null"}]}},"required":["id","serviceType","chainId","networkName","status","rawStatus","sampledAt","blockHeight","chainHeadBlock","syncLag","entityCount","blockAgeSeconds","finalityLagBlocks","stallSeconds","collectorLatencyMs","eventType","serviceId","deploymentState"],"additionalProperties":true},{"type":"object","properties":{"eventType":{"type":"string","enum":["block-progress"]},"chainId":{"type":"number"},"blockNumber":{"type":"number"}},"required":["eventType","chainId","blockNumber"],"additionalProperties":true}]},"x-effect-stream":{"encoding":"sse","causeSchema":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["Fail"]},"error":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["OpsLogNotFound"]},"message":{"type":"string","minLength":1},"cause":{"anyOf":[{},{"type":"null"}]}},"required":["_tag","message"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["OpsAdminRequired"]},"message":{"type":"string","minLength":1},"cause":{"anyOf":[{},{"type":"null"}]}},"required":["_tag","message"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["OpsReindexConflict"]},"message":{"type":"string","minLength":1},"cause":{"anyOf":[{},{"type":"null"}]}},"required":["_tag","message"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["OpsReindexInvalid"]},"message":{"type":"string","minLength":1},"cause":{"anyOf":[{},{"type":"null"}]}},"required":["_tag","message"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["OpsIndexerUnreachable"]},"message":{"type":"string","minLength":1},"cause":{"anyOf":[{},{"type":"null"}]}},"required":["_tag","message"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["OpsMetadataNotFound"]},"message":{"type":"string","minLength":1},"cause":{"anyOf":[{},{"type":"null"}]}},"required":["_tag","message"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["OpsBundleWindowInvalid"]},"message":{"type":"string","minLength":1},"cause":{"anyOf":[{},{"type":"null"}]}},"required":["_tag","message"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["OpsApprovalNotFound"]},"message":{"type":"string","minLength":1},"cause":{"anyOf":[{},{"type":"null"}]}},"required":["_tag","message"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["OpsApprovalRefused"]},"message":{"type":"string","minLength":1},"cause":{"anyOf":[{},{"type":"null"}]},"violation":{"type":"string","enum":["same-actor","already-decided","wrong-kind","wrong-state","impersonated-session","digest-moved","row-version-moved","expired","approver-role-not-permitted","quorum-not-met","not-named-approver"]},"storedDigest":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"submittedDigest":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]}},"required":["_tag","message","violation","storedDigest","submittedDigest"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["OpsCaseNotFound"]},"message":{"type":"string","minLength":1},"cause":{"anyOf":[{},{"type":"null"}]}},"required":["_tag","message"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["OpsCaseRefused"]},"message":{"type":"string","minLength":1},"cause":{"anyOf":[{},{"type":"null"}]},"reason":{"type":"string","enum":["already-resolved","already-acknowledged","expired","row-version-moved"]}},"required":["_tag","message","reason"],"additionalProperties":false}]}},"required":["_tag","error"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["Die"]},"defect":{}},"required":["_tag","defect"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["Interrupt"]},"fiberId":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["_tag","fiberId"],"additionalProperties":false}]}},"errorSchema":{"anyOf":[{"$ref":"#/components/schemas/OpsLogNotFoundEncoded"},{"$ref":"#/components/schemas/OpsAdminRequiredEncoded"},{"$ref":"#/components/schemas/OpsReindexConflictEncoded"},{"$ref":"#/components/schemas/OpsReindexInvalidEncoded"},{"$ref":"#/components/schemas/OpsIndexerUnreachableEncoded"},{"$ref":"#/components/schemas/OpsMetadataNotFoundEncoded"},{"$ref":"#/components/schemas/OpsBundleWindowInvalidEncoded"},{"$ref":"#/components/schemas/OpsApprovalNotFoundEncoded"},{"$ref":"#/components/schemas/OpsApprovalRefusedEncoded"},{"$ref":"#/components/schemas/OpsCaseNotFoundEncoded"},{"$ref":"#/components/schemas/OpsCaseRefusedEncoded"}],"discriminator":{"propertyName":"_tag","mapping":{"OpsLogNotFound":"#/components/schemas/OpsLogNotFoundEncoded","OpsAdminRequired":"#/components/schemas/OpsAdminRequiredEncoded","OpsReindexConflict":"#/components/schemas/OpsReindexConflictEncoded","OpsReindexInvalid":"#/components/schemas/OpsReindexInvalidEncoded","OpsIndexerUnreachable":"#/components/schemas/OpsIndexerUnreachableEncoded","OpsMetadataNotFound":"#/components/schemas/OpsMetadataNotFoundEncoded","OpsBundleWindowInvalid":"#/components/schemas/OpsBundleWindowInvalidEncoded","OpsApprovalNotFound":"#/components/schemas/OpsApprovalNotFoundEncoded","OpsApprovalRefused":"#/components/schemas/OpsApprovalRefusedEncoded","OpsCaseNotFound":"#/components/schemas/OpsCaseNotFoundEncoded","OpsCaseRefused":"#/components/schemas/OpsCaseRefusedEncoded"}}},"failureEvent":"effect/http-api/stream/failure"},"examples":{"example-1":{"value":{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","serviceType":"chain-rpc","chainId":1,"networkName":"sepolia","status":"healthy","rawStatus":"healthy","sampledAt":"2026-03-11T16:02:08.000Z","blockHeight":21458901,"chainHeadBlock":21458903,"syncLag":2,"entityCount":0,"blockAgeSeconds":0,"finalityLagBlocks":0,"stallSeconds":0,"collectorLatencyMs":21,"eventType":"snapshot","serviceId":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c","deploymentState":{"servingVersion":14,"buildingVersion":0,"codeVersion":14,"reindexProgressPct":0,"reindexCurrentBlock":0,"reindexTargetBlock":0,"reindexStartedAt":null,"pendingBackfillCount":0,"backfillingCount":0,"syncedCount":0,"failedCount":0}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","DEBUG_BUNDLE_WINDOW_INVALID","INVALID_REQUEST_EXECUTOR","REINDEX_REQUEST_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","ADMIN_ACCESS_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["API_MONITORING_LOG_ENTRY_NOT_FOUND","APPROVAL_NOT_FOUND","CONTRACT_ERROR","METADATA_NOT_FOUND","OPERATIONS_CASE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"API_MONITORING_LOG_ENTRY_NOT_FOUND","status":404,"message":"API monitoring log entry was not found","data":{"id":"DALP-0048","why":"No API monitoring log entry exists for the requested id in the active organization.","fix":"Verify the log entry id and organization, then retry.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["APPROVAL_REFUSED","CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","OPERATIONS_CASE_REFUSED","OPERATIONS_REINDEX_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"APPROVAL_REFUSED","status":409,"message":"The approval decision was refused","data":{"id":"DALP-9541","why":"The platform four-eyes rules and the policy version the request was raised under decide who may approve and whether the decision is still valid: the maker cannot approve their own request, a role the pinned policy does not name cannot approve, a signature that leaves the policy's approver floor short is recorded against the request rather than admitting it, a borrowed session cannot approve when the pinned policy sets operatorMayApprove to false, a payload that moved invalidates the approval, and an expired request accepts no decision. A policy that names no approving role admits any role the platform has already admitted as an approver.","fix":"Read the request again for its current state and row version, and have a distinct operator decide it.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","REINDEX_SERVICE_UNREACHABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Opens an SSE stream of new health snapshots and block-progress events for tracked network RPC endpoints and Ledger Index services. The stream stays open until the client disconnects. You need the administrator or organization-owner role.","summary":"Stream blockchain-service health snapshots","x-dalp-auth":"session-or-api-key"}},"/api/v2/events/block-progress":{"get":{"tags":["Monitoring"],"operationId":"opsChainHealth.blockProgress","parameters":[],"responses":{"200":{"description":"Each SSE data event is a block-progress update with the latest Ledger Index block on one chain. Events carry only chainId and blockNumber. Connecting does not replay history. The stream stays open until the client disconnects. Any authenticated session can subscribe.","content":{"text/event-stream":{"schema":{"type":"object","properties":{"chainId":{"type":"number"},"blockNumber":{"type":"number"}},"required":["chainId","blockNumber"],"additionalProperties":true},"x-effect-stream":{"encoding":"sse","causeSchema":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["Fail"]},"error":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["OpsLogNotFound"]},"message":{"type":"string","minLength":1},"cause":{"anyOf":[{},{"type":"null"}]}},"required":["_tag","message"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["OpsAdminRequired"]},"message":{"type":"string","minLength":1},"cause":{"anyOf":[{},{"type":"null"}]}},"required":["_tag","message"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["OpsReindexConflict"]},"message":{"type":"string","minLength":1},"cause":{"anyOf":[{},{"type":"null"}]}},"required":["_tag","message"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["OpsReindexInvalid"]},"message":{"type":"string","minLength":1},"cause":{"anyOf":[{},{"type":"null"}]}},"required":["_tag","message"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["OpsIndexerUnreachable"]},"message":{"type":"string","minLength":1},"cause":{"anyOf":[{},{"type":"null"}]}},"required":["_tag","message"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["OpsMetadataNotFound"]},"message":{"type":"string","minLength":1},"cause":{"anyOf":[{},{"type":"null"}]}},"required":["_tag","message"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["OpsBundleWindowInvalid"]},"message":{"type":"string","minLength":1},"cause":{"anyOf":[{},{"type":"null"}]}},"required":["_tag","message"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["OpsApprovalNotFound"]},"message":{"type":"string","minLength":1},"cause":{"anyOf":[{},{"type":"null"}]}},"required":["_tag","message"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["OpsApprovalRefused"]},"message":{"type":"string","minLength":1},"cause":{"anyOf":[{},{"type":"null"}]},"violation":{"type":"string","enum":["same-actor","already-decided","wrong-kind","wrong-state","impersonated-session","digest-moved","row-version-moved","expired","approver-role-not-permitted","quorum-not-met","not-named-approver"]},"storedDigest":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"submittedDigest":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]}},"required":["_tag","message","violation","storedDigest","submittedDigest"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["OpsCaseNotFound"]},"message":{"type":"string","minLength":1},"cause":{"anyOf":[{},{"type":"null"}]}},"required":["_tag","message"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["OpsCaseRefused"]},"message":{"type":"string","minLength":1},"cause":{"anyOf":[{},{"type":"null"}]},"reason":{"type":"string","enum":["already-resolved","already-acknowledged","expired","row-version-moved"]}},"required":["_tag","message","reason"],"additionalProperties":false}]}},"required":["_tag","error"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["Die"]},"defect":{}},"required":["_tag","defect"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["Interrupt"]},"fiberId":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["_tag","fiberId"],"additionalProperties":false}]}},"errorSchema":{"anyOf":[{"$ref":"#/components/schemas/OpsLogNotFoundEncoded"},{"$ref":"#/components/schemas/OpsAdminRequiredEncoded"},{"$ref":"#/components/schemas/OpsReindexConflictEncoded"},{"$ref":"#/components/schemas/OpsReindexInvalidEncoded"},{"$ref":"#/components/schemas/OpsIndexerUnreachableEncoded"},{"$ref":"#/components/schemas/OpsMetadataNotFoundEncoded"},{"$ref":"#/components/schemas/OpsBundleWindowInvalidEncoded"},{"$ref":"#/components/schemas/OpsApprovalNotFoundEncoded"},{"$ref":"#/components/schemas/OpsApprovalRefusedEncoded"},{"$ref":"#/components/schemas/OpsCaseNotFoundEncoded"},{"$ref":"#/components/schemas/OpsCaseRefusedEncoded"}],"discriminator":{"propertyName":"_tag","mapping":{"OpsLogNotFound":"#/components/schemas/OpsLogNotFoundEncoded","OpsAdminRequired":"#/components/schemas/OpsAdminRequiredEncoded","OpsReindexConflict":"#/components/schemas/OpsReindexConflictEncoded","OpsReindexInvalid":"#/components/schemas/OpsReindexInvalidEncoded","OpsIndexerUnreachable":"#/components/schemas/OpsIndexerUnreachableEncoded","OpsMetadataNotFound":"#/components/schemas/OpsMetadataNotFoundEncoded","OpsBundleWindowInvalid":"#/components/schemas/OpsBundleWindowInvalidEncoded","OpsApprovalNotFound":"#/components/schemas/OpsApprovalNotFoundEncoded","OpsApprovalRefused":"#/components/schemas/OpsApprovalRefusedEncoded","OpsCaseNotFound":"#/components/schemas/OpsCaseNotFoundEncoded","OpsCaseRefused":"#/components/schemas/OpsCaseRefusedEncoded"}}},"failureEvent":"effect/http-api/stream/failure"},"examples":{"example-1":{"value":{"chainId":1,"blockNumber":0}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","DEBUG_BUNDLE_WINDOW_INVALID","INVALID_REQUEST_EXECUTOR","REINDEX_REQUEST_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","ADMIN_ACCESS_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["API_MONITORING_LOG_ENTRY_NOT_FOUND","APPROVAL_NOT_FOUND","CONTRACT_ERROR","METADATA_NOT_FOUND","OPERATIONS_CASE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"API_MONITORING_LOG_ENTRY_NOT_FOUND","status":404,"message":"API monitoring log entry was not found","data":{"id":"DALP-0048","why":"No API monitoring log entry exists for the requested id in the active organization.","fix":"Verify the log entry id and organization, then retry.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["APPROVAL_REFUSED","CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","OPERATIONS_CASE_REFUSED","OPERATIONS_REINDEX_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"APPROVAL_REFUSED","status":409,"message":"The approval decision was refused","data":{"id":"DALP-9541","why":"The platform four-eyes rules and the policy version the request was raised under decide who may approve and whether the decision is still valid: the maker cannot approve their own request, a role the pinned policy does not name cannot approve, a signature that leaves the policy's approver floor short is recorded against the request rather than admitting it, a borrowed session cannot approve when the pinned policy sets operatorMayApprove to false, a payload that moved invalidates the approval, and an expired request accepts no decision. A policy that names no approving role admits any role the platform has already admitted as an approver.","fix":"Read the request again for its current state and row version, and have a distinct operator decide it.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","REINDEX_SERVICE_UNREACHABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Opens an SSE stream of Ledger Index block-progress events. Each event carries only the chain identifier and block number. Any authenticated session can subscribe. The stream stays open until the client disconnects.","summary":"Stream block progress","x-dalp-auth":"session-or-api-key"}},"/api/v2/platform-status/history":{"get":{"tags":["Monitoring"],"operationId":"opsStatus.history","parameters":[{"name":"days","in":"query","schema":{"type":"integer","minimum":1,"maximum":30},"required":false}],"responses":{"200":{"description":"One item per completed UTC day, oldest first, each with the day's verdict and its 24 hourly verdicts. Repeat the call to refresh.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"severity":{"type":"string","enum":["operational","degraded","outage","no_data"]},"hours":{"type":"array","items":{"type":"object","properties":{"bucketHour":{"type":"string"},"severity":{"type":"string","enum":["operational","degraded","outage","no_data"]}},"required":["bucketHour","severity"],"additionalProperties":false},"minItems":24,"maxItems":24}},"required":["date","severity","hours"],"additionalProperties":false}},"examples":{"example-1":{"value":[{"date":"2026-03-11","severity":"outage","hours":[{"bucketHour":"2026-03-11T00:00:00.000Z","severity":"operational"},{"bucketHour":"2026-03-11T01:00:00.000Z","severity":"operational"},{"bucketHour":"2026-03-11T02:00:00.000Z","severity":"operational"},{"bucketHour":"2026-03-11T03:00:00.000Z","severity":"operational"},{"bucketHour":"2026-03-11T04:00:00.000Z","severity":"operational"},{"bucketHour":"2026-03-11T05:00:00.000Z","severity":"operational"},{"bucketHour":"2026-03-11T06:00:00.000Z","severity":"operational"},{"bucketHour":"2026-03-11T07:00:00.000Z","severity":"operational"},{"bucketHour":"2026-03-11T08:00:00.000Z","severity":"operational"},{"bucketHour":"2026-03-11T09:00:00.000Z","severity":"operational"},{"bucketHour":"2026-03-11T10:00:00.000Z","severity":"operational"},{"bucketHour":"2026-03-11T11:00:00.000Z","severity":"operational"},{"bucketHour":"2026-03-11T12:00:00.000Z","severity":"operational"},{"bucketHour":"2026-03-11T13:00:00.000Z","severity":"operational"},{"bucketHour":"2026-03-11T14:00:00.000Z","severity":"outage"},{"bucketHour":"2026-03-11T15:00:00.000Z","severity":"operational"},{"bucketHour":"2026-03-11T16:00:00.000Z","severity":"operational"},{"bucketHour":"2026-03-11T17:00:00.000Z","severity":"operational"},{"bucketHour":"2026-03-11T18:00:00.000Z","severity":"operational"},{"bucketHour":"2026-03-11T19:00:00.000Z","severity":"operational"},{"bucketHour":"2026-03-11T20:00:00.000Z","severity":"operational"},{"bucketHour":"2026-03-11T21:00:00.000Z","severity":"operational"},{"bucketHour":"2026-03-11T22:00:00.000Z","severity":"operational"},{"bucketHour":"2026-03-11T23:00:00.000Z","severity":"operational"}]}]}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","DEBUG_BUNDLE_WINDOW_INVALID","INVALID_REQUEST_EXECUTOR","REINDEX_REQUEST_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","ADMIN_ACCESS_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["API_MONITORING_LOG_ENTRY_NOT_FOUND","APPROVAL_NOT_FOUND","CONTRACT_ERROR","METADATA_NOT_FOUND","OPERATIONS_CASE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"API_MONITORING_LOG_ENTRY_NOT_FOUND","status":404,"message":"API monitoring log entry was not found","data":{"id":"DALP-0048","why":"No API monitoring log entry exists for the requested id in the active organization.","fix":"Verify the log entry id and organization, then retry.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["APPROVAL_REFUSED","CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","OPERATIONS_CASE_REFUSED","OPERATIONS_REINDEX_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"APPROVAL_REFUSED","status":409,"message":"The approval decision was refused","data":{"id":"DALP-9541","why":"The platform four-eyes rules and the policy version the request was raised under decide who may approve and whether the decision is still valid: the maker cannot approve their own request, a role the pinned policy does not name cannot approve, a signature that leaves the policy's approver floor short is recorded against the request rather than admitting it, a borrowed session cannot approve when the pinned policy sets operatorMayApprove to false, a payload that moved invalidates the approval, and an expired request accepts no decision. A policy that names no approving role admits any role the platform has already admitted as an approver.","fix":"Read the request again for its current state and row version, and have a distinct operator decide it.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","REINDEX_SERVICE_UNREACHABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one item per completed UTC day over the requested number of days, oldest first. Each day carries the platform's worst verdict for that day and 24 hourly cells from 00:00 to 23:00 UTC; an hour never reads worse than its day. `days` defaults to 30 and accepts at most 30. Verdicts are operational, degraded, outage, or no_data. Repeat the call to refresh.","summary":"Read platform-status history","x-dalp-auth":"session-or-api-key"}},"/api/v2/platform-status/stat-cards":{"get":{"tags":["Monitoring"],"operationId":"opsStatus.statCards","parameters":[],"responses":{"200":{"description":"Headline 24-hour Operations Console counters. Values are null until telemetry is available. Repeat the call to refresh.","content":{"application/json":{"schema":{"type":"object","properties":{"generatedAt":{"type":"string"},"operationsCompleted24h":{"anyOf":[{"type":"integer"},{"type":"null"}]},"operationsCompleted24hPrevious24h":{"anyOf":[{"type":"integer"},{"type":"null"}]},"successRate24h":{"anyOf":[{"type":"number"},{"type":"null"}]},"successRate24hPrevious24h":{"anyOf":[{"type":"number"},{"type":"null"}]},"completionTimeP95Ms":{"anyOf":[{"type":"number"},{"type":"null"}]},"completionTimeP95MsPrevious24h":{"anyOf":[{"type":"number"},{"type":"null"}]},"dataDelayBlocks":{"anyOf":[{"type":"number"},{"type":"null"}]},"queryableDelayBlocks":{"anyOf":[{"type":"number"},{"type":"null"}]},"dataDelayBlocksAsOf":{"anyOf":[{"type":"string"},{"type":"null"}]},"queryableDelayBlocksAsOf":{"anyOf":[{"type":"string"},{"type":"null"}]},"indexerHeadBlocks":{"anyOf":[{"type":"number"},{"type":"null"}]},"trends":{"type":"object","properties":{"operationsCompleted":{"type":"array","items":{"anyOf":[{"type":"number"},{"type":"null"}]}},"successRate":{"type":"array","items":{"anyOf":[{"type":"number"},{"type":"null"}]}},"completionTimeP95Ms":{"type":"array","items":{"anyOf":[{"type":"number"},{"type":"null"}]}},"dataDelayBlocks":{"type":"array","items":{"anyOf":[{"type":"number"},{"type":"null"}]}},"indexerHead":{"type":"array","items":{"anyOf":[{"type":"number"},{"type":"null"}]}}},"required":["operationsCompleted","successRate","completionTimeP95Ms","dataDelayBlocks","indexerHead"],"additionalProperties":false},"totalChains":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"required":["generatedAt","operationsCompleted24h","operationsCompleted24hPrevious24h","successRate24h","successRate24hPrevious24h","completionTimeP95Ms","completionTimeP95MsPrevious24h","dataDelayBlocks","queryableDelayBlocks","dataDelayBlocksAsOf","queryableDelayBlocksAsOf","indexerHeadBlocks","trends","totalChains"],"additionalProperties":false},"examples":{"example-1":{"value":{"operationsCompleted24h":12,"operationsCompleted24hPrevious24h":11,"successRate24h":1,"successRate24hPrevious24h":1,"completionTimeP95Ms":4200,"completionTimeP95MsPrevious24h":3900,"dataDelayBlocks":2,"queryableDelayBlocks":2,"dataDelayBlocksAsOf":"2026-03-11T16:10:00.000Z","queryableDelayBlocksAsOf":"2026-03-11T16:10:00.000Z","indexerHeadBlocks":21458901,"trends":{"operationsCompleted":[null,10,11,12,13,14,10,11,12,13,14,10,11,12,13,14,10,11,12,13,14,10,11,12],"successRate":[null,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],"completionTimeP95Ms":[null,4200,4200,4200,4200,4200,4200,4200,4200,4200,4200,4200,4200,4200,4200,4200,4200,4200,4200,4200,4200,4200,4200,4200],"dataDelayBlocks":[null,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2],"indexerHead":[null,21458040,21458080,21458120,21458160,21458200,21458240,21458280,21458320,21458360,21458400,21458440,21458480,21458520,21458560,21458600,21458640,21458680,21458720,21458760,21458800,21458840,21458880,21458920]},"generatedAt":"2026-03-11T16:10:00.000Z","totalChains":1}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","DEBUG_BUNDLE_WINDOW_INVALID","INVALID_REQUEST_EXECUTOR","REINDEX_REQUEST_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","ADMIN_ACCESS_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["API_MONITORING_LOG_ENTRY_NOT_FOUND","APPROVAL_NOT_FOUND","CONTRACT_ERROR","METADATA_NOT_FOUND","OPERATIONS_CASE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"API_MONITORING_LOG_ENTRY_NOT_FOUND","status":404,"message":"API monitoring log entry was not found","data":{"id":"DALP-0048","why":"No API monitoring log entry exists for the requested id in the active organization.","fix":"Verify the log entry id and organization, then retry.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["APPROVAL_REFUSED","CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","OPERATIONS_CASE_REFUSED","OPERATIONS_REINDEX_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"APPROVAL_REFUSED","status":409,"message":"The approval decision was refused","data":{"id":"DALP-9541","why":"The platform four-eyes rules and the policy version the request was raised under decide who may approve and whether the decision is still valid: the maker cannot approve their own request, a role the pinned policy does not name cannot approve, a signature that leaves the policy's approver floor short is recorded against the request rather than admitting it, a borrowed session cannot approve when the pinned policy sets operatorMayApprove to false, a payload that moved invalidates the approval, and an expired request accepts no decision. A policy that names no approving role admits any role the platform has already admitted as an approver.","fix":"Read the request again for its current state and row version, and have a distinct operator decide it.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","REINDEX_SERVICE_UNREACHABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the headline 24-hour Operations Console counters: completed operations, success rate, completion time, and Ledger Index delay. Values are null until telemetry is available. Repeat the call to refresh.","summary":"Read platform-status stat cards","x-dalp-auth":"session-or-api-key"}},"/api/v2/platform-status/transactions":{"get":{"tags":["Monitoring"],"operationId":"opsStatus.transactions","parameters":[],"responses":{"200":{"description":"Transaction Queue health verdict and 24-hour sparkline for the Operations Console. Repeat the call to refresh.","content":{"application/json":{"schema":{"type":"object","properties":{"generatedAt":{"type":"string"},"verdict":{"type":"string","enum":["operational","degraded","outage","no_data"]},"sparkline":{"type":"array","items":{"type":"object","properties":{"bucketHour":{"type":"string"},"value":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["bucketHour","value"],"additionalProperties":false}},"stats":{"type":"object","properties":{"chainCount":{"type":"integer"},"submitted24h":{"type":"integer"},"failed24h":{"type":"integer"}},"required":["chainCount","submitted24h","failed24h"],"additionalProperties":false}},"required":["generatedAt","verdict","sparkline","stats"],"additionalProperties":false},"examples":{"example-1":{"value":{"verdict":"operational","sparkline":[{"bucketHour":"2026-03-11T16:00:00.000Z","value":14}],"generatedAt":"2026-03-11T16:10:00.000Z","stats":{"chainCount":1,"submitted24h":128,"failed24h":1}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","DEBUG_BUNDLE_WINDOW_INVALID","INVALID_REQUEST_EXECUTOR","REINDEX_REQUEST_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","ADMIN_ACCESS_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["API_MONITORING_LOG_ENTRY_NOT_FOUND","APPROVAL_NOT_FOUND","CONTRACT_ERROR","METADATA_NOT_FOUND","OPERATIONS_CASE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"API_MONITORING_LOG_ENTRY_NOT_FOUND","status":404,"message":"API monitoring log entry was not found","data":{"id":"DALP-0048","why":"No API monitoring log entry exists for the requested id in the active organization.","fix":"Verify the log entry id and organization, then retry.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["APPROVAL_REFUSED","CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","OPERATIONS_CASE_REFUSED","OPERATIONS_REINDEX_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"APPROVAL_REFUSED","status":409,"message":"The approval decision was refused","data":{"id":"DALP-9541","why":"The platform four-eyes rules and the policy version the request was raised under decide who may approve and whether the decision is still valid: the maker cannot approve their own request, a role the pinned policy does not name cannot approve, a signature that leaves the policy's approver floor short is recorded against the request rather than admitting it, a borrowed session cannot approve when the pinned policy sets operatorMayApprove to false, a payload that moved invalidates the approval, and an expired request accepts no decision. A policy that names no approving role admits any role the platform has already admitted as an approver.","fix":"Read the request again for its current state and row version, and have a distinct operator decide it.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","REINDEX_SERVICE_UNREACHABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the Transaction Queue health verdict and 24-hour sparkline for the Operations Console. `verdict` is operational, degraded, outage, or no_data. Repeat the call to refresh.","summary":"Read transaction platform status","x-dalp-auth":"session-or-api-key"}},"/api/v2/platform-status/workflows":{"get":{"tags":["Monitoring"],"operationId":"opsStatus.workflows","parameters":[],"responses":{"200":{"description":"Completed and stalled Workflow Engine counts for the last 24 hours. Counts are null until telemetry is available. Repeat the call to refresh.","content":{"application/json":{"schema":{"type":"object","properties":{"generatedAt":{"type":"string"},"verdict":{"type":"string","enum":["operational","degraded","outage","no_data"]},"sparkline":{"type":"array","items":{"type":"object","properties":{"bucketHour":{"type":"string"},"value":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["bucketHour","value"],"additionalProperties":false}},"stats":{"type":"object","properties":{"completed24h":{"anyOf":[{"type":"integer"},{"type":"null"}]},"stalled":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"required":["completed24h","stalled"],"additionalProperties":false}},"required":["generatedAt","verdict","sparkline","stats"],"additionalProperties":false},"examples":{"example-1":{"value":{"verdict":"operational","sparkline":[{"bucketHour":"2026-03-11T16:00:00.000Z","value":12}],"generatedAt":"2026-03-11T16:10:00.000Z","stats":{"completed24h":12,"stalled":0}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","DEBUG_BUNDLE_WINDOW_INVALID","INVALID_REQUEST_EXECUTOR","REINDEX_REQUEST_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","ADMIN_ACCESS_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["API_MONITORING_LOG_ENTRY_NOT_FOUND","APPROVAL_NOT_FOUND","CONTRACT_ERROR","METADATA_NOT_FOUND","OPERATIONS_CASE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"API_MONITORING_LOG_ENTRY_NOT_FOUND","status":404,"message":"API monitoring log entry was not found","data":{"id":"DALP-0048","why":"No API monitoring log entry exists for the requested id in the active organization.","fix":"Verify the log entry id and organization, then retry.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["APPROVAL_REFUSED","CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","OPERATIONS_CASE_REFUSED","OPERATIONS_REINDEX_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"APPROVAL_REFUSED","status":409,"message":"The approval decision was refused","data":{"id":"DALP-9541","why":"The platform four-eyes rules and the policy version the request was raised under decide who may approve and whether the decision is still valid: the maker cannot approve their own request, a role the pinned policy does not name cannot approve, a signature that leaves the policy's approver floor short is recorded against the request rather than admitting it, a borrowed session cannot approve when the pinned policy sets operatorMayApprove to false, a payload that moved invalidates the approval, and an expired request accepts no decision. A policy that names no approving role admits any role the platform has already admitted as an approver.","fix":"Read the request again for its current state and row version, and have a distinct operator decide it.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","REINDEX_SERVICE_UNREACHABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns completed and stalled Workflow Engine counts for the last 24 hours. Counts are null until workflow telemetry is available. Repeat the call to refresh.","summary":"Read workflow platform status","x-dalp-auth":"session-or-api-key"}},"/api/v2/platform-status/transactions-list":{"get":{"tags":["Monitoring"],"operationId":"opsStatus.transactionsList","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000},"status":{"anyOf":[{"type":"string","enum":["RECEIVED","QUEUED","AWAITING_WORKFLOW","PREPARING","PENDING_APPROVAL","SIGNING","BROADCASTING","CONFIRMING","COMPLETED","FAILED","DEAD_LETTER","CANCELLED"],"description":"Current state in the transaction request lifecycle"},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"operationType":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"fromAddress":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"chainId":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"string"}]},{"type":"object","properties":{"eq":{"anyOf":[{"type":"number"},{"type":"string"}]},"ne":{"anyOf":[{"type":"number"},{"type":"string"}]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"anyOf":[{"type":"number"},{"type":"string"}]},"gte":{"anyOf":[{"type":"number"},{"type":"string"}]},"lt":{"anyOf":[{"type":"number"},{"type":"string"}]},"lte":{"anyOf":[{"type":"number"},{"type":"string"}]},"between":{"type":"string","maxLength":64}},"additionalProperties":false}]},"createdAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"updatedAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"One page of Transaction Queue rows for the active organization, including system and onboarding wallets. The list is organization-scoped, not wallet-set scoped.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatusTransactionsList"},"examples":{"example-1":{"value":{"data":[{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","kind":"token.create","description":"Create Northwind Coffee Bond","status":"COMPLETED","subStatus":null,"fromAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","chainId":1,"nonce":42,"gasPrice":"1200000000","transactionHash":"0x3a1b2c4d5e6f708192a3b4c5d6e7f8091a2b3c4d5e6f708192a3b4c5d6e7f809","confirmationChecks":3,"errorMessage":null,"revertReason":null,"contractErrorCode":null,"traceId":"4bf92f3577b34da6a3ce929d0e0e4736","createdAt":"2026-03-11T15:58:00.000Z","updatedAt":"2026-03-11T16:02:08.000Z"}],"meta":{"total":1},"links":{"self":"/v2/platform-status/transactions-list?sort=-createdAt&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/platform-status/transactions-list?sort=-createdAt&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/platform-status/transactions-list?sort=-createdAt&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","DEBUG_BUNDLE_WINDOW_INVALID","INVALID_REQUEST_EXECUTOR","REINDEX_REQUEST_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","ADMIN_ACCESS_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["API_MONITORING_LOG_ENTRY_NOT_FOUND","APPROVAL_NOT_FOUND","CONTRACT_ERROR","METADATA_NOT_FOUND","OPERATIONS_CASE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"API_MONITORING_LOG_ENTRY_NOT_FOUND","status":404,"message":"API monitoring log entry was not found","data":{"id":"DALP-0048","why":"No API monitoring log entry exists for the requested id in the active organization.","fix":"Verify the log entry id and organization, then retry.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["APPROVAL_REFUSED","CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","OPERATIONS_CASE_REFUSED","OPERATIONS_REINDEX_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"APPROVAL_REFUSED","status":409,"message":"The approval decision was refused","data":{"id":"DALP-9541","why":"The platform four-eyes rules and the policy version the request was raised under decide who may approve and whether the decision is still valid: the maker cannot approve their own request, a role the pinned policy does not name cannot approve, a signature that leaves the policy's approver floor short is recorded against the request rather than admitting it, a borrowed session cannot approve when the pinned policy sets operatorMayApprove to false, a payload that moved invalidates the approval, and an expired request accepts no decision. A policy that names no approving role admits any role the platform has already admitted as an approver.","fix":"Read the request again for its current state and row version, and have a distinct operator decide it.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","REINDEX_SERVICE_UNREACHABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns recent Transaction Queue rows for the active organization, including system and onboarding wallets. The list is organization-scoped, not limited to the caller's wallet set. Each row carries the status payload for the Operations Console detail sheet. Repeat the call to refresh.","summary":"List recent transactions","x-dalp-auth":"session-or-api-key"}},"/api/v2/platform-status/workflows-list":{"get":{"tags":["Monitoring"],"operationId":"opsStatus.workflowsList","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":500},"required":false}],"responses":{"200":{"description":"Bounded page of recent Workflow Engine executions for the active organization. Stalled executions appear first. Repeat the call to refresh.","content":{"application/json":{"schema":{"type":"object","properties":{"generatedAt":{"type":"string"},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"workflowType":{"type":"string"},"status":{"type":"string"},"stalled":{"type":"boolean"},"outcome":{"anyOf":[{"type":"string","enum":["success","failure"]},{"type":"null"}]},"createdAt":{"type":"string"},"modifiedAt":{"type":"string"}},"required":["id","workflowType","status","stalled","outcome","createdAt","modifiedAt"],"additionalProperties":false}},"total":{"type":"integer"},"truncated":{"type":"boolean"}},"required":["generatedAt","items","total","truncated"],"additionalProperties":false},"examples":{"example-1":{"value":{"generatedAt":"2026-03-11T16:10:00.000Z","items":[{"id":"exec_northwind_token_create_01","workflowType":"TokenCreateWorkflow","status":"completed","stalled":false,"outcome":"success","createdAt":"2026-03-11T15:58:00.000Z","modifiedAt":"2026-03-11T16:02:08.000Z"}],"total":1,"truncated":false}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","DEBUG_BUNDLE_WINDOW_INVALID","INVALID_REQUEST_EXECUTOR","REINDEX_REQUEST_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","ADMIN_ACCESS_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["API_MONITORING_LOG_ENTRY_NOT_FOUND","APPROVAL_NOT_FOUND","CONTRACT_ERROR","METADATA_NOT_FOUND","OPERATIONS_CASE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"API_MONITORING_LOG_ENTRY_NOT_FOUND","status":404,"message":"API monitoring log entry was not found","data":{"id":"DALP-0048","why":"No API monitoring log entry exists for the requested id in the active organization.","fix":"Verify the log entry id and organization, then retry.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["APPROVAL_REFUSED","CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","OPERATIONS_CASE_REFUSED","OPERATIONS_REINDEX_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"APPROVAL_REFUSED","status":409,"message":"The approval decision was refused","data":{"id":"DALP-9541","why":"The platform four-eyes rules and the policy version the request was raised under decide who may approve and whether the decision is still valid: the maker cannot approve their own request, a role the pinned policy does not name cannot approve, a signature that leaves the policy's approver floor short is recorded against the request rather than admitting it, a borrowed session cannot approve when the pinned policy sets operatorMayApprove to false, a payload that moved invalidates the approval, and an expired request accepts no decision. A policy that names no approving role admits any role the platform has already admitted as an approver.","fix":"Read the request again for its current state and row version, and have a distinct operator decide it.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","REINDEX_SERVICE_UNREACHABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns a bounded page of recent Workflow Engine executions for the active organization. Stalled executions appear first, then newest. The page mixes live execution status with completed history. It is not a cursor-paginated collection. Repeat the call to refresh.","summary":"List recent workflows","x-dalp-auth":"session-or-api-key"}},"/api/v2/platform-status/platform-api":{"get":{"tags":["Monitoring"],"operationId":"opsStatus.platformApi","parameters":[],"responses":{"200":{"description":"Platform API request counts and 4xx/5xx rates for the last 24 hours. The 4xx rate hides authentication failures. Repeat the call to refresh.","content":{"application/json":{"schema":{"type":"object","properties":{"generatedAt":{"type":"string"},"verdict":{"type":"string","enum":["operational","degraded","outage","no_data"]},"sparkline":{"type":"array","items":{"type":"object","properties":{"bucketHour":{"type":"string"},"value":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["bucketHour","value"],"additionalProperties":false}},"stats":{"type":"object","properties":{"totalRequests24h":{"type":"integer","minimum":0},"error4xxRate":{"type":"number","minimum":0,"maximum":1},"error5xxRate":{"type":"number","minimum":0,"maximum":1}},"required":["totalRequests24h","error4xxRate","error5xxRate"],"additionalProperties":false}},"required":["generatedAt","verdict","sparkline","stats"],"additionalProperties":false},"examples":{"example-1":{"value":{"verdict":"operational","sparkline":[{"bucketHour":"2026-03-11T16:00:00.000Z","value":1842}],"generatedAt":"2026-03-11T16:10:00.000Z","stats":{"totalRequests24h":1842,"error4xxRate":0.009,"error5xxRate":0.003}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","DEBUG_BUNDLE_WINDOW_INVALID","INVALID_REQUEST_EXECUTOR","REINDEX_REQUEST_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","ADMIN_ACCESS_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["API_MONITORING_LOG_ENTRY_NOT_FOUND","APPROVAL_NOT_FOUND","CONTRACT_ERROR","METADATA_NOT_FOUND","OPERATIONS_CASE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"API_MONITORING_LOG_ENTRY_NOT_FOUND","status":404,"message":"API monitoring log entry was not found","data":{"id":"DALP-0048","why":"No API monitoring log entry exists for the requested id in the active organization.","fix":"Verify the log entry id and organization, then retry.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["APPROVAL_REFUSED","CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","OPERATIONS_CASE_REFUSED","OPERATIONS_REINDEX_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"APPROVAL_REFUSED","status":409,"message":"The approval decision was refused","data":{"id":"DALP-9541","why":"The platform four-eyes rules and the policy version the request was raised under decide who may approve and whether the decision is still valid: the maker cannot approve their own request, a role the pinned policy does not name cannot approve, a signature that leaves the policy's approver floor short is recorded against the request rather than admitting it, a borrowed session cannot approve when the pinned policy sets operatorMayApprove to false, a payload that moved invalidates the approval, and an expired request accepts no decision. A policy that names no approving role admits any role the platform has already admitted as an approver.","fix":"Read the request again for its current state and row version, and have a distinct operator decide it.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","REINDEX_SERVICE_UNREACHABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns request counts and 4xx/5xx rates for the Platform API over the last 24 hours. The 4xx rate hides authentication failures so the Operations Console can show client-error volume separately from sign-in noise. Repeat the call to refresh.","summary":"Read Platform API status","x-dalp-auth":"session-or-api-key"}},"/api/v2/platform-status/data-freshness":{"get":{"tags":["Monitoring"],"operationId":"opsStatus.dataFreshness","parameters":[],"responses":{"200":{"description":"How far Ledger Index is behind each tracked chain head. `verdict` is operational, degraded, outage, or no_data. Repeat the call to refresh.","content":{"application/json":{"schema":{"type":"object","properties":{"generatedAt":{"type":"string"},"verdict":{"type":"string","enum":["operational","degraded","outage","no_data"]},"cause":{"anyOf":[{"anyOf":[{"type":"object","properties":{"reason":{"type":"string","enum":["behind","far_behind","ahead_of_head"]},"lagBlocks":{"type":"integer"}},"required":["reason","lagBlocks"],"additionalProperties":false},{"type":"object","properties":{"reason":{"type":"string","enum":["not_advancing","stalled"]},"idleSeconds":{"type":"number"}},"required":["reason","idleSeconds"],"additionalProperties":false}]},{"type":"null"}]},"sparkline":{"type":"array","items":{"type":"object","properties":{"bucketHour":{"type":"string"},"value":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["bucketHour","value"],"additionalProperties":false}},"stats":{"type":"object","properties":{"chainsInSync":{"type":"integer"},"totalChains":{"type":"integer"},"unhealthyMinutes24h":{"type":"integer"},"currentDelayBlocks":{"anyOf":[{"type":"integer"},{"type":"null"}]},"currentDelaySeconds":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["chainsInSync","totalChains","unhealthyMinutes24h","currentDelayBlocks","currentDelaySeconds"],"additionalProperties":false}},"required":["generatedAt","verdict","cause","sparkline","stats"],"additionalProperties":false},"examples":{"example-1":{"value":{"verdict":"operational","cause":null,"sparkline":[{"bucketHour":"2026-03-11T16:00:00.000Z","value":2}],"generatedAt":"2026-03-11T16:10:00.000Z","stats":{"chainsInSync":1,"totalChains":1,"unhealthyMinutes24h":0,"currentDelayBlocks":2,"currentDelaySeconds":2}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","DEBUG_BUNDLE_WINDOW_INVALID","INVALID_REQUEST_EXECUTOR","REINDEX_REQUEST_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","ADMIN_ACCESS_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["API_MONITORING_LOG_ENTRY_NOT_FOUND","APPROVAL_NOT_FOUND","CONTRACT_ERROR","METADATA_NOT_FOUND","OPERATIONS_CASE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"API_MONITORING_LOG_ENTRY_NOT_FOUND","status":404,"message":"API monitoring log entry was not found","data":{"id":"DALP-0048","why":"No API monitoring log entry exists for the requested id in the active organization.","fix":"Verify the log entry id and organization, then retry.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["APPROVAL_REFUSED","CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","OPERATIONS_CASE_REFUSED","OPERATIONS_REINDEX_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"APPROVAL_REFUSED","status":409,"message":"The approval decision was refused","data":{"id":"DALP-9541","why":"The platform four-eyes rules and the policy version the request was raised under decide who may approve and whether the decision is still valid: the maker cannot approve their own request, a role the pinned policy does not name cannot approve, a signature that leaves the policy's approver floor short is recorded against the request rather than admitting it, a borrowed session cannot approve when the pinned policy sets operatorMayApprove to false, a payload that moved invalidates the approval, and an expired request accepts no decision. A policy that names no approving role admits any role the platform has already admitted as an approver.","fix":"Read the request again for its current state and row version, and have a distinct operator decide it.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","REINDEX_SERVICE_UNREACHABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns how far Ledger Index is behind each tracked chain head for the Operations Console. `verdict` is operational, degraded, outage, or no_data. `no_data` means collectors have not yet published a rollup. Repeat the call to refresh.","summary":"Read data freshness","x-dalp-auth":"session-or-api-key"}},"/api/v2/platform-status/debug-bundle":{"get":{"tags":["Monitoring"],"operationId":"opsStatus.debugBundle","parameters":[{"name":"from","in":"query","schema":{"type":"string"},"required":false},{"name":"to","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Redacted diagnostics bundle for the active organization. Secrets and raw payloads are stripped. Repeat the call to collect a new snapshot.","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"},"x-effect-stream":{"encoding":"uint8array"},"examples":{"example-1":{"value":"{\"manifest\":{\"schemaVersion\":1,\"generatedAt\":\"2026-03-11T16:10:00.000Z\",\"generatedByRole\":\"admin\",\"window\":{\"from\":\"2026-03-11T15:10:00.000Z\",\"to\":\"2026-03-11T16:10:00.000Z\"},\"categories\":[{\"id\":\"database\",\"title\":\"Database\",\"source\":\"reachability probe\",\"capturedAt\":\"2026-03-11T16:10:00.000Z\",\"status\":\"ok\",\"file\":\"database.json\"}]},\"categories\":{\"database\":{\"reachable\":true}}}"}}}},"headers":{"cache-control":{"schema":{"type":"string"},"required":true}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","DEBUG_BUNDLE_WINDOW_INVALID","INVALID_REQUEST_EXECUTOR","REINDEX_REQUEST_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","ADMIN_ACCESS_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["API_MONITORING_LOG_ENTRY_NOT_FOUND","APPROVAL_NOT_FOUND","CONTRACT_ERROR","METADATA_NOT_FOUND","OPERATIONS_CASE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"API_MONITORING_LOG_ENTRY_NOT_FOUND","status":404,"message":"API monitoring log entry was not found","data":{"id":"DALP-0048","why":"No API monitoring log entry exists for the requested id in the active organization.","fix":"Verify the log entry id and organization, then retry.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["APPROVAL_REFUSED","CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","OPERATIONS_CASE_REFUSED","OPERATIONS_REINDEX_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"APPROVAL_REFUSED","status":409,"message":"The approval decision was refused","data":{"id":"DALP-9541","why":"The platform four-eyes rules and the policy version the request was raised under decide who may approve and whether the decision is still valid: the maker cannot approve their own request, a role the pinned policy does not name cannot approve, a signature that leaves the policy's approver floor short is recorded against the request rather than admitting it, a borrowed session cannot approve when the pinned policy sets operatorMayApprove to false, a payload that moved invalidates the approval, and an expired request accepts no decision. A policy that names no approving role admits any role the platform has already admitted as an approver.","fix":"Read the request again for its current state and row version, and have a distinct operator decide it.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","REINDEX_SERVICE_UNREACHABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns a redacted diagnostics bundle for the active organization. Secrets and raw payloads are stripped. Cache-Control is private. Optional `window.from` and `window.to` bound the captured logs and traces. Repeat the call to collect a new snapshot.","summary":"Build a redacted platform-status debug bundle","x-dalp-auth":"session-or-api-key"}},"/api/v2/search-results":{"get":{"tags":["Search"],"operationId":"opsSearch.global","parameters":[{"name":"query","in":"query","schema":{"type":"string"},"required":true},{"name":"limits","in":"query","schema":{"type":"object","properties":{"contacts":{"type":"integer","minimum":1,"maximum":50},"tokens":{"type":"integer","minimum":1,"maximum":50},"users":{"type":"integer","minimum":1,"maximum":50},"participants":{"type":"integer","minimum":1,"maximum":50},"systemContracts":{"type":"integer","minimum":1,"maximum":50}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true}],"responses":{"200":{"description":"Permission-aware search hits grouped by resource type, wrapped in the v2 single-resource envelope. The platform leaves out a section when it has no matches. The call does not change state.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"sections":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","enum":["contacts"]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"wallet":{"$ref":"#/components/schemas/EvmAddress"}},"required":["id","name","wallet"],"additionalProperties":false}}},"required":["type","items"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["tokens"]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"tokenFactory":{"anyOf":[{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"}},"required":["id"],"additionalProperties":false},{"type":"null"}]},"type":{"$ref":"#/components/schemas/AssetTypeOrSlug"},"createdAt":{"type":"string"},"name":{"type":"string"},"symbol":{"type":"string"},"logoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"decimals":{"$ref":"#/components/schemas/DecimalsEncoded"},"basePrice":{"$ref":"#/components/schemas/BigDecimal"},"basePriceCurrencyCode":{"anyOf":[{"$ref":"#/components/schemas/FiatCurrency"},{"type":"null"}]},"totalSupply":{"$ref":"#/components/schemas/BigDecimal"},"totalSupplyExact":{"type":"string"},"smartInterface":{"anyOf":[{"type":"integer"},{"type":"null"}]},"pausable":{"type":"object","properties":{"paused":{"type":"boolean"}},"required":["paused"],"additionalProperties":false},"templateLink":{"anyOf":[{"type":"object","properties":{"templateId":{"type":"string"},"templateSlug":{"type":"string"}},"required":["templateId","templateSlug"],"additionalProperties":false},{"type":"null"}]}},"required":["id","tokenFactory","type","createdAt","name","symbol","decimals","basePrice","basePriceCurrencyCode","totalSupply","smartInterface","pausable","templateLink"],"additionalProperties":false}}},"required":["type","items"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["users"]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"participantId":{"$ref":"#/components/schemas/ParticipantId"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"role":{"$ref":"#/components/schemas/UserRoleEncoded"}},"required":["id","participantId","name"],"additionalProperties":false}}},"required":["type","items"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["participants"]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/ParticipantId"},"name":{"type":"string"},"address":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]}},"required":["id","name","address"],"additionalProperties":false}}},"required":["type","items"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["systemContracts"]},"items":{"type":"array","items":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"name":{"type":"string"},"contractType":{"type":"string"}},"required":["id","name","contractType"],"additionalProperties":false}}},"required":["type","items"],"additionalProperties":false}]}}},"required":["sections"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"sections":[{"type":"contacts","items":[{"id":"7f1c2b90-3f4a-4b6f-9a1e-5c8d0e2f6a41","name":"Northwind Coffee Treasury","wallet":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}]},{"type":"users","items":[{"id":"usr_northwind_ops","participantId":"participant-northwind-ops","name":"Northwind Operations","role":"admin"}]},{"type":"systemContracts","items":[{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30","name":"Token Factory","contractType":"TokenFactory"}]}]},"links":{"self":"/v2/search-results?query=Northwind"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","DEBUG_BUNDLE_WINDOW_INVALID","INVALID_REQUEST_EXECUTOR","REINDEX_REQUEST_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","ADMIN_ACCESS_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["API_MONITORING_LOG_ENTRY_NOT_FOUND","APPROVAL_NOT_FOUND","CONTRACT_ERROR","METADATA_NOT_FOUND","OPERATIONS_CASE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"API_MONITORING_LOG_ENTRY_NOT_FOUND","status":404,"message":"API monitoring log entry was not found","data":{"id":"DALP-0048","why":"No API monitoring log entry exists for the requested id in the active organization.","fix":"Verify the log entry id and organization, then retry.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["APPROVAL_REFUSED","CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","OPERATIONS_CASE_REFUSED","OPERATIONS_REINDEX_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"APPROVAL_REFUSED","status":409,"message":"The approval decision was refused","data":{"id":"DALP-9541","why":"The platform four-eyes rules and the policy version the request was raised under decide who may approve and whether the decision is still valid: the maker cannot approve their own request, a role the pinned policy does not name cannot approve, a signature that leaves the policy's approver floor short is recorded against the request rather than admitting it, a borrowed session cannot approve when the pinned policy sets operatorMayApprove to false, a payload that moved invalidates the approval, and an expired request accepts no decision. A policy that names no approving role admits any role the platform has already admitted as an approver.","fix":"Read the request again for its current state and row version, and have a distinct operator decide it.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","REINDEX_SERVICE_UNREACHABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns permission-aware hits for a search term of 2 to 120 characters, wrapped in the v2 single-resource envelope. The platform leaves out a section when it has no matches. Optional `limits` cap a section at 1 to 50 hits. The call does not change state.","summary":"Search contacts, tokens, users, and system contracts","x-dalp-auth":"session-or-api-key"}},"/api/v2/address-names":{"get":{"tags":["Search"],"operationId":"opsSearch.addressNames","parameters":[{"name":"addresses","in":"query","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"Display names keyed by lowercase address, wrapped in the v2 single-resource envelope. An address the caller cannot name is absent. The call does not change state.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","additionalProperties":{"type":"object","properties":{"name":{"type":"string"},"kind":{"type":"string","enum":["user","participant","contact","token","systemContract"]},"symbol":{"type":"string"},"isContract":{"type":"boolean"},"contractType":{"type":"string"}},"required":["name","kind","isContract"],"additionalProperties":false}},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"0x71c7656ec7ab88b098defb751b7401b5f6d8976f":{"name":"Northwind Coffee Treasury","kind":"contact","isContract":false},"0x2546bcd3c84621e976d8185a91a922ae77ecec30":{"name":"Token Factory","kind":"systemContract","isContract":true,"contractType":"TokenFactory"}},"links":{"self":"/v2/address-names"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","DEBUG_BUNDLE_WINDOW_INVALID","INVALID_REQUEST_EXECUTOR","REINDEX_REQUEST_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","ADMIN_ACCESS_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["API_MONITORING_LOG_ENTRY_NOT_FOUND","APPROVAL_NOT_FOUND","CONTRACT_ERROR","METADATA_NOT_FOUND","OPERATIONS_CASE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"API_MONITORING_LOG_ENTRY_NOT_FOUND","status":404,"message":"API monitoring log entry was not found","data":{"id":"DALP-0048","why":"No API monitoring log entry exists for the requested id in the active organization.","fix":"Verify the log entry id and organization, then retry.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["APPROVAL_REFUSED","CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","OPERATIONS_CASE_REFUSED","OPERATIONS_REINDEX_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"APPROVAL_REFUSED","status":409,"message":"The approval decision was refused","data":{"id":"DALP-9541","why":"The platform four-eyes rules and the policy version the request was raised under decide who may approve and whether the decision is still valid: the maker cannot approve their own request, a role the pinned policy does not name cannot approve, a signature that leaves the policy's approver floor short is recorded against the request rather than admitting it, a borrowed session cannot approve when the pinned policy sets operatorMayApprove to false, a payload that moved invalidates the approval, and an expired request accepts no decision. A policy that names no approving role admits any role the platform has already admitted as an approver.","fix":"Read the request again for its current state and row version, and have a distinct operator decide it.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","REINDEX_SERVICE_UNREACHABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns a display name for each address the caller may see, keyed by lowercase address, wrapped in the v2 single-resource envelope. `addresses` is a comma-joined list of 1 to 50 EVM addresses. A name comes from the first match in this order: user, organisation participant, contact, token, system contract. An address with no visible match is absent. The call does not change state.","summary":"Resolve display names for up to 50 addresses","x-dalp-auth":"session-or-api-key"}},"/api/v2/metadata/{hash}":{"get":{"tags":["Platform settings"],"operationId":"opsMetadata.read","parameters":[{"name":"hash","in":"path","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"required":true}],"responses":{"200":{"description":"Token metadata stored under the path hash, wrapped in the v2 single-resource envelope. The route answers 404 when that hash is not in the metadata store.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"hash":{"$ref":"#/components/schemas/EthereumHashEncoded"},"contentType":{"type":"string","minLength":1},"payload":{"type":"string"}},"required":["hash","contentType","payload"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"hash":"0x5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8","contentType":"application/json","payload":"{\"name\":\"Northwind Coffee Bond\",\"symbol\":\"NWCB\"}"},"links":{"self":"/v2/metadata/0x5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","DEBUG_BUNDLE_WINDOW_INVALID","INVALID_REQUEST_EXECUTOR","REINDEX_REQUEST_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","ADMIN_ACCESS_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["API_MONITORING_LOG_ENTRY_NOT_FOUND","APPROVAL_NOT_FOUND","CONTRACT_ERROR","METADATA_NOT_FOUND","OPERATIONS_CASE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"API_MONITORING_LOG_ENTRY_NOT_FOUND","status":404,"message":"API monitoring log entry was not found","data":{"id":"DALP-0048","why":"No API monitoring log entry exists for the requested id in the active organization.","fix":"Verify the log entry id and organization, then retry.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["APPROVAL_REFUSED","CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","OPERATIONS_CASE_REFUSED","OPERATIONS_REINDEX_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"APPROVAL_REFUSED","status":409,"message":"The approval decision was refused","data":{"id":"DALP-9541","why":"The platform four-eyes rules and the policy version the request was raised under decide who may approve and whether the decision is still valid: the maker cannot approve their own request, a role the pinned policy does not name cannot approve, a signature that leaves the policy's approver floor short is recorded against the request rather than admitting it, a borrowed session cannot approve when the pinned policy sets operatorMayApprove to false, a payload that moved invalidates the approval, and an expired request accepts no decision. A policy that names no approving role admits any role the platform has already admitted as an approver.","fix":"Read the request again for its current state and row version, and have a distinct operator decide it.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","REINDEX_SERVICE_UNREACHABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the token metadata stored under the 32-byte content hash in the path. The same hash always returns the same document. The route answers 404 when that hash is not in the metadata store. The call is safe to repeat.","summary":"Resolve content-addressed token metadata","x-dalp-auth":"session-or-api-key"}},"/api/v2/participants":{"get":{"tags":["Participants"],"operationId":"party.participants.list","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000},"kind":{"anyOf":[{"type":"string","enum":["person","company","fund","spv","department","joint_account","asset","organisation","claim_issuer","addon"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"displayName":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"address":{"anyOf":[{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false},{"name":"purpose","in":"query","schema":{"type":"string","enum":["transfer","identity","participant"]},"required":true},{"name":"eligibleForToken","in":"query","schema":{"type":"object","properties":{"tokenAddress":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"action":{"anyOf":[{"type":"string","enum":["mint","transfer","burn"]},{"type":"null"}]},"reveal":{"type":"string","enum":["true","false"]}},"required":["tokenAddress"],"additionalProperties":false},"required":false,"style":"deepObject","explode":true}],"responses":{"200":{"description":"A page of participants, with the total count and pagination links.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Participant"}},"meta":{"type":"object","properties":{"total":{"type":"integer"},"facets":{"type":"object","additionalProperties":{"type":"array","items":{"$ref":"#/components/schemas/CollectionFacetEntry"}}},"eligibilityHiddenCount":{"type":"integer","minimum":0}},"required":["total"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"c0b8d4b0-3c5a-4b62-9a2e-2f0f6f4a5f10","kind":"person","address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","displayName":"Ada Lovelace","symbol":null}],"meta":{"total":1},"links":{"self":"/v2/participants?sort=displayName&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/participants?sort=displayName&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/participants?sort=displayName&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the participants of the active organization that the session is allowed to see. `purpose` selects which address each row carries: `transfer` returns the address a transfer should be sent to, `identity` returns the participant's on-chain identity contract address, and `participant` returns the participant record itself and keeps rows whose address is still null. The `transfer` and `identity` purposes skip participants that have no such address. A session that cannot search the organization's members sees only `asset` and `addon` participants. Add the `eligibleForToken` filter to keep only the participants a given token accepts for a `mint`, `transfer`, or `burn`; wallet selection and `meta.eligibilityHiddenCount` then use the same eligibility-aware resolved result set.","summary":"List participants","x-dalp-auth":"session-or-api-key"},"post":{"tags":["Participants"],"operationId":"party.participants.create","parameters":[{"name":"Idempotency-Key","in":"header","schema":{"type":"string","description":"Caller-generated key that makes a repeated request resolve to the first attempt instead of starting a second one.","examples":["3f1c9a26-4c1e-4a53-9c6a-9c9d3e1b7a11"]},"required":false},{"name":"Prefer","in":"header","schema":{"type":"string","description":"RFC 7240 preference. Send `wait=N` (5 to 99 seconds) to wait for settlement, `respond-async` to take the 202 handle at once, or both to wait and then degrade to 202.","examples":["wait=30","respond-async, wait=30"]},"required":false}],"responses":{"200":{"description":"The created participant, with its wallet address and its on-chain identity contract address.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ParticipantCreated"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"c0b8d4b0-3c5a-4b62-9a2e-2f0f6f4a5f10","kind":"smart","wallet":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","identity":"0x8ba1f109551bD432803012645Ac136ddd64DBA72"},"links":{"self":"/v2/participants"}}}}}},"headers":{}},"201":{"description":"The created participant, waiting for its owner to prove the key.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/PendingParticipantCreated"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"c0b8d4b0-3c5a-4b62-9a2e-2f0f6f4a5f10","activationStatus":"pending","proofUrl":"/api/v2/user/custody-accounts/control"},"links":{"self":"/v2/participants/c0b8d4b0-3c5a-4b62-9a2e-2f0f6f4a5f10"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for a mutation whose managed custody account is still settling. The resource was created, but its custody account is not yet usable. Poll `statusUrl` until the lifecycle state is terminal. Do not retry the original POST.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartyCustodyLifecycleAccepted"},"examples":{"example-1":{"value":{"requestId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","state":"awaiting-aa-reconciliation","statusUrl":"/api/v2/participants/pp_0198f1a2-0000-7000-8000-000000000001/custody-account-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","party.participant.WALLET_TYPE_CONFLICT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Creates the participant one person acts as, provisions its wallet, and deploys its on-chain identity contract. It belongs to the user named by `forUserId`, or to you when that is omitted. `walletType` picks an `eoa` key account or a `smart` account with one signer of its own. Create multisig accounts through the multisig-draft finalize operation. A smart account needs account abstraction enabled for the organization and reconciled on this network; elsewhere `eoa` is the account the organization can drive. A 200 means the participant's custody account settled and is usable. A participant on a bring-your-own-key provider answers 201: it is created with no address and no account, and its owner activates it by connecting the wallet and signing the proof of control in a session of their own. When the managed custody account is still settling (for example awaiting account-abstraction reconciliation or an approval), the participant is created but the response is 202 with the lifecycle `requestId`, its `state`, and a `statusUrl` to poll until the state is terminal. The request is wallet-verified, is limited to ten participants per organization per minute.","summary":"Create a participant","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParticipantCreate"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/participants/assumable":{"get":{"tags":["Participants"],"operationId":"party.participants.assumableList","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"id":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"kind":{"anyOf":[{"type":"string","enum":["person","organisation"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"displayName":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false},{"name":"fields","in":"query","schema":{"type":"object","properties":{"assumableParticipant":{"type":"string"}},"additionalProperties":false,"description":"Sparse fieldset for the assumableParticipant resource this response carries. Only named members are present, and a member this resource does not publish is refused.","examples":[{"assumableParticipant":"id,displayName,kind,gatingRole,actAvailability"}]},"required":false,"style":"deepObject","explode":true},{"name":"view","in":"query","schema":{"type":"string","enum":["summary"],"description":"Shorthand for the assumableParticipant members a list or a strip renders: id, displayName, kind, gatingRole, actAvailability. Send fields[assumableParticipant] to name a different set; that parameter wins when both are present.","examples":["summary"]},"required":false}],"responses":{"200":{"description":"A page of participants the signed-in user may act as, with the total count and pagination links.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/AssumableParticipantRead"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","kind":"person","displayName":"Ada Lovelace","gatingRole":"organisationIdentityManager","actAvailability":{"actable":false,"reason":"ok"},"identityStatus":"verified","identityAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","registeredOrganizations":[{"organizationId":"org_northwind_coffee","state":"pending"}],"identities":[{"chainId":11155111,"identityAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","registration":"none"}],"accountCount":0}],"meta":{"total":1,"facets":{}},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants","first":"/v2/accounts?sort=-firstSeenBlock&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/accounts?sort=-firstSeenBlock&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the participants you may act as, across every organization you belong to. That covers your own person participant, the organizations your executor holds a gating role in, and the key or smart-account participants you were given explicit access to. Each row reports whether acting as it is possible right now and why not, the participant's identity registration status, its identity contract address, and how many accounts it owns. The `filter[id]` lookup accepts exact match only.","summary":"List participants the session can act as","x-dalp-auth":"session-or-api-key"}},"/api/v2/participants/{participantId}/activities":{"get":{"tags":["Participants"],"operationId":"party.participants.activityList","parameters":[{"name":"participantId","in":"path","schema":{"type":"string","minLength":1,"description":"Participant identifier"},"required":true},{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000},"eventName":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"blockTimestamp":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"projectionFamily":{"anyOf":[{"type":"string","enum":["holdings","transfers","allocations","allowances","compliance","identity"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"action":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"instrumentAdmin":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"instrumentId":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"fromParty":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"toParty":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"amount":{"anyOf":[{"type":"string","pattern":"^-?\\d+$","maxLength":80},{"type":"object","properties":{"eq":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"ne":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"gte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"between":{"type":"string","maxLength":161},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"ledgerOffset":{"anyOf":[{"type":"string","pattern":"^-?\\d+$","maxLength":80},{"type":"object","properties":{"eq":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"ne":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"gte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"between":{"type":"string","maxLength":161},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"recordTime":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"recordedAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"family":{"anyOf":[{"type":"string","enum":["evm","canton"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"network":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"A page of ledger events, with the total count and pagination links.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ParticipantActivityEventV2Item"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"family":"evm","id":"evt_01j8f3k2m4n5p6q7r8s9t0v1","eventName":"TransferCompleted","txIndex":"0","blockNumber":"21234567","blockTimestamp":"2026-03-15T14:30:00.000Z","transactionHash":"0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef","emitter":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"},"sender":{"id":"0x4B20993Bc481177ec7E8f571ceCaE8A9e22C02db"},"metaTxSigner":null,"displaySender":{"id":"0x4B20993Bc481177ec7E8f571ceCaE8A9e22C02db"},"relayerKind":null,"relayer":null,"userOpHash":null,"involved":[{"id":"0x4B20993Bc481177ec7E8f571ceCaE8A9e22C02db"},{"id":"0xAb8483F64d9C6d1EcF9b849Ae677dD3315835cb2"}],"values":[{"id":"evt_val_01j8f3k2m4n5p6q7r8s9t0v1","name":"amount","value":"1000000000000000000"}]},{"family":"canton","id":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6c","networkIdentity":"canton-local","ledgerOffset":"10427","updateId":"1220aabbccddeeff00112233445566778899aabbccddeeff0011223344556677","nodeId":0,"projectionFamily":"holdings","action":"transfer","contractId":"00a1b2c3d4e5f60718293a4b5c6d7e8f90a1b2c3d4e5f60718293a4b5c6d7e8f90","instrumentAdmin":"Canton::1220abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123","instrumentId":"NWC","fromParty":"Canton::1220abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123","toParty":"Canton::1220fedcba9876543210fedcba9876543210fedcba9876543210fedcba987654","amount":"1000","recordTime":"2026-08-21T09:15:00.000Z"}],"meta":{"total":2},"links":{"self":"/v2/participants/c0b8d4b0-3c5a-4b62-9a2e-2f0f6f4a5f10/activities?sort=-recordedAt&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/participants/c0b8d4b0-3c5a-4b62-9a2e-2f0f6f4a5f10/activities?sort=-recordedAt&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/participants/c0b8d4b0-3c5a-4b62-9a2e-2f0f6f4a5f10/activities?sort=-recordedAt&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the indexed events involving any of the participant's accounts, newest first. Rows carry `family` and are grouped by it, EVM first. An `evm` row carries the contract that emitted the event, the address that triggered it, every address the event involved, the decoded event parameters, and the relayer attribution when the transaction was submitted on someone else's behalf. A `canton` row carries the ledger offset, update id, and node index that name the event, and the parties and instrument it concerns. Send `filter[family]`, `X-Chain-Id`, or `X-Network-Id` to read one family; send none for both. Sort and filter on `recordedAt`, the ledger record time both families carry: a block number and a ledger offset are not comparable, so neither is a sort key here.","summary":"List participant activity","x-dalp-auth":"session-or-api-key"}},"/api/v2/participants/{participantId}/holdings":{"get":{"tags":["Participants"],"operationId":"party.participants.holdings","parameters":[{"name":"participantId","in":"path","schema":{"type":"string","minLength":1,"description":"Participant identifier"},"required":true},{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000},"tokenAddress":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"tokenName":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"tokenSymbol":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"walletAddress":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"walletType":{"anyOf":[{"type":"string","enum":["eoa","smart"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"instrumentAdmin":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"instrumentId":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"ownerParty":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"totalAmount":{"anyOf":[{"type":"string","pattern":"^-?\\d+$","maxLength":80},{"type":"object","properties":{"eq":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"ne":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"gte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"between":{"type":"string","maxLength":161},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"lockedAmount":{"anyOf":[{"type":"string","pattern":"^-?\\d+$","maxLength":80},{"type":"object","properties":{"eq":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"ne":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"gte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"between":{"type":"string","maxLength":161},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"holdingCount":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"string"}]},{"type":"object","properties":{"eq":{"anyOf":[{"type":"number"},{"type":"string"}]},"ne":{"anyOf":[{"type":"number"},{"type":"string"}]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"anyOf":[{"type":"number"},{"type":"string"}]},"gte":{"anyOf":[{"type":"number"},{"type":"string"}]},"lt":{"anyOf":[{"type":"number"},{"type":"string"}]},"lte":{"anyOf":[{"type":"number"},{"type":"string"}]},"between":{"type":"string","maxLength":64}},"additionalProperties":false}]},"updatedOffset":{"anyOf":[{"type":"string","pattern":"^-?\\d+$","maxLength":80},{"type":"object","properties":{"eq":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"ne":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"gte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"between":{"type":"string","maxLength":161},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"updatedAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"family":{"anyOf":[{"type":"string","enum":["evm","canton"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"network":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"A page of holdings, with the total count, the balance freshness stamp, and pagination links.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ParticipantHoldingV2Item"}},"meta":{"type":"object","properties":{"total":{"type":"integer"},"facets":{"type":"object","additionalProperties":{"type":"array","items":{"$ref":"#/components/schemas/CollectionFacetEntry"}}},"balancesAsOf":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}],"description":"The most recent indexed update across the returned EVM holdings, so a client can show how fresh the balances are. Null when the page carries no holdings."}},"required":["total","balancesAsOf"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"family":"evm","id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F:0x8ba1f109551bD432803012645Ac136ddd64DBA72","token":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","name":"Acme Bond 2030","symbol":"ACMB30","type":"bond","isExternal":false,"decimals":18},"assetClass":{"id":"bond-class","slug":"bond","name":"Bond"},"organization":{"id":"a3krknj5cG2I21Mrww9YDlAxcFt1JWD8","name":"Northwind"},"walletAddress":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","walletType":"smart","balance":"1250.5","frozen":"0","available":"1250.5","valueInBaseCurrency":"125050.00","priceInBaseCurrencyReliable":true,"transferVerdict":"transferable","restrictionReason":null},{"family":"canton","networkIdentity":"canton-local","instrumentAdmin":"Canton::1220abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123","instrumentId":"NWC","ownerParty":"Canton::1220fedcba9876543210fedcba9876543210fedcba9876543210fedcba987654","totalAmount":"1000","lockedAmount":"0","holdingCount":1,"updatedOffset":"10427","updateId":"1220aabbccddeeff00112233445566778899aabbccddeeff0011223344556677","updatedAt":"2026-08-21T09:15:00.000Z"}],"meta":{"total":2,"balancesAsOf":"2026-03-15T14:30:00.000Z"},"links":{"self":"/v2/participants/c0b8d4b0-3c5a-4b62-9a2e-2f0f6f4a5f10/holdings?sort=-balance&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/participants/c0b8d4b0-3c5a-4b62-9a2e-2f0f6f4a5f10/holdings?sort=-balance&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/participants/c0b8d4b0-3c5a-4b62-9a2e-2f0f6f4a5f10/holdings?sort=-balance&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns everything the participant holds, on every ledger it holds on. Rows carry `family` and are grouped by it, EVM first. An `evm` row is one token held by one account, with the total, frozen, and available balances, the value in the base currency where a price path resolves, and whether transferring that holding is currently allowed. A `canton` row is one party's position in one `(instrumentAdmin, instrumentId)` instrument, with its total and locked amounts and the ledger offset that last moved it. Send `filter[family]`, `X-Chain-Id`, or `X-Network-Id` to read one family; send none for both. `meta.balancesAsOf` describes the EVM rows only. Rows are sorted by balance, largest first, unless you pass `sort`.","summary":"List participant holdings","x-dalp-auth":"session-or-api-key"}},"/api/v2/participants/{participantId}/custody-account-requests/{requestId}":{"get":{"tags":["Participants"],"operationId":"party.participants.custodyAccountRequestRead","parameters":[{"name":"participantId","in":"path","schema":{"type":"string","minLength":1,"description":"Participant identifier"},"required":true},{"name":"requestId","in":"path","schema":{"type":"string","minLength":1,"description":"Durable custody account lifecycle request identifier"},"required":true}],"responses":{"200":{"description":"The durable state and continuation identifiers for one custody-account lifecycle request.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CustodyAccountLifecycleStatusOutput"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"requestId":"019c0000-0000-7000-8000-000000000004","custodyAccountId":"019c0000-0000-7000-8000-000000000002","organizationContextId":"019c0000-0000-7000-8000-000000000003","operation":"add","state":"awaiting-existing-approval","externalPreparationId":null,"externalAuthorizingCustodyAccountId":null,"externalMessageDigest":null,"terminalResult":null,"terminalCode":null},"links":{"self":"/v2/users/me/custody-account-requests/019c0000-0000-7000-8000-000000000004"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the durable state of one custody-account lifecycle request for a participant the caller can access. This is the status surface behind the 202 handle participant creation returns: the creator polls it until the request reaches a terminal state. Access follows participant access within the active organization: the request's actor is the account owner (an admin-created user or invitee), so the creator polling the handle is not required to be that actor.","summary":"Read a participant's custody lifecycle request","x-dalp-auth":"session-or-api-key"}},"/api/v2/participants/{participantId}/custody-account-requests/{requestId}/stream":{"get":{"tags":["Participants"],"operationId":"party.participants.custodyAccountRequestStream","parameters":[{"name":"participantId","in":"path","schema":{"type":"string","minLength":1,"description":"Participant identifier"},"required":true},{"name":"requestId","in":"path","schema":{"type":"string","minLength":1,"description":"Durable custody account lifecycle request identifier"},"required":true}],"responses":{"200":{"description":"Server-sent events carrying the request's current state first, then a new snapshot each time the state changes, until the request comes to rest or three minutes pass.","content":{"text/event-stream":{"schema":{"type":"object","properties":{"requestId":{"type":"string","minLength":1,"description":"Durable custody account lifecycle request identifier"},"custodyAccountId":{"type":"string","minLength":1,"description":"Global custody account identifier"},"organizationContextId":{"type":"string","minLength":1,"description":"Custody account organization context identifier"},"operation":{"type":"string","enum":["onboard","add","revoke","archive"]},"state":{"type":"string","enum":["awaiting-proof","awaiting-existing-approval","claimed","awaiting-aa-reconciliation","reconciling","awaiting-external-message-authorization","awaiting-external-authorization","succeeded","failed","expired"]},"externalPreparationId":{"anyOf":[{"type":"string","minLength":1,"description":"Server-prepared transaction authorization identifier"},{"type":"null"}],"description":"Prepared transaction this request is waiting to have authorized. Null on a managed path and until the request reaches an external-authorization state."},"externalAuthorizingCustodyAccountId":{"anyOf":[{"type":"string","minLength":1,"description":"Global custody account identifier"},{"type":"null"}],"description":"Account whose signature the request is waiting for. Null on a managed path and until the request reaches an external-authorization state."},"externalMessageDigest":{"anyOf":[{"type":"string","minLength":2,"description":"A valid Ethereum hex string starting with 0x","examples":["0x5208"]},{"type":"null"}],"description":"Digest of the message the external account must sign. Null on a managed path and until the request reaches an external-authorization state."},"terminalResult":{"anyOf":[{"type":"string","enum":["succeeded","failed","expired"]},{"type":"null"}],"description":"How the request ended. Null while it is still running, which is what tells a poller to ask again."},"terminalCode":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Machine-readable reason a request failed or expired. Null for a request that has not ended, and for one that succeeded."}},"required":["requestId","custodyAccountId","organizationContextId","operation","state","externalPreparationId","externalAuthorizingCustodyAccountId","externalMessageDigest","terminalResult","terminalCode"],"additionalProperties":true},"x-effect-stream":{"encoding":"sse","causeSchema":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["Fail"]},"error":{"not":{}}},"required":["_tag","error"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["Die"]},"defect":{}},"required":["_tag","defect"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["Interrupt"]},"fiberId":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["_tag","fiberId"],"additionalProperties":false}]}},"errorSchema":{"not":{}},"failureEvent":"effect/http-api/stream/failure"},"examples":{"example-1":{"value":{"requestId":"019c0000-0000-7000-8000-000000000004","custodyAccountId":"6b1c8f27-4a03-4e5d-b7a1-9c2d0e4f8a35","organizationContextId":"019c0000-0000-7000-8000-000000000003","operation":"onboard","state":"awaiting-proof","externalPreparationId":null,"externalAuthorizingCustodyAccountId":null,"externalMessageDigest":"0x5208","terminalResult":"succeeded","terminalCode":null}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Opens a server-sent event stream for one custody account lifecycle request of a participant the caller can read in the active organization. Browser callers must be same-origin or the route answers 404. The stream ends when the request comes to rest, or after three minutes; use the participant's request read after that.","summary":"Stream a participant's custody account lifecycle request","x-dalp-auth":"session-or-api-key"}},"/api/v2/participants/{participantId}/chains/{chainId}/identity":{"post":{"tags":["Participants"],"operationId":"party.participants.chainIdentityInstall","parameters":[{"name":"participantId","in":"path","schema":{"type":"string","minLength":1,"description":"Participant identifier"},"required":true},{"name":"chainId","in":"path","schema":{"type":"integer","exclusiveMinimum":0,"description":"EVM chain identifier.","examples":[11155111]},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ParticipantChainIdentityState"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"participantId":"c0b8d4b0-3c5a-4b62-9a2e-2f0f6f4a5f10","chainId":11155111,"state":"absent"},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParticipantChainIdentityInstallBody"}}},"required":true},"x-dalp-auth":"session-or-api-key"},"get":{"tags":["Participants"],"operationId":"party.participants.chainIdentityRead","parameters":[{"name":"participantId","in":"path","schema":{"type":"string","minLength":1,"description":"Participant identifier"},"required":true},{"name":"chainId","in":"path","schema":{"type":"integer","exclusiveMinimum":0,"description":"EVM chain identifier.","examples":[11155111]},"required":true}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ParticipantChainIdentityState"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"participantId":"c0b8d4b0-3c5a-4b62-9a2e-2f0f6f4a5f10","chainId":11155111,"state":"absent"},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"x-dalp-auth":"session-or-api-key"}},"/api/v2/participants/registrations":{"get":{"tags":["Participants"],"operationId":"party.registrations.listPending","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"kind":{"anyOf":[{"type":"string","enum":["registry","identity","verification","recovery-proposal"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"adminParty":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"subjectParty":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"country":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"createdOffset":{"anyOf":[{"type":"string","pattern":"^-?\\d+$","maxLength":80},{"type":"object","properties":{"eq":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"ne":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"gte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"between":{"type":"string","maxLength":161},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"recordTime":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"family":{"anyOf":[{"type":"string","enum":["evm","canton"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"network":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"A page of registrations awaiting a decision and party onboardings, with the total count and pagination links.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/RegistrationListItem"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"family":"evm","registrationId":"8f2b1d54-6a77-4a2c-9d31-71a0d3c4b8e2","participantId":"c0b8d4b0-3c5a-4b62-9a2e-2f0f6f4a5f10","displayName":"Ada Lovelace","kind":"person","requestedByUserId":"usr_01j8f3k2m4n5p6q7r8s9t0v1","requestedAt":"2026-03-11T09:24:05.418Z","walletAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","identityAddress":"0x8ba1f109551bD432803012645Ac136ddd64DBA72"},{"family":"canton","networkIdentity":"canton-local","contractId":"00a1b2c3d4e5f60718293a4b5c6d7e8f90a1b2c3d4e5f60718293a4b5c6d7e8f90","kind":"identity","adminParty":"Canton::1220abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123","subjectParty":"Canton::1220fedcba9876543210fedcba9876543210fedcba9876543210fedcba987654","country":"BE","createdOffset":"10427","updateId":"1220aabbccddeeff00112233445566778899aabbccddeeff0011223344556677","recordTime":"2026-08-21T09:15:00.000Z"}],"meta":{"total":2},"links":{"self":"/api/v2/participants/registrations?page[offset]=0&page[limit]=50","first":"/api/v2/participants/registrations?page[offset]=0&page[limit]=50","prev":null,"next":null,"last":"/api/v2/participants/registrations?page[offset]=0&page[limit]=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns what the active organization still has to decide on, across both chain families. The `evm` rows are the registration requests waiting on the organization for the selected network: the requests that have not been rejected and whose identity is not yet active in the organization's identity registry, each naming the participant, who requested the registration and when, and the wallet and identity addresses once indexing has caught up. The `canton` rows are the party-onboarding steps the organization's own parties disclose on the selected Canton network, each naming the registry contract the ledger recorded it under, the admin party, the subject party and its country when it has one, and the offset, update id and record time that stamp it. `filter[family]=evm|canton` selects one family, and a request that names neither is served both with the EVM rows first; an `X-Chain-Id` or `X-Network-Id` header states the same choice, and the filter wins when a request carries both. On the Canton family `filter[kind]` narrows to `registry`, `identity`, `verification`, or `recovery-proposal`, and `filter[network]` narrows to the network the row was projected from. A request that states a family and then filters on a column only the other family has is refused with the families that could have answered it, rather than answered with an empty page. `meta.total` counts the matching rows in both families. Requires the identity-manager role.","summary":"List identity registrations awaiting a decision, or party onboardings","x-dalp-auth":"session-or-api-key"},"post":{"tags":["Participants"],"operationId":"party.registrations.requestPending","parameters":[{"name":"Idempotency-Key","in":"header","schema":{"type":"string","description":"Caller-generated key that makes a repeated request resolve to the first attempt instead of starting a second one.","examples":["3f1c9a26-4c1e-4a53-9c6a-9c9d3e1b7a11"]},"required":false},{"name":"Prefer","in":"header","schema":{"type":"string","description":"RFC 7240 preference. Send `wait=N` (5 to 99 seconds) to wait for settlement, `respond-async` to take the 202 handle at once, or both to wait and then degrade to 202.","examples":["wait=30","respond-async, wait=30"]},"required":false}],"responses":{"200":{"description":"The pending registration or the settled identity operation, with the transaction hashes that carried it, or a status URL to poll when the write was queued.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/RegistrationAccepted"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"registrationId":"8f2b1d54-6a77-4a2c-9d31-71a0d3c4b8e2","status":"pending"},"meta":{"txHashes":["0x5c73a1e94b0d268fa37e15c8b02d94f6a1e7835c0b96d2f4e83a17c5d602b9f4"]},"links":{"self":"/v2/participants/registrations"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Asks a target organization to register a participant you control in its identity registry, or runs one party-identity registry choice on a Canton network. A body carrying `cantonPartyId` and `kind` runs the Canton choice it names, as the party wallet of the active organization it names; a body carrying neither is the EVM registration: you must control the participant and belong to the target organization, and the participant must already have an on-chain identity on the network that organization is deployed to. The registration is stored as pending and stays pending until an identity manager of the target organization accepts it. Either write is wallet-verified and submits a blockchain transaction, so it can answer with a status URL to poll instead of the finished result.","summary":"Request an identity registration, or run a party-identity registry choice","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegistrationCreate"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/participants/registrations/direct":{"post":{"tags":["Participants"],"operationId":"party.registrations.registerDirect","parameters":[{"name":"Idempotency-Key","in":"header","schema":{"type":"string","description":"Caller-generated key that makes a repeated request resolve to the first attempt instead of starting a second one.","examples":["3f1c9a26-4c1e-4a53-9c6a-9c9d3e1b7a11"]},"required":false},{"name":"Prefer","in":"header","schema":{"type":"string","description":"RFC 7240 preference. Send `wait=N` (5 to 99 seconds) to wait for settlement, `respond-async` to take the 202 handle at once, or both to wait and then degrade to 202.","examples":["wait=30","respond-async, wait=30"]},"required":false}],"responses":{"200":{"description":"The active registration and the transaction hashes that carried it, or a status URL to poll when the transaction was queued.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/RegistrationActivated"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"registrationId":"8f2b1d54-6a77-4a2c-9d31-71a0d3c4b8e2","status":"active"},"meta":{"txHashes":["0x5c73a1e94b0d268fa37e15c8b02d94f6a1e7835c0b96d2f4e83a17c5d602b9f4"]},"links":{"self":"/v2/participants/registrations/direct"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Registers an existing on-chain identity into the active organization in one step, with no request-and-accept round trip. The participant is resolved from `identityAddress`, each of its accounts that already has an indexed identity is registered under the `country` you supply, and the registration comes back active. The request is wallet-verified, submits a blockchain transaction, and requires the identity-manager role.","summary":"Register an identity directly","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DirectRegistration"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/participants/registrations/{registrationId}/reject":{"post":{"tags":["Participants"],"operationId":"party.registrations.reject","parameters":[{"name":"registrationId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The rejected registration.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/RegistrationRejected"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"registrationId":"8f2b1d54-6a77-4a2c-9d31-71a0d3c4b8e2","status":"rejected"},"links":{"self":"/v2/participants/registrations/8f2b1d54-6a77-4a2c-9d31-71a0d3c4b8e2/reject"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Rejects a registration request that is still waiting on the active organization. Nothing is submitted on chain, and the participant's controller can request registration again afterwards. A registration that is no longer pending cannot be rejected. Requires the identity-manager role.","summary":"Reject an identity registration","x-dalp-auth":"session-or-api-key"}},"/api/v2/participants/multisig-drafts":{"get":{"tags":["Participants"],"operationId":"party.multisigDrafts.list","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"name":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"status":{"anyOf":[{"type":"string","enum":["open","finalizing","finalized"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"createdAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"updatedAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"Paginated list envelope. `data` is one page of items. `meta.total` and `meta.facets` describe the full filtered set. `links` carries first, previous, next, and last page URLs with the same sort and filters.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/MultisigDraftView"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","kind":"multisig","name":"Core holdings","threshold":2,"status":"open","memberSetVersion":1,"creator":{"participantId":"c0b8d4b0-3c5a-4b62-9a2e-2f0f6f4a5f10","displayName":"Ada Lovelace"},"seats":[{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","kind":"own","weight":1,"address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","walletId":"wallet-custody-001","participant":{"participantId":"c0b8d4b0-3c5a-4b62-9a2e-2f0f6f4a5f10","displayName":"Ada Lovelace"}}],"achievability":{"totalWeight":1,"collectableWeight":1,"pendingWeight":0,"thresholdAchievable":false,"collectableThresholdAchievable":false},"createdAt":"2026-08-01T09:00:00.000Z","updatedAt":"2026-08-01T09:00:00.000Z","finalizedAt":"2026-03-11T16:02:08.000Z"}],"meta":{"total":1,"facets":{}},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants","first":"/v2/accounts?sort=-firstSeenBlock&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/accounts?sort=-firstSeenBlock&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the multisig drafts the caller may see in the active organization. A draft is the unsigned signer set for a smart account that has not been created yet.","summary":"List multisig drafts","x-dalp-auth":"session-or-api-key"},"post":{"tags":["Participants"],"operationId":"party.multisigDrafts.create","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The new draft: `id`, display name, threshold, `status` `open`, the selected account's first seat, and `achievability` weight totals. Store `id` for seat, invite, and finalize routes. Invite other signers next. Nothing is on chain yet.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MultisigDraftView"},"examples":{"example-1":{"value":{"id":"0194b2c8-7a11-7e30-9d45-2f8c1a06b394","kind":"multisig","name":"Northwind Treasury","threshold":2,"status":"open","memberSetVersion":1,"creator":{"participantId":"c0b8d4b0-3c5a-4b62-9a2e-2f0f6f4a5f10","displayName":"Amara Okafor"},"seats":[{"id":"0194b2c9-3d80-7a14-8e61-4c9f0b17d205","kind":"own","weight":1,"address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","walletId":"0194b2c7-5e21-7a08-9c33-8d1f6b20e4a7","participant":{"participantId":"c0b8d4b0-3c5a-4b62-9a2e-2f0f6f4a5f10","displayName":"Amara Okafor"}}],"achievability":{"totalWeight":1,"collectableWeight":1,"pendingWeight":0,"thresholdAchievable":false,"collectableThresholdAchievable":false},"createdAt":"2026-03-11T09:12:41.000Z","updatedAt":"2026-03-11T09:12:41.000Z","finalizedAt":null}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Creates a draft for a new multisig smart account and seats one exact caller-controlled account as the first signer. Invite other signers, set the threshold once the signer set is known, then finalize the draft to provision the account. A draft created without a `threshold` requires every seated signer's weight until the update route narrows it.","summary":"Create a multisig draft","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MultisigDraftCreate"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/participants/multisig-drafts/{draftId}":{"get":{"tags":["Participants"],"operationId":"party.multisigDrafts.read","parameters":[{"name":"draftId","in":"path","schema":{"type":"string","minLength":1},"required":true}],"responses":{"200":{"description":"The draft with its seats, invites, threshold, and whether the current weights can meet that threshold.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MultisigDraftView"},"examples":{"example-1":{"value":{"id":"0194b2c8-7a11-7e30-9d45-2f8c1a06b394","kind":"multisig","name":"Northwind Treasury","threshold":2,"status":"open","memberSetVersion":1,"creator":{"participantId":"c0b8d4b0-3c5a-4b62-9a2e-2f0f6f4a5f10","displayName":"Amara Okafor"},"seats":[{"id":"0194b2c9-3d80-7a14-8e61-4c9f0b17d205","kind":"own","weight":1,"address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","walletId":"0194b2c7-5e21-7a08-9c33-8d1f6b20e4a7","participant":{"participantId":"c0b8d4b0-3c5a-4b62-9a2e-2f0f6f4a5f10","displayName":"Amara Okafor"}}],"achievability":{"totalWeight":1,"collectableWeight":1,"pendingWeight":0,"thresholdAchievable":false,"collectableThresholdAchievable":false},"createdAt":"2026-03-11T09:12:41.000Z","updatedAt":"2026-03-11T09:12:41.000Z","finalizedAt":null}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one draft in the active organization with its seats, invites, threshold, and whether the current weights can meet that threshold. A draft the caller cannot see returns 404. Nothing is submitted on chain.","summary":"Read a multisig draft","x-dalp-auth":"session-or-api-key"},"patch":{"tags":["Participants"],"operationId":"party.multisigDrafts.update","parameters":[{"name":"draftId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The draft after the display name or threshold change.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MultisigDraftView"},"examples":{"example-1":{"value":{"id":"0194b2c8-7a11-7e30-9d45-2f8c1a06b394","kind":"multisig","name":"Northwind Treasury","threshold":2,"status":"open","memberSetVersion":1,"creator":{"participantId":"c0b8d4b0-3c5a-4b62-9a2e-2f0f6f4a5f10","displayName":"Amara Okafor"},"seats":[{"id":"0194b2c9-3d80-7a14-8e61-4c9f0b17d205","kind":"own","weight":1,"address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","walletId":"0194b2c7-5e21-7a08-9c33-8d1f6b20e4a7","participant":{"participantId":"c0b8d4b0-3c5a-4b62-9a2e-2f0f6f4a5f10","displayName":"Amara Okafor"}}],"achievability":{"totalWeight":1,"collectableWeight":1,"pendingWeight":0,"thresholdAchievable":false,"collectableThresholdAchievable":false},"createdAt":"2026-03-11T09:12:41.000Z","updatedAt":"2026-03-11T09:12:41.000Z","finalizedAt":null}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Changes the display name or threshold of a draft the caller owns. Seats stay in place. Omit a field to leave its stored value unchanged. Lower the threshold first when a later seat removal would leave the remaining weights below it. Nothing is submitted on chain.","summary":"Update a multisig draft","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MultisigDraftUpdate"}}},"required":false},"x-dalp-auth":"session-or-api-key"},"delete":{"tags":["Participants"],"operationId":"party.multisigDrafts.discard","parameters":[{"name":"draftId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Confirmation that the draft was removed and its unused invites are void.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DraftDiscarded"},"examples":{"example-1":{"value":{"deleted":true}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Removes a draft the caller owns. Open invites become void and can no longer be accepted. A draft that is already finalizing or finalized cannot be deleted. Nothing is submitted on chain.","summary":"Delete a multisig draft","x-dalp-auth":"session-or-api-key"}},"/api/v2/participants/multisig-drafts/{draftId}/own-seats":{"post":{"tags":["Participants"],"operationId":"party.multisigDrafts.addOwnSeat","parameters":[{"name":"draftId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The draft after the owned seat was added: seats, invites, threshold, and updated `achievability` totals. Check `achievability.thresholdAchievable` before you finalize.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MultisigDraftView"},"examples":{"example-1":{"value":{"id":"0194b2c8-7a11-7e30-9d45-2f8c1a06b394","kind":"multisig","name":"Northwind Treasury","threshold":2,"status":"open","memberSetVersion":1,"creator":{"participantId":"c0b8d4b0-3c5a-4b62-9a2e-2f0f6f4a5f10","displayName":"Amara Okafor"},"seats":[{"id":"0194b2c9-3d80-7a14-8e61-4c9f0b17d205","kind":"own","weight":1,"address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","walletId":"0194b2c7-5e21-7a08-9c33-8d1f6b20e4a7","participant":{"participantId":"c0b8d4b0-3c5a-4b62-9a2e-2f0f6f4a5f10","displayName":"Amara Okafor"}}],"achievability":{"totalWeight":1,"collectableWeight":1,"pendingWeight":0,"thresholdAchievable":false,"collectableThresholdAchievable":false},"createdAt":"2026-03-11T09:12:41.000Z","updatedAt":"2026-03-11T09:12:41.000Z","finalizedAt":null}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Adds a signer seat backed by one exact account the caller controls. The seat weight counts toward the draft threshold.","summary":"Add an owned signer seat","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OwnSeatInput"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/participants/multisig-drafts/{draftId}/external-seats":{"post":{"tags":["Participants"],"operationId":"party.multisigDrafts.addExternalSeat","parameters":[{"name":"draftId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The draft after the external seat was added: seats, threshold, and updated `achievability` totals. Invite remaining signers, or finalize when `achievability.thresholdAchievable` is true.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MultisigDraftView"},"examples":{"example-1":{"value":{"id":"0194b2c8-7a11-7e30-9d45-2f8c1a06b394","kind":"multisig","name":"Northwind Treasury","threshold":2,"status":"open","memberSetVersion":1,"creator":{"participantId":"c0b8d4b0-3c5a-4b62-9a2e-2f0f6f4a5f10","displayName":"Amara Okafor"},"seats":[{"id":"0194b2c9-3d80-7a14-8e61-4c9f0b17d205","kind":"own","weight":1,"address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","walletId":"0194b2c7-5e21-7a08-9c33-8d1f6b20e4a7","participant":{"participantId":"c0b8d4b0-3c5a-4b62-9a2e-2f0f6f4a5f10","displayName":"Amara Okafor"}}],"achievability":{"totalWeight":1,"collectableWeight":1,"pendingWeight":0,"thresholdAchievable":false,"collectableThresholdAchievable":false},"createdAt":"2026-03-11T09:12:41.000Z","updatedAt":"2026-03-11T09:12:41.000Z","finalizedAt":null}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Adds a signer seat backed by an address outside the organization. Use an invite when the signer still needs to join.","summary":"Add an external signer seat","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExternalSeatInput"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/participants/multisig-drafts/{draftId}/seats/{seatId}":{"delete":{"tags":["Participants"],"operationId":"party.multisigDrafts.removeSeat","parameters":[{"name":"draftId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"name":"seatId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Confirmation that the named seat was removed from the draft.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SeatRemoved"},"examples":{"example-1":{"value":{"removed":true}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Removes one seat from the draft. The creator's own seat cannot be removed. The threshold stays as stored, so lower it first if the remaining weights would fall below it.","summary":"Remove a signer seat","x-dalp-auth":"session-or-api-key"}},"/api/v2/participants/multisig-drafts/{draftId}/invites":{"post":{"tags":["Participants"],"operationId":"party.multisigDrafts.issueInvite","parameters":[{"name":"draftId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The invite identifier, the seat it created, the single-use token, and when the token expires. The token is returned only on this response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InviteIssued"},"examples":{"example-1":{"value":{"inviteId":"0194b2ca-1e55-7c22-9b08-6d3a4e81f017","seatId":"0194b2c9-3d80-7a14-8e61-4c9f0b17d205","token":"msig_inv_7c4a1f2e1b584f3d9a6c2d0f8b41c7e5","expiresAt":"2026-03-18T09:12:41.000Z"}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Creates a single-use invite for a signer to join the draft. The response carries the token once; store it if you need to send it yourself. Optional `deliveryEmail` asks the platform to send the token. Revoke the invite if it must not be used. Nothing is submitted on chain.","summary":"Invite a signer to a draft","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InviteRequest"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/participants/multisig-drafts/{draftId}/invites/{inviteId}/revoke":{"post":{"tags":["Participants"],"operationId":"party.multisigDrafts.revokeInvite","parameters":[{"name":"draftId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"name":"inviteId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Confirmation that the unused invite is void and can no longer be accepted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InviteRevoked"},"examples":{"example-1":{"value":{"revoked":true}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Voids an unused invite so its token can no longer join the draft. A token that already joined is unchanged. Nothing is submitted on chain.","summary":"Revoke a signer invite","x-dalp-auth":"session-or-api-key"}},"/api/v2/participants/multisig-drafts/eligible-keys":{"get":{"tags":["Participants"],"operationId":"party.multisigDrafts.eligibleKeys","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"participantId":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"displayName":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"walletType":{"anyOf":[{"anyOf":[{"type":"string","enum":["eoa"]}]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"Paginated list envelope. `data` is one page of items. `meta.total` and `meta.facets` describe the full filtered set. `links` carries first, previous, next, and last page URLs with the same sort and filters.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/MultisigEligibleKey"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"walletId":"wallet-custody-001","participantId":"c0b8d4b0-3c5a-4b62-9a2e-2f0f6f4a5f10","displayName":"Ada Lovelace","address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","walletType":"eoa","eligible":true,"reason":null},{"walletId":"wallet-custody-002","participantId":"c0b8d4b0-3c5a-4b62-9a2e-2f0f6f4a5f10","displayName":"Ada Lovelace","address":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","walletType":"eoa","eligible":false,"reason":"custody-mismatch"}],"meta":{"total":2},"links":{"self":"/v2/participants/multisig-drafts/eligible-keys?page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/participants/multisig-drafts/eligible-keys?page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/participants/multisig-drafts/eligible-keys?page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the caller-controlled EOA accounts that are candidates to anchor or join a multisig draft in the active organization and network. Each account is identified by both participant and address and carries a per-key eligibility verdict: `eligible` says whether the organization can drive that wallet on this chain, and `reason` names the missing capability when it cannot. A row with `eligible: false` is listed so it can be shown with its reason, but it cannot be driven.","summary":"List candidate keys for a multisig draft","x-dalp-auth":"session-or-api-key"}},"/api/v2/participants/multisig-invites/{token}":{"get":{"tags":["Participants"],"operationId":"party.multisigDrafts.readInvite","parameters":[{"name":"token","in":"path","schema":{"type":"string","minLength":1},"required":true}],"responses":{"200":{"description":"The invite and a summary of the draft it belongs to.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MultisigInviteView"},"examples":{"example-1":{"value":{"name":"Northwind Treasury","creator":{"participantId":"c0b8d4b0-3c5a-4b62-9a2e-2f0f6f4a5f10","displayName":"Amara Okafor"},"assignedWeight":1,"threshold":2,"members":[{"address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","weight":1}],"status":"pending"}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the invite and a summary of the draft it belongs to. An invalid, expired, or consumed token returns 404 without saying which.","summary":"Read a multisig invite by token","x-dalp-auth":"session-or-api-key"}},"/api/v2/participants/multisig-invites/{token}/eligible-keys":{"get":{"tags":["Participants"],"operationId":"party.multisigDrafts.inviteEligibleKeys","parameters":[{"name":"token","in":"path","schema":{"type":"string","minLength":1},"required":true},{"name":"filter","in":"query","schema":{"type":"object","properties":{"participantId":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"displayName":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"walletType":{"anyOf":[{"anyOf":[{"type":"string","enum":["eoa"]}]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"Paginated list envelope. `data` is one page of items. `meta.total` and `meta.facets` describe the full filtered set. `links` carries first, previous, next, and last page URLs with the same sort and filters.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/MultisigEligibleKey"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"walletId":"wallet-custody-001","participantId":"c0b8d4b0-3c5a-4b62-9a2e-2f0f6f4a5f10","displayName":"Ada Lovelace","address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","walletType":"eoa","eligible":true,"reason":null},{"walletId":"wallet-custody-002","participantId":"c0b8d4b0-3c5a-4b62-9a2e-2f0f6f4a5f10","displayName":"Ada Lovelace","address":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","walletType":"eoa","eligible":false,"reason":"custody-mismatch"}],"meta":{"total":2},"links":{"self":"/v2/participants/multisig-invites/plain-token/eligible-keys?page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/participants/multisig-invites/plain-token/eligible-keys?page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/participants/multisig-invites/plain-token/eligible-keys?page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the caller's candidate keys for the draft named by the invite token. Each row is a key-account or single-signer participant the caller controls and carries a per-key eligibility verdict for the draft's organization and chain: `eligible` says whether that organization can drive the wallet there, and `reason` names the missing capability when it cannot. A row with `eligible: false` cannot be driven. An invalid, expired, or consumed token returns 404 without saying which.","summary":"List candidate keys for a multisig invite","x-dalp-auth":"session-or-api-key"}},"/api/v2/participants/multisig-invites/{token}/accept":{"post":{"tags":["Participants"],"operationId":"party.multisigDrafts.acceptInvite","parameters":[{"name":"token","in":"path","schema":{"type":"string","minLength":1},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Confirmation that the caller joined the draft, with the seat address and weight.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SeatJoined"},"examples":{"example-1":{"value":{"joined":true,"address":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30","weight":1}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Joins the draft named by the invite token with one of the caller's keys. A token that is invalid, expired, or already used returns 404.","summary":"Accept a multisig invite","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InviteAccept"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/participants/multisig-invites/by-id/{inviteId}":{"get":{"tags":["Participants"],"operationId":"party.multisigDrafts.readInviteById","parameters":[{"name":"inviteId","in":"path","schema":{"type":"string","minLength":1},"required":true}],"responses":{"200":{"description":"The invite and a summary of the draft it belongs to.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MultisigInviteView"},"examples":{"example-1":{"value":{"name":"Northwind Treasury","creator":{"participantId":"c0b8d4b0-3c5a-4b62-9a2e-2f0f6f4a5f10","displayName":"Amara Okafor"},"assignedWeight":1,"threshold":2,"members":[{"address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","weight":1}],"status":"pending"}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the invite when the caller may see it. Use the token routes when the invitee only holds the token.","summary":"Read a multisig invite by identifier","x-dalp-auth":"session-or-api-key"}},"/api/v2/participants/multisig-invites/by-id/{inviteId}/eligible-keys":{"get":{"tags":["Participants"],"operationId":"party.multisigDrafts.inviteByIdEligibleKeys","parameters":[{"name":"inviteId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"name":"filter","in":"query","schema":{"type":"object","properties":{"participantId":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"displayName":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"walletType":{"anyOf":[{"anyOf":[{"type":"string","enum":["eoa"]}]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"Paginated list envelope. `data` is one page of items. `meta.total` and `meta.facets` describe the full filtered set. `links` carries first, previous, next, and last page URLs with the same sort and filters.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/MultisigEligibleKey"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"walletId":"wallet-custody-001","participantId":"c0b8d4b0-3c5a-4b62-9a2e-2f0f6f4a5f10","displayName":"Ada Lovelace","address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","walletType":"eoa","eligible":true,"reason":null},{"walletId":"wallet-custody-002","participantId":"c0b8d4b0-3c5a-4b62-9a2e-2f0f6f4a5f10","displayName":"Ada Lovelace","address":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","walletType":"eoa","eligible":false,"reason":"custody-mismatch"}],"meta":{"total":2},"links":{"self":"/v2/participants/multisig-invites/by-id/01J8Z9W6R7Q2K4M5N6P7S8T9V0/eligible-keys?page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/participants/multisig-invites/by-id/01J8Z9W6R7Q2K4M5N6P7S8T9V0/eligible-keys?page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/participants/multisig-invites/by-id/01J8Z9W6R7Q2K4M5N6P7S8T9V0/eligible-keys?page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the caller's candidate keys for the draft named by the invite identifier. Each row is a key-account or single-signer participant the caller controls and carries a per-key eligibility verdict for the draft's organization and chain: `eligible` says whether that organization can drive the wallet there, and `reason` names the missing capability when it cannot. A row with `eligible: false` cannot be driven. Use the token routes when the invitee only holds the token.","summary":"List candidate keys for a multisig invite by identifier","x-dalp-auth":"session-or-api-key"}},"/api/v2/participants/multisig-invites/by-id/{inviteId}/accept":{"post":{"tags":["Participants"],"operationId":"party.multisigDrafts.acceptInviteById","parameters":[{"name":"inviteId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Confirmation that the caller joined the draft, with the seat address and weight.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SeatJoined"},"examples":{"example-1":{"value":{"joined":true,"address":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30","weight":1}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Joins the draft named by the invite identifier with one of the caller's keys. The request writes the platform record and submits nothing on chain. A token that is invalid, expired, or already used returns 404.","summary":"Accept a multisig invite by identifier","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InviteAccept"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/participants/multisig-drafts/{draftId}/finalize":{"post":{"tags":["Participants"],"operationId":"party.multisigDrafts.finalize","parameters":[{"name":"draftId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","description":"Caller-generated key that makes a repeated request resolve to the first attempt instead of starting a second one.","examples":["3f1c9a26-4c1e-4a53-9c6a-9c9d3e1b7a11"]},"required":false},{"name":"Prefer","in":"header","schema":{"type":"string","description":"RFC 7240 preference. Send `wait=N` (5 to 99 seconds) to wait for settlement, `respond-async` to take the 202 handle at once, or both to wait and then degrade to 202.","examples":["wait=30","respond-async, wait=30"]},"required":false}],"responses":{"200":{"description":"The provisioned participant identifier and the deployed smart-account address.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MultisigFinalized"},"examples":{"example-1":{"value":{"participantId":"0194b2cb-8f02-7d19-a4c6-1e90b35d7a48","smartWalletAddress":"0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC"}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for a mutation whose managed custody account is still settling. The resource was created, but its custody account is not yet usable. Poll `statusUrl` until the lifecycle state is terminal. Do not retry the original POST.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartyCustodyLifecycleAccepted"},"examples":{"example-1":{"value":{"requestId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","state":"awaiting-aa-reconciliation","statusUrl":"/api/v2/participants/pp_0198f1a2-0000-7000-8000-000000000001/custody-account-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Locks the draft and provisions the smart account from its signer set. A 200 means the validator swap is indexed and the controlling account's custody lifecycle settled. When that custody lifecycle is still settling, the multisig is provisioned but the response is 202 with the lifecycle `requestId`, its `state`, and a `statusUrl` to poll until the state is terminal. The request is wallet-verified and submits a blockchain transaction. A draft that is no longer open cannot be finalized. Send `walletVerification` when the signing wallet is protected by a code.","summary":"Finalize a multisig draft","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MultisigFinalize"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/contacts":{"get":{"tags":["Contacts"],"operationId":"party.contacts.list","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000},"name":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"wallet":{"anyOf":[{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"createdAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"updatedAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false},{"name":"eligibleForToken","in":"query","schema":{"type":"object","properties":{"tokenAddress":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"action":{"anyOf":[{"type":"string","enum":["mint","transfer","burn"]},{"type":"null"}]},"reveal":{"type":"string","enum":["true","false"]}},"required":["tokenAddress"],"additionalProperties":false},"required":false,"style":"deepObject","explode":true}],"responses":{"200":{"description":"One page of contacts. `meta.total` counts every contact matching the query rather than the ones on this page, and `links` carries relative URLs for the surrounding pages with `prev` and `next` set to null at the ends of the collection. `meta.eligibilityHiddenCount` appears only when the request applied `eligibleForToken` without revealing the hidden rows.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ContactV2"}},"meta":{"type":"object","properties":{"total":{"type":"integer"},"facets":{"type":"object","additionalProperties":{"type":"array","items":{"$ref":"#/components/schemas/CollectionFacetEntry"}}},"eligibilityHiddenCount":{"type":"integer","minimum":0}},"required":["total"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"b3d0a51c-9e77-4c2a-8f14-0a6e3d9b2f57","name":"Fabrikam Custody Desk","wallet":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30","createdAt":"2026-02-18T11:47:03.000Z","updatedAt":"2026-02-18T11:47:03.000Z","imageUrl":"/api/v2/marks/accounts/11155111/0x2546bcd3c84621e976d8185a91a922ae77ecec30","imageProvenance":"generated"},{"id":"7f1c2b90-3f4a-4b6f-9a1e-5c8d0e2f6a41","name":"Northwind Coffee Treasury","wallet":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","createdAt":"2026-03-04T09:12:41.000Z","updatedAt":"2026-03-11T16:02:08.000Z","imageUrl":"/api/v2/marks/accounts/11155111/0x71c7656ec7ab88b098defb751b7401b5f6d8976f","imageProvenance":"generated"}],"meta":{"total":2},"links":{"self":"/v2/contacts?sort=createdAt&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/contacts?sort=createdAt&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/contacts?sort=createdAt&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of the contacts that belong to the authenticated user.\n\nPaging and ordering use the shared collection parameters. `page[limit]` defaults to 50 and accepts at most 200, `page[offset]` starts at 0, and `sort` falls back to `createdAt` ascending. Prefix the sort field with `-` for descending order. The sortable fields are `name`, `wallet`, `createdAt`, and `updatedAt`. Narrow the page with `filter[name]`, `filter[wallet]`, `filter[createdAt]`, and `filter[updatedAt]`, or search every searchable field at once with `filter[q]`.\n\nAdd `eligibleForToken[tokenAddress]` to keep only the contacts whose wallet already holds a registered identity for that token on the chain resolved for the request, and read `meta.eligibilityHiddenCount` for the number of contacts the filter removed. Set `eligibleForToken[reveal]` to `true` to receive the unfiltered page instead, in which case `meta.eligibilityHiddenCount` is omitted.","summary":"List contacts","x-dalp-auth":"session-or-api-key"},"post":{"tags":["Contacts"],"operationId":"party.contacts.upsert","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The stored contact as the platform now holds it. Reuse `data.id` for later updates, and read `data.updatedAt` for the time of the write that produced this response.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Contact"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"7f1c2b90-3f4a-4b6f-9a1e-5c8d0e2f6a41","name":"Northwind Coffee Treasury","wallet":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","createdAt":"2026-03-04T09:12:41.000Z","updatedAt":"2026-03-11T16:02:08.000Z"},"links":{"self":"/v2/contacts/7f1c2b90-3f4a-4b6f-9a1e-5c8d0e2f6a41"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Creates a contact when you omit `id`, and updates the one you name when you send an `id`. A wallet address may appear only once per user, so a wallet that another of your entries already holds returns 409. An `id` that does not resolve to one of your entries returns 404. The response carries the stored record, including the identifier the platform assigned to a new contact.","summary":"Create or update a contact","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactUpsert"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/contacts/{id}":{"get":{"tags":["Contacts"],"operationId":"party.contacts.read","parameters":[{"name":"id","in":"path","schema":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"required":true}],"responses":{"200":{"description":"The requested contact, with a `self` link to its canonical URL.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ContactV2"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"7f1c2b90-3f4a-4b6f-9a1e-5c8d0e2f6a41","name":"Northwind Coffee Treasury","wallet":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","createdAt":"2026-03-04T09:12:41.000Z","updatedAt":"2026-03-11T16:02:08.000Z","imageUrl":"/api/v2/marks/accounts/11155111/0x71c7656ec7ab88b098defb751b7401b5f6d8976f","imageProvenance":"generated"},"links":{"self":"/v2/contacts/7f1c2b90-3f4a-4b6f-9a1e-5c8d0e2f6a41"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the single contact named by the `id` path parameter, which is the UUID the platform assigned when it was stored. Entries are scoped to the authenticated user, so an identifier that belongs to another user returns 404 rather than 403.","summary":"Get a contact","x-dalp-auth":"session-or-api-key"},"delete":{"tags":["Contacts"],"operationId":"party.contacts.delete","parameters":[{"name":"id","in":"path","schema":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The contact is gone. `data` is null because no resource remains to return.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteResponse"},"examples":{"example-1":{"value":{"data":null}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Removes a contact from the authenticated user's address book and responds with a null `data` member. Pass the UUID the platform assigned to the contact as the `id` path parameter. Deleting a contact that no longer exists, or one that belongs to another user, returns 404.","summary":"Delete a contact","x-dalp-auth":"session-or-api-key"}},"/api/v2/users/me":{"get":{"tags":["Users"],"operationId":"party.users.me","parameters":[],"responses":{"200":{"description":"The authenticated user as the Console session sees them, with a `self` link to this resource.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/UserMe"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0193fa5c-9c31-7a4d-b0e2-3f6c9d1a7b45","name":"Amara Okafor","email":"amara.okafor@northwind.example","role":"member","firstName":"Amara","lastName":"Okafor","nationalId":"NL-8842-1177","country":"NL","dob":"1988-04-12","residencyStatus":"resident","createdAt":"2026-03-04T09:12:41.000Z","lastLoginAt":"2026-03-11T16:02:08.000Z","verificationTypes":["PINCODE"],"onboardingState":{"wallet":true,"walletSecurity":true,"walletRecoveryCodes":true,"system":true,"systemSettings":true,"systemAssets":true,"systemAddons":true,"identitySetup":true},"remainingRecoveryCodes":8,"hasRelevantAddons":true,"personalInfoCompleted":true,"isUserSecure":true,"systemAddress":"0x9F4C1a2B3D5e6f708192a3B4c5D6e7f8091A2B3c","baseCurrency":"EUR","onboardingCompletedAt":"2026-03-11T16:02:08.000Z","organizationName":"Northwind Coffee","imageUrl":"/api/v2/marks/users/0193fa5c-9c31-7a4d-b0e2-3f6c9d1a7b45","imageProvenance":"generated"},"links":{"self":"/v2/users/me"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the signed-in user together with onboarding state and wallet verification methods. Read the custody-account collection for ledger accounts. A session with no matching user record returns 404.","summary":"Read the authenticated user","x-dalp-auth":"session-or-api-key"}},"/api/v2/users/{userId}":{"get":{"tags":["Users"],"operationId":"party.users.read","parameters":[{"name":"userId","in":"path","schema":{"type":"string","minLength":1,"description":"Better Auth user identifier"},"required":true}],"responses":{"200":{"description":"The requested user, with a `self` link to this resource.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/UserListItem"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0193fa5c-9c31-7a4d-b0e2-3f6c9d1a7b45","name":"Amara Okafor","email":"amara.okafor@northwind.example","role":"member","firstName":"Amara","lastName":"Okafor","nationalId":"NL-8842-1177","country":"NL","residencyStatus":"resident","createdAt":"2026-03-04T09:12:41.000Z","lastLoginAt":"2026-03-11T16:02:08.000Z","participantId":"c0b8d4b0-3c5a-4b62-9a2e-2f0f6f4a5f10","roles":{"identityManager":true},"rolesPending":false,"isAdmin":false,"personalInfoCompleted":true,"imageUrl":"/api/v2/marks/users/0193fa5c-9c31-7a4d-b0e2-3f6c9d1a7b45","imageProvenance":"generated"},"links":{"self":"/v2/users/0193fa5c-9c31-7a4d-b0e2-3f6c9d1a7b45"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one user in the active organization by the UUID the platform assigned. An identifier that belongs to another organization returns 404 rather than 403. The caller needs a role that may read organization members.","summary":"Read a user by identifier","x-dalp-auth":"session-or-api-key"}},"/api/v2/users":{"get":{"tags":["Users"],"operationId":"party.users.list","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000},"createdAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"name":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"email":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"wallet":{"anyOf":[{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"transactionWallet":{"anyOf":[{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"signingWallet":{"anyOf":[{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"nationalId":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"country":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"dob":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"residencyStatus":{"anyOf":[{"type":"string","enum":["resident","non_resident","dual_resident","unknown"],"description":"Tax residency status"},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"registrationStatus":{"anyOf":[{"type":"string","enum":["pending","registered"],"description":"On-chain identity registration status"},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false},{"name":"fields","in":"query","schema":{"type":"object","properties":{"user":{"type":"string"}},"additionalProperties":false,"description":"Sparse fieldset for the user resource this response carries. Only named members are present, and a member this resource does not publish is refused.","examples":[{"user":"id,name,email,role,firstName,lastName,nationalId,country,residencyStatus,createdAt,lastLoginAt,participantId,rolesPending,isAdmin,personalInfoCompleted,imageUrl,imageProvenance,registrationStatus"}]},"required":false,"style":"deepObject","explode":true},{"name":"view","in":"query","schema":{"type":"string","enum":["summary"],"description":"Shorthand for the user members a list or a strip renders: id, name, email, role, firstName, lastName, nationalId, country, residencyStatus, createdAt, lastLoginAt, participantId, rolesPending, isAdmin, personalInfoCompleted, imageUrl, imageProvenance, registrationStatus. Send fields[user] to name a different set; that parameter wins when both are present.","examples":["summary"]},"required":false}],"responses":{"200":{"description":"One page of organization members. `meta.total` counts every member matching the query rather than the ones on this page, and `links` carries relative URLs for the surrounding pages with `prev` and `next` set to null at the ends of the collection. Send `view=summary` or `fields[user]` to answer each row without its access-control role booleans.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/UserListReadItem"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"0193fa5c-9c31-7a4d-b0e2-3f6c9d1a7b45","name":"Amara Okafor","email":"amara.okafor@northwind.example","role":"member","firstName":"Amara","lastName":"Okafor","nationalId":"NL-8842-1177","country":"NL","residencyStatus":"resident","createdAt":"2026-03-04T09:12:41.000Z","lastLoginAt":"2026-03-11T16:02:08.000Z","participantId":"c0b8d4b0-3c5a-4b62-9a2e-2f0f6f4a5f10","roles":{"identityManager":true},"rolesPending":false,"isAdmin":false,"personalInfoCompleted":true,"imageUrl":"/api/v2/marks/users/0193fa5c-9c31-7a4d-b0e2-3f6c9d1a7b45","imageProvenance":"generated","registrationStatus":"registered"}],"meta":{"total":1},"links":{"self":"/v2/users?sort=-createdAt&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/users?sort=-createdAt&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/users?sort=-createdAt&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of users that belong to the active organization. Paging and ordering use the shared collection parameters. `page[limit]` defaults to 50 and accepts at most 200, `page[offset]` starts at 0, and `sort` falls back to `createdAt` ascending. Prefix the sort field with `-` for descending order. Search every searchable field at once with `filter[q]`. The caller needs a role that may list organization members.","summary":"List users","x-dalp-auth":"session-or-api-key"},"post":{"tags":["Users"],"operationId":"party.users.create","parameters":[{"name":"Idempotency-Key","in":"header","schema":{"type":"string","description":"Caller-generated key that makes a repeated request resolve to the first attempt instead of starting a second one.","examples":["3f1c9a26-4c1e-4a53-9c6a-9c9d3e1b7a11"]},"required":false},{"name":"Prefer","in":"header","schema":{"type":"string","description":"RFC 7240 preference. Send `wait=N` (5 to 99 seconds) to wait for settlement, `respond-async` to take the 202 handle at once, or both to wait and then degrade to 202.","examples":["wait=30","respond-async, wait=30"]},"required":false}],"responses":{"200":{"description":"The created user and, when the call named a provider configuration, the personal participant the platform created for them.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/UserCreated"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0193fa5c-9c31-7a4d-b0e2-3f6c9d1a7b45","name":"Amara Okafor","email":"amara.okafor@northwind.example","participantId":"pp_0198f2f0-6d0b-7f86-8f24-c5e1ef9f9d12","activationStatus":"active","custodyAccountId":"0198f2f0-6d0b-7f86-8f24-c5e1ef9f9d11","identity":"0x8ba1f109551bD432803012645Ac136ddd64DBA72"},"links":{"self":"/v2/users/0193fa5c-9c31-7a4d-b0e2-3f6c9d1a7b45"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for a mutation whose managed custody account is still settling. The resource was created, but its custody account is not yet usable. Poll `statusUrl` until the lifecycle state is terminal. Do not retry the original POST.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartyCustodyLifecycleAccepted"},"examples":{"example-1":{"value":{"requestId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","state":"awaiting-aa-reconciliation","statusUrl":"/api/v2/participants/pp_0198f1a2-0000-7000-8000-000000000001/custody-account-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","party.user.IDENTITY_DEPLOY_FAILED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Creates a user in the active organization, provisions a managed custody account with the selected provider configuration, and deploys an identity contract. Identity registration is a separate step. A 200 means the custody account settled and is usable. When the managed custody account is still settling (for example awaiting account-abstraction reconciliation or an approval), the user is created but the response is 202 with the lifecycle `requestId`, its `state`, and a `statusUrl` to poll until the state is terminal. `email` must be unique in the organization. Send `walletVerification` when the calling wallet is protected by a code. An email another member already holds returns 409.","summary":"Create a user","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserCreateCommand"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/user-admins":{"get":{"tags":["Users"],"operationId":"party.users.adminList","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000},"name":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"email":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"wallet":{"anyOf":[{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"lastLoginAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"createdAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"roles":{"anyOf":[{"type":"string","enum":["addonManager","addonModule","addonRegistryModule","admin","assetDesigner","auditor","claimPolicyManager","claimIssuer","complianceManager","custodian","emergency","feedsManager","fundsManager","gasManager","governance","identityManager","identityRegistryModule","organisationIdentityManager","saleAdmin","supplyManagement","systemManager","systemModule","tokenFactoryModule","tokenFactoryRegistryModule","tokenManager","tradingVenueOperator","trustedIssuersMetaRegistryModule"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"One page of users whose wallets hold any role on the system's access manager in the active organization. Filter on `roles` to keep the users who hold, or lack, the named roles; `meta.facets.roles` counts the users holding each role. `meta.total` counts every matching user rather than the ones on this page.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/UserListMember"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"0193fa5c-9c31-7a4d-b0e2-3f6c9d1a7b45","name":"Amara Okafor","email":"amara.okafor@northwind.example","role":"member","firstName":"Amara","lastName":"Okafor","nationalId":"NL-8842-1177","country":"NL","residencyStatus":"resident","createdAt":"2026-03-04T09:12:41.000Z","lastLoginAt":"2026-03-11T16:02:08.000Z","participantId":"c0b8d4b0-3c5a-4b62-9a2e-2f0f6f4a5f10","roles":{"admin":true,"identityManager":true},"rolesPending":false,"isAdmin":true,"personalInfoCompleted":true,"imageUrl":"/api/v2/marks/users/0193fa5c-9c31-7a4d-b0e2-3f6c9d1a7b45","imageProvenance":"generated","registrationStatus":"registered"}],"meta":{"total":1},"links":{"self":"/v2/user-admins?sort=name&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/user-admins?sort=name&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/user-admins?sort=name&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of users whose scoped executors hold a system admin role in the active organization. The set is the intersection of on-chain admin holders and off-chain user records. Sort defaults to `name` ascending. The caller needs a role that may list organization members.","summary":"List organization administrators","x-dalp-auth":"session-or-api-key"}},"/api/v2/users/{userId}/security":{"get":{"tags":["Users"],"operationId":"party.users.adminGetSecurity","parameters":[{"name":"userId","in":"path","schema":{"type":"string","minLength":1,"description":"Better Auth user identifier"},"required":true}],"responses":{"200":{"description":"Security settings and live sessions for the requested user. Session tokens are omitted.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/UserSecurityView"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"twoFactorEnabled":true,"walletPincodeEnabled":true,"walletTwoFactorEnabled":false,"walletSecretCodesConfirmed":true,"sessions":[{"id":"0194a7d7-58e3-7f10-9c26-4b7d0e91a3f8","userId":"0193fa5c-9c31-7a4d-b0e2-3f6c9d1a7b45","ipAddress":"203.0.113.42","userAgent":"Mozilla/5.0","createdAt":"2026-03-11T09:12:41.000Z","updatedAt":"2026-03-11T16:02:08.000Z","expiresAt":"2026-03-18T09:12:41.000Z"}]},"links":{"self":"/v2/users/0193fa5c-9c31-7a4d-b0e2-3f6c9d1a7b45/security"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","USER_SECURITY_TARGET_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns whether the user has enabled two-factor authentication and wallet verification methods, together with the live sessions the platform currently holds. Session tokens are omitted. The caller needs a role that may administer that user.","summary":"Read a user's security settings","x-dalp-auth":"session-or-api-key"}},"/api/v2/users/{userId}/sessions":{"delete":{"tags":["Users"],"operationId":"party.users.adminRevokeAllSessions","parameters":[{"name":"userId","in":"path","schema":{"type":"string","minLength":1,"description":"Better Auth user identifier"},"required":true},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","description":"Caller-generated key that makes a repeated request resolve to the first attempt instead of starting a second one.","examples":["3f1c9a26-4c1e-4a53-9c6a-9c9d3e1b7a11"]},"required":false},{"name":"Prefer","in":"header","schema":{"type":"string","description":"RFC 7240 preference. Send `wait=N` (5 to 99 seconds) to wait for settlement, `respond-async` to take the 202 handle at once, or both to wait and then degrade to 202.","examples":["wait=30","respond-async, wait=30"]},"required":false}],"responses":{"200":{"description":"Confirmation that every live session for the user is no longer valid.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/AdminMutationResult"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"success":true},"links":{"self":"/v2/users/0193fa5c-9c31-7a4d-b0e2-3f6c9d1a7b45/sessions"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","USER_SECURITY_TARGET_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Ends every live session for the named user. The user must sign in again on every device. The caller needs a role that may administer that user.","summary":"Revoke every session for a user","x-dalp-auth":"session-or-api-key"}},"/api/v2/users/{userId}/multi-factor-authentication":{"delete":{"tags":["Users"],"operationId":"party.users.adminResetMfa","parameters":[{"name":"userId","in":"path","schema":{"type":"string","minLength":1,"description":"Better Auth user identifier"},"required":true},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","description":"Caller-generated key that makes a repeated request resolve to the first attempt instead of starting a second one.","examples":["3f1c9a26-4c1e-4a53-9c6a-9c9d3e1b7a11"]},"required":false},{"name":"Prefer","in":"header","schema":{"type":"string","description":"RFC 7240 preference. Send `wait=N` (5 to 99 seconds) to wait for settlement, `respond-async` to take the 202 handle at once, or both to wait and then degrade to 202.","examples":["wait=30","respond-async, wait=30"]},"required":false}],"responses":{"200":{"description":"Confirmation that the user's multi-factor authentication was cleared.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/AdminMutationResult"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"success":true},"links":{"self":"/v2/users/0193fa5c-9c31-7a4d-b0e2-3f6c9d1a7b45/multi-factor-authentication"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","USER_SECURITY_TARGET_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Clears the user's multi-factor authentication enrollment so the user can set it up again. It does not change the user's password or wallet verification methods. The caller needs a role that may administer that user.","summary":"Reset a user's multi-factor authentication","x-dalp-auth":"session-or-api-key"}},"/api/v2/users/{userId}/password-reset-requests":{"post":{"tags":["Users"],"operationId":"party.users.adminTriggerPasswordReset","parameters":[{"name":"userId","in":"path","schema":{"type":"string","minLength":1,"description":"Better Auth user identifier"},"required":true},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","description":"Caller-generated key that makes a repeated request resolve to the first attempt instead of starting a second one.","examples":["3f1c9a26-4c1e-4a53-9c6a-9c9d3e1b7a11"]},"required":false},{"name":"Prefer","in":"header","schema":{"type":"string","description":"RFC 7240 preference. Send `wait=N` (5 to 99 seconds) to wait for settlement, `respond-async` to take the 202 handle at once, or both to wait and then degrade to 202.","examples":["wait=30","respond-async, wait=30"]},"required":false}],"responses":{"200":{"description":"Confirmation that the platform sent a password reset to the user.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/AdminMutationResult"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"success":true},"links":{"self":"/v2/users/0193fa5c-9c31-7a4d-b0e2-3f6c9d1a7b45/password-reset-requests"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","USER_SECURITY_TARGET_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Sends a password-reset message to the named user. The platform stores no new password here. A user the caller cannot administer returns 404. Repeating the call sends another message.","summary":"Send a password reset","x-dalp-auth":"session-or-api-key"}},"/api/v2/users/me/events":{"get":{"tags":["Users"],"operationId":"party.users.events","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"blockTimestamp":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"eventName":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"blockNumber":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"string"}]},{"type":"object","properties":{"eq":{"anyOf":[{"type":"number"},{"type":"string"}]},"ne":{"anyOf":[{"type":"number"},{"type":"string"}]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"anyOf":[{"type":"number"},{"type":"string"}]},"gte":{"anyOf":[{"type":"number"},{"type":"string"}]},"lt":{"anyOf":[{"type":"number"},{"type":"string"}]},"lte":{"anyOf":[{"type":"number"},{"type":"string"}]},"between":{"type":"string","maxLength":64}},"additionalProperties":false}]},"projectionFamily":{"anyOf":[{"type":"string","enum":["holdings","transfers","allocations","allowances","compliance","identity"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"action":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"instrumentAdmin":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"instrumentId":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"fromParty":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"toParty":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"amount":{"anyOf":[{"type":"string","pattern":"^-?\\d+$","maxLength":80},{"type":"object","properties":{"eq":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"ne":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"gte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"between":{"type":"string","maxLength":161},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"ledgerOffset":{"anyOf":[{"type":"string","pattern":"^-?\\d+$","maxLength":80},{"type":"object","properties":{"eq":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"ne":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"gte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"between":{"type":"string","maxLength":161},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"recordTime":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"recordedAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"family":{"anyOf":[{"type":"string","enum":["evm","canton"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"network":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"One page of events involving the authenticated user's accounts. Rows are grouped by `family`, EVM first. `meta.total` counts matching events in both families, not only the ones on this page. `meta.facets` describes the EVM rows only. Events default to newest first by `recordedAt`.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/UserEventV2Item"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"family":"evm","id":"evt-northwind-transfer-1","eventName":"Transfer","txIndex":"0","blockNumber":"18429103","blockTimestamp":"2026-03-11T16:02:08.000Z","transactionHash":"0x5c73a1e94b0d268fa37e15c8b02d94f6a1e7835c0b96d2f4e83a17c5d602b9f4","emitter":{"id":"0x8ba1f109551bD432803012645Ac136ddd64DBA72"},"sender":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"},"metaTxSigner":null,"displaySender":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"},"relayerKind":null,"relayer":null,"userOpHash":null,"involved":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"},{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"}],"values":[{"id":"val-0","name":"from","value":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"},{"id":"val-1","name":"to","value":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"}]},{"family":"canton","id":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6c","networkIdentity":"canton-local","ledgerOffset":"10427","updateId":"1220aabbccddeeff00112233445566778899aabbccddeeff0011223344556677","nodeId":0,"projectionFamily":"holdings","action":"transfer","contractId":"00a1b2c3d4e5f60718293a4b5c6d7e8f90a1b2c3d4e5f60718293a4b5c6d7e8f90","instrumentAdmin":"Canton::1220abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123","instrumentId":"NWC","fromParty":"Canton::1220abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123","toParty":"Canton::1220fedcba9876543210fedcba9876543210fedcba9876543210fedcba987654","amount":"1000","recordTime":"2026-08-21T09:15:00.000Z"}],"meta":{"total":2},"links":{"self":"/v2/users/me/events?sort=-recordedAt&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/users/me/events?sort=-recordedAt&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/users/me/events?sort=-recordedAt&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of events involving any account of the authenticated user, on every ledger those accounts act on. Rows carry `family` and are grouped by it, EVM first. An `evm` row is one indexed contract event named by its block number, transaction hash, and log index; a `canton` row is one ledger event named by its offset, update id, and node index. Send `filter[family]`, `X-Chain-Id`, or `X-Network-Id` to read one family; send none for both. Newest first by `recordedAt`, the record time both ledgers have. `meta.facets` describes the EVM rows only. This operation reads from the Ledger Index and submits no transaction.","summary":"List the caller's ledger events","x-dalp-auth":"session-or-api-key"}},"/api/v2/system/wallets/{wallet}/identity":{"get":{"tags":["Identities and claims"],"operationId":"party.identities.readByWallet","parameters":[{"name":"wallet","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"name":"tokenAddress","in":"query","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":false}],"responses":{"200":{"description":"The indexed identity linked to the wallet, with its owning account, registration state, and non-revoked claims.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/IdentityReadDto"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","account":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","contractName":null},"isContract":false,"hasIdentity":true,"registered":{"isRegistered":true,"country":"BE"},"claims":[{"id":"0x8ba1f109551bd432803012645ac136ddd64dba72-0x9f2c1d7a4b83e6f05c1a9d2e7b4c60f38a51d9e2c7b4a6f18d3e0c5b7a92f4d61","name":"knowYourCustomer","signature":"0x3f81c4a9b27e0d6538f1a94c72b0e85d1c6a30f97b425e8d0139c6ba74e2f85d0b47a91e3c6d825f0a94b17c63e0d5289f4a1b76c30e9d5482b71fa0c96d3e841b","revoked":false,"issuer":{"id":"0x2F9c4Df9a0b6C1e8B3A7d5f2C04E6a1b8D3c7e59","account":{"id":"0x2F9c4Df9a0b6C1e8B3A7d5f2C04E6a1b8D3c7e59"}},"values":[],"isTrusted":true}]},"links":{"self":"/v2/system/wallets/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/identity"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the indexed identity contract linked to a wallet address, with its owning account, its registration state, and its non-revoked claims. `hasIdentity` reports whether the identity registry holds a registration record for the identity, and `registered` appears only once that record is active. Without `tokenAddress` the claim list holds only claims from issuers that the identity registry trusts. Supplying `tokenAddress` returns every non-revoked claim and marks a claim as trusted when the registry trusts its issuer or the issuer validates the named token.","summary":"Read the identity of a wallet","x-dalp-auth":"session-or-api-key"},"delete":{"tags":["Identities and claims"],"operationId":"party.identities.delete","parameters":[{"name":"wallet","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","description":"Caller-generated key that makes a repeated request resolve to the first attempt instead of starting a second one.","examples":["3f1c9a26-4c1e-4a53-9c6a-9c9d3e1b7a11"]},"required":false},{"name":"Prefer","in":"header","schema":{"type":"string","description":"RFC 7240 preference. Send `wait=N` (5 to 99 seconds) to wait for settlement, `respond-async` to take the 202 handle at once, or both to wait and then degrade to 202.","examples":["wait=30","respond-async, wait=30"]},"required":false}],"responses":{"200":{"description":"The wallet whose registry entry the platform removed, and the transaction that removed it, or an accepted acknowledgement carrying a status URL to poll when the request asks for asynchronous processing.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/IdentityDeleted"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"txHash":"0x5c73a1e94b0d268fa37e15c8b02d94f6a1e7835c0b96d2f4e83a17c5d602b9f4","wallet":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"},"meta":{"txHashes":["0x5c73a1e94b0d268fa37e15c8b02d94f6a1e7835c0b96d2f4e83a17c5d602b9f4"]},"links":{"self":"/v2/system/wallets/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/identity"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Removes the registry entry that links a wallet to its identity contract. The identity contract itself stays deployed and its claims stay intact. The caller needs the identity-manager role. When a second wallet holds a registry entry against the same identity, the platform removes that entry in its own transaction first.","summary":"Remove a wallet from the identity registry","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityDeleteCommand"}}},"required":false},"x-dalp-auth":"session-or-api-key"}},"/api/v2/system/identities/{identityAddress}":{"get":{"tags":["Identities and claims"],"operationId":"party.identities.readById","parameters":[{"name":"identityAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"name":"tokenAddress","in":"query","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":false}],"responses":{"200":{"description":"The indexed identity at the requested address, with its owning account, registration state, and non-revoked claims.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/IdentityReadDto"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","account":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","contractName":null},"isContract":false,"hasIdentity":true,"registered":{"isRegistered":true,"country":"BE"},"claims":[{"id":"0x8ba1f109551bd432803012645ac136ddd64dba72-0x9f2c1d7a4b83e6f05c1a9d2e7b4c60f38a51d9e2c7b4a6f18d3e0c5b7a92f4d61","name":"knowYourCustomer","signature":"0x3f81c4a9b27e0d6538f1a94c72b0e85d1c6a30f97b425e8d0139c6ba74e2f85d0b47a91e3c6d825f0a94b17c63e0d5289f4a1b76c30e9d5482b71fa0c96d3e841b","revoked":false,"issuer":{"id":"0x2F9c4Df9a0b6C1e8B3A7d5f2C04E6a1b8D3c7e59","account":{"id":"0x2F9c4Df9a0b6C1e8B3A7d5f2C04E6a1b8D3c7e59"}},"values":[],"isTrusted":true}]},"links":{"self":"/v2/system/identities/0x8ba1f109551bD432803012645Ac136ddd64DBA72"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the same identity projection as the wallet lookup, addressed by the identity contract address rather than by the wallet. Reach for this once you already hold the identity address, for example from a list page or from the read-back of a mutation. `tokenAddress` widens the claim list and the trust marking the same way it does on the wallet lookup.","summary":"Read an identity by contract address","x-dalp-auth":"session-or-api-key"}},"/api/v2/system/identities/me":{"get":{"tags":["Identities and claims"],"operationId":"party.identities.me","parameters":[],"responses":{"200":{"description":"The indexed identity of the authenticated caller, or NOT_PROVISIONED / NO_IDENTITY when its wallet has no identity contract.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/IdentityMeResult"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","account":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","contractName":null},"isContract":false,"hasIdentity":true,"registered":{"isRegistered":true,"country":"BE"},"claims":[{"id":"0x8ba1f109551bd432803012645ac136ddd64dba72-0x9f2c1d7a4b83e6f05c1a9d2e7b4c60f38a51d9e2c7b4a6f18d3e0c5b7a92f4d61","name":"knowYourCustomer","signature":"0x3f81c4a9b27e0d6538f1a94c72b0e85d1c6a30f97b425e8d0139c6ba74e2f85d0b47a91e3c6d825f0a94b17c63e0d5289f4a1b76c30e9d5482b71fa0c96d3e841b","revoked":false,"issuer":{"id":"0x2F9c4Df9a0b6C1e8B3A7d5f2C04E6a1b8D3c7e59","account":{"id":"0x2F9c4Df9a0b6C1e8B3A7d5f2C04E6a1b8D3c7e59"}},"values":[],"isTrusted":true}]},"links":{"self":"/v2/system/identities/me"}}},"example-2":{"value":{"data":{"status":"NOT_PROVISIONED","reason":"NO_IDENTITY"},"links":{"self":"/v2/system/identities/me"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the identity projection for the wallet of the authenticated session. When that wallet has no identity contract, returns data.status NOT_PROVISIONED and data.reason NO_IDENTITY with HTTP 200 so a caller can offer identity creation instead of treating the absence as an error. Use this when the caller acts on its own identity and does not already know which wallet address to look up.","summary":"Read the identity of the caller","x-dalp-auth":"session-or-api-key"}},"/api/v2/system/identity-searches":{"post":{"tags":["Identities and claims"],"operationId":"party.identities.search","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The matching identity without its claims, or `null` in `data` when no indexed identity matches the query.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"anyOf":[{"$ref":"#/components/schemas/IdentitySearchMatch"},{"type":"null"}]},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","account":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","contractName":null},"isContract":false,"hasIdentity":true,"registered":{"isRegistered":true,"country":"BE"}},"links":{"self":"/v2/system/identity-searches"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Looks up one identity by wallet address or by identity contract address and returns a reduced projection that omits claims. Send at least one of `wallet` and `address`. A wallet lookup also matches a wallet paired to the same identity. A query that matches nothing succeeds and returns `null` in `data` rather than failing.","summary":"Search for a single identity","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentitySelector"}}},"required":false},"x-dalp-auth":"session-or-api-key"}},"/api/v2/system/identities":{"get":{"tags":["Identities and claims"],"operationId":"party.identities.list","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000},"id":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"walletAddress":{"anyOf":[{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"name":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"kycStatus":{"anyOf":[{"type":"string","enum":["pending","registered"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"isContract":{"anyOf":[{"type":"string","enum":["true","false"]},{"type":"object","properties":{"eq":{"type":"string","enum":["true","false"]},"ne":{"type":"string","enum":["true","false"]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"A page of identities with their claim counts, pagination links, and facet counts for the filterable fields.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/IdentityV2ListItem"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","walletAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","name":null,"kycStatus":"registered","country":"BE","registrations":[{"walletAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","kycStatus":"registered","country":"BE","isLost":false}],"isContract":false,"claimsCount":4,"activeClaimsCount":3,"revokedClaimsCount":1,"untrustedClaimsCount":0,"deployedInTransaction":"0x5c73a1e94b0d268fa37e15c8b02d94f6a1e7835c0b96d2f4e83a17c5d602b9f4"}],"meta":{"total":1,"facets":{"kycStatus":[{"value":"registered","count":1}]}},"links":{"self":"/v2/system/identities?sort=id&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/system/identities?sort=id&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/system/identities?sort=id&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns a page of the identities indexed for the organization system, one row per identity however many wallets it is registered for. Each row carries the wallet, country, and KYC status of the registration that represents the identity, every registration in `registrations`, and its claim counts. Filter, sort, search, and paginate through the collection query parameters; a `walletAddress` filter or a search finds an identity by any wallet it is registered for. `kycStatus` reads `registered` for an active registration and `pending` for every other state.","summary":"List identities","x-dalp-auth":"session-or-api-key"}},"/api/v2/system/identity-registration-statuses":{"get":{"tags":["Identities and claims"],"operationId":"party.identities.registrationStatus","parameters":[{"name":"organizationId","in":"query","schema":{"type":"string","minLength":1,"description":"Tenant organization identifier"},"required":false},{"name":"wallet","in":"query","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":false}],"responses":{"200":{"description":"How far the wallet has progressed through identity registration, plus the identity and system addresses once they are known.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/IdentityRegistrationStatusOutput"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"status":"ACTIVE","identityAddress":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","systemAddress":"0x9F4C1a2B3D5e6f708192a3B4c5D6e7f8091A2B3c"},"links":{"self":"/v2/system/identity-registration-statuses"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Reports how far a wallet has progressed through identity registration, so an onboarding flow can branch on one value instead of combining several reads. `organizationId` defaults to the active organization of the authenticated session, and omitting `wallet` reports `NO_IDENTITY`.","summary":"Read the identity registration status of a wallet","x-dalp-auth":"session-or-api-key"}},"/api/v2/identities":{"post":{"tags":["Identities and claims"],"operationId":"party.identities.create","parameters":[{"name":"Idempotency-Key","in":"header","schema":{"type":"string","description":"Caller-generated key that makes a repeated request resolve to the first attempt instead of starting a second one.","examples":["3f1c9a26-4c1e-4a53-9c6a-9c9d3e1b7a11"]},"required":false},{"name":"Prefer","in":"header","schema":{"type":"string","description":"RFC 7240 preference. Send `wait=N` (5 to 99 seconds) to wait for settlement, `respond-async` to take the 202 handle at once, or both to wait and then degrade to 202.","examples":["wait=30","respond-async, wait=30"]},"required":false}],"responses":{"200":{"description":"The created identity once the deployment settles, or an accepted acknowledgement carrying a status URL to poll when the request asks for asynchronous processing.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/IdentityReadDto"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","account":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","contractName":null},"isContract":false,"hasIdentity":false,"claims":[]},"meta":{"txHashes":["0x5c73a1e94b0d268fa37e15c8b02d94f6a1e7835c0b96d2f4e83a17c5d602b9f4"]},"links":{"self":"/v2/identities"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","party.identity.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","party.identity.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Deploys an identity contract for a wallet and returns the indexed identity once the deployment settles. `wallet` defaults to the effective wallet of the caller. Creating an identity for a wallet the calling participant does not own additionally requires the identity-manager role. When that wallet's owner signs through a self custody wallet, the first request answers `409` with the typed data the wallet signs; send the request again with the signature in `externalMessageAuthorization`, and the platform relays the signed authorization from the caller's own signer. The request fails with a conflict when the wallet already has an identity contract.","summary":"Create an identity contract for a wallet","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityCreateCommand"}}},"required":false},"x-dalp-auth":"session-or-api-key"}},"/api/v2/system/identity-registrations":{"post":{"tags":["Identities and claims"],"operationId":"party.identities.register","parameters":[{"name":"Idempotency-Key","in":"header","schema":{"type":"string","description":"Caller-generated key that makes a repeated request resolve to the first attempt instead of starting a second one.","examples":["3f1c9a26-4c1e-4a53-9c6a-9c9d3e1b7a11"]},"required":false},{"name":"Prefer","in":"header","schema":{"type":"string","description":"RFC 7240 preference. Send `wait=N` (5 to 99 seconds) to wait for settlement, `respond-async` to take the 202 handle at once, or both to wait and then degrade to 202.","examples":["wait=30","respond-async, wait=30"]},"required":false}],"responses":{"200":{"description":"The identity with its registration once the transaction settles, or an accepted acknowledgement carrying a status URL to poll when the request asks for asynchronous processing.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/IdentityReadDto"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","account":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","contractName":null},"isContract":false,"hasIdentity":true,"registered":{"isRegistered":true,"country":"BE"},"claims":[{"id":"0x8ba1f109551bd432803012645ac136ddd64dba72-0x9f2c1d7a4b83e6f05c1a9d2e7b4c60f38a51d9e2c7b4a6f18d3e0c5b7a92f4d61","name":"knowYourCustomer","signature":"0x3f81c4a9b27e0d6538f1a94c72b0e85d1c6a30f97b425e8d0139c6ba74e2f85d0b47a91e3c6d825f0a94b17c63e0d5289f4a1b76c30e9d5482b71fa0c96d3e841b","revoked":false,"issuer":{"id":"0x2F9c4Df9a0b6C1e8B3A7d5f2C04E6a1b8D3c7e59","account":{"id":"0x2F9c4Df9a0b6C1e8B3A7d5f2C04E6a1b8D3c7e59"}},"values":[],"isTrusted":true}]},"meta":{"txHashes":["0x5c73a1e94b0d268fa37e15c8b02d94f6a1e7835c0b96d2f4e83a17c5d602b9f4"]},"links":{"self":"/v2/system/identity-registrations"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Registers a deployed identity contract in the identity registry under a country. The caller needs the identity-manager role, and `wallet` defaults to the effective wallet of the caller. When a second wallet shares the same unregistered identity, the platform registers both wallets in a single transaction. A wallet whose registration is already active is answered with the identity and no transaction, so a request repeated after the registration landed reports the same result rather than a conflict; when such a wallet still shares its identity with an unregistered second wallet, the platform registers that wallet instead.","summary":"Register an identity in the identity registry","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityRegisterCommand"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/system/pending-identity-registrations":{"post":{"tags":["Identities and claims"],"operationId":"party.identities.registerPending","parameters":[{"name":"Idempotency-Key","in":"header","schema":{"type":"string","description":"Caller-generated key that makes a repeated request resolve to the first attempt instead of starting a second one.","examples":["3f1c9a26-4c1e-4a53-9c6a-9c9d3e1b7a11"]},"required":false},{"name":"Prefer","in":"header","schema":{"type":"string","description":"RFC 7240 preference. Send `wait=N` (5 to 99 seconds) to wait for settlement, `respond-async` to take the 202 handle at once, or both to wait and then degrade to 202.","examples":["wait=30","respond-async, wait=30"]},"required":false}],"responses":{"200":{"description":"The identity with its new registration once the transaction settles, or an accepted acknowledgement carrying a status URL to poll when the request asks for asynchronous processing.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/IdentityReadDto"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","account":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","contractName":null},"isContract":false,"hasIdentity":true,"registered":{"isRegistered":true,"country":"BE"},"claims":[{"id":"0x8ba1f109551bd432803012645ac136ddd64dba72-0x9f2c1d7a4b83e6f05c1a9d2e7b4c60f38a51d9e2c7b4a6f18d3e0c5b7a92f4d61","name":"knowYourCustomer","signature":"0x3f81c4a9b27e0d6538f1a94c72b0e85d1c6a30f97b425e8d0139c6ba74e2f85d0b47a91e3c6d825f0a94b17c63e0d5289f4a1b76c30e9d5482b71fa0c96d3e841b","revoked":false,"issuer":{"id":"0x2F9c4Df9a0b6C1e8B3A7d5f2C04E6a1b8D3c7e59","account":{"id":"0x2F9c4Df9a0b6C1e8B3A7d5f2C04E6a1b8D3c7e59"}},"values":[],"isTrusted":true}]},"meta":{"txHashes":["0x5c73a1e94b0d268fa37e15c8b02d94f6a1e7835c0b96d2f4e83a17c5d602b9f4"]},"links":{"self":"/v2/system/pending-identity-registrations"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Registers an identity contract that is already deployed for a wallet but does not yet hold a registry entry. Unlike the identity-registry registration, the wallet owner may run this for their own wallet, and any other caller needs the identity-manager role. `organizationId` defaults to the active organization of the authenticated session and `wallet` defaults to the effective wallet of the caller.","summary":"Register a deployed identity that has no registry entry yet","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityRegisterPendingCommand"}}},"required":false},"x-dalp-auth":"session-or-api-key"}},"/api/v2/system/identity-countries":{"patch":{"tags":["Identities and claims"],"operationId":"party.identities.updateCountry","parameters":[{"name":"Idempotency-Key","in":"header","schema":{"type":"string","description":"Caller-generated key that makes a repeated request resolve to the first attempt instead of starting a second one.","examples":["3f1c9a26-4c1e-4a53-9c6a-9c9d3e1b7a11"]},"required":false},{"name":"Prefer","in":"header","schema":{"type":"string","description":"RFC 7240 preference. Send `wait=N` (5 to 99 seconds) to wait for settlement, `respond-async` to take the 202 handle at once, or both to wait and then degrade to 202.","examples":["wait=30","respond-async, wait=30"]},"required":false}],"responses":{"200":{"description":"The identity with its updated country once the transaction settles, or an accepted acknowledgement carrying a status URL to poll when the request asks for asynchronous processing.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/IdentityReadDto"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","account":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","contractName":null},"isContract":false,"hasIdentity":true,"registered":{"isRegistered":true,"country":"BE"},"claims":[{"id":"0x8ba1f109551bd432803012645ac136ddd64dba72-0x9f2c1d7a4b83e6f05c1a9d2e7b4c60f38a51d9e2c7b4a6f18d3e0c5b7a92f4d61","name":"knowYourCustomer","signature":"0x3f81c4a9b27e0d6538f1a94c72b0e85d1c6a30f97b425e8d0139c6ba74e2f85d0b47a91e3c6d825f0a94b17c63e0d5289f4a1b76c30e9d5482b71fa0c96d3e841b","revoked":false,"issuer":{"id":"0x2F9c4Df9a0b6C1e8B3A7d5f2C04E6a1b8D3c7e59","account":{"id":"0x2F9c4Df9a0b6C1e8B3A7d5f2C04E6a1b8D3c7e59"}},"values":[],"isTrusted":true}]},"meta":{"txHashes":["0x5c73a1e94b0d268fa37e15c8b02d94f6a1e7835c0b96d2f4e83a17c5d602b9f4"]},"links":{"self":"/v2/system/identity-countries"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Changes the country the identity registry records for a wallet. The caller needs the identity-manager role. When a second wallet holds a registry entry against the same identity, the platform updates that entry in its own transaction as well.","summary":"Update the country of a registered wallet","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityUpdateCountryCommand"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/system/identities/{identityAddress}/claim-events":{"get":{"tags":["Identities and claims"],"operationId":"party.claims.history","parameters":[{"name":"identityAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"name":"filter","in":"query","schema":{"type":"object","properties":{"eventName":{"anyOf":[{"type":"string","enum":["ClaimAdded","ClaimChanged","ClaimRemoved","ClaimRevoked"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"topic":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"claimId":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"issuerAddress":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"senderAddress":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"blockTimestamp":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"blockNumber":{"anyOf":[{"type":"string","pattern":"^-?\\d+$","maxLength":80},{"type":"object","properties":{"eq":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"ne":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"gte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"between":{"type":"string","maxLength":161},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"One page of claim events for the identity, newest first unless the request sorts otherwise, with pagination metadata for the page. Rows are grouped by `family`, EVM first: an `evm` row is a lifecycle event an identity contract emitted, a `canton` row a claim on the ledger's own registry. `meta.total` counts the rows the identity has in the family the path selected, and `meta.facets` describes the EVM rows only, because a Canton claim carries none of those columns. An identity that is registered but carries no matching events returns an empty page rather than an error.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ClaimsHistoryV2Item"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"family":"evm","id":"0x3f1a9c74b2e05d8613a7c94f2b6d0e58ac71f39b4d2e6081c5a93f7b0d248e6c-0","eventName":"ClaimAdded","topic":"26984799302505749158794800959285050858086405868089409909048783980951278841746","claimId":"0x8c4d21f6a9b3e07d5148c2fb96e3047a1d5b8e2c60f47931ab5c8d20e6f13a94","blockNumber":"21845311","blockTimestamp":"2026-01-15T10:30:00.000Z","transactionHash":"0x3f1a9c74b2e05d8613a7c94f2b6d0e58ac71f39b4d2e6081c5a93f7b0d248e6c","emitter":{"id":"0x71c7656ec7ab88b098defb751b7401b5f6d8976f"},"sender":{"id":"0x2546bcd3c84621e976d8185a91a922ae77ecec30"},"values":[{"id":"val-0","name":"topic","value":"26984799302505749158794800959285050858086405868089409909048783980951278841746"}]},{"family":"canton","networkIdentity":"canton-local","contractId":"00a1b2c3d4e5f60718293a4b5c6d7e8f90a1b2c3d4e5f60718293a4b5c6d7e8f90","kind":"claim","adminParty":"Registry::1220b7f0ab1f4c5d8e9a0b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e","issuerParty":"Issuer::1220fedcba9876543210fedcba9876543210fedcba9876543210fedcba987654","subjectParty":"Subject::122011223344556677889900aabbccddeeff11223344556677889900aabbccdd","topic":"26984799302505749158794800959285050858086405868089409909048783980951278841746","claimData":"0x7b226b7963223a747275657d","createdOffset":"10427","updateId":"1220aabbccddeeff00112233445566778899aabbccddeeff0011223344556677","recordTime":"2026-01-15T10:30:00.000Z"}],"meta":{"total":2},"links":{"self":"/v2/system/identities/0x8ba1f109551bD432803012645Ac136ddd64DBA72/claim-events?sort=-blockTimestamp&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/system/identities/0x8ba1f109551bD432803012645Ac136ddd64DBA72/claim-events?sort=-blockTimestamp&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/system/identities/0x8ba1f109551bD432803012645Ac136ddd64DBA72/claim-events?sort=-blockTimestamp&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Return the recorded claim events for one identity, in whichever chain family the path names it. An EVM address names an identity contract, whose `ClaimAdded`, `ClaimChanged`, `ClaimRemoved`, and `ClaimRevoked` events are listed; the identity must be registered in the identity registry of the system selected for the request, otherwise the Platform API returns 404. A Canton party id (`hint::fingerprint`) names the registry admin party whose ledger claims are listed, disclosed to the parties the calling organization holds on the selected network. Rows carry `family`, and one row is only one family's: an `evm` row is a contract event, a `canton` row a claim on the ledger's own registry. Results default to newest first and support offset pagination, sorting, and filtering on the EVM fields, the Canton fields, and the `family` and `network` axes; a filter whose column belongs to the family the request did not name, or a `filter[family]` that contradicts the path, is answered with 422. Facet counts describe the EVM rows only. This operation reads from the Ledger Index and submits no transaction.","summary":"List claim events for one identity, or the claims on one registry","x-dalp-auth":"session-or-api-key"}},"/api/v2/system/identity-claims":{"post":{"tags":["Identities and claims"],"operationId":"party.claims.issue","parameters":[{"name":"Idempotency-Key","in":"header","schema":{"type":"string","description":"Caller-generated key that makes a repeated request resolve to the first attempt instead of starting a second one.","examples":["3f1c9a26-4c1e-4a53-9c6a-9c9d3e1b7a11"]},"required":false},{"name":"Prefer","in":"header","schema":{"type":"string","description":"RFC 7240 preference. Send `wait=N` (5 to 99 seconds) to wait for settlement, `respond-async` to take the 202 handle at once, or both to wait and then degrade to 202.","examples":["wait=30","respond-async, wait=30"]},"required":false}],"responses":{"200":{"description":"The issued claim with the hash of the transaction that added it, or, on a Canton body, the settled operation the ledger accepted. When the request asked not to wait, the response instead carries the transaction id and a status URL to poll.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ClaimsIssueMutationResult"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"txHash":"0x3f1a9c74b2e05d8613a7c94f2b6d0e58ac71f39b4d2e6081c5a93f7b0d248e6c","success":true,"claimTopic":"knowYourCustomer","targetWallet":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"},"meta":{"txHashes":["0x3f1a9c74b2e05d8613a7c94f2b6d0e58ac71f39b4d2e6081c5a93f7b0d248e6c"]},"links":{"self":"/v2/system/identity-claims"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CANTON_TOKEN_OPERATION_REQUEST_INVALID","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_PARTY_WALLET_NOT_FOUND","CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CANTON_PARTY_WALLET_NOT_FOUND","status":404,"message":"The Canton party wallet was not found","data":{"id":"DALP-9311","why":"No Canton party wallet matches this party id in the active organization, so the platform returned no record.","fix":"Use a wallet id from the wallets list of the active organization.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_APPROVAL_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"CANTON_APPROVAL_EXPIRED","status":410,"message":"The Canton command's validity window closed","data":{"id":"DALP-9321","why":"The command's validity window closed while the intent waited for approval, so the platform never sent it to the ledger.","fix":"Submit the command again. The expired intent is terminal and its approval is not reopened.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_NETWORK_NOT_CONFIGURED","CANTON_NETWORK_NOT_ENABLED","CONTRACT_ERROR","CUSTODY_CANTON_SIGNING_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"CANTON_NETWORK_NOT_CONFIGURED","status":422,"message":"No Canton participant network is configured","data":{"id":"DALP-9313","why":"This deployment has no Canton participant network, so the platform cannot allocate a party or submit a DAML command.","fix":"Ask an operator to add a Canton network to the platform configuration, then retry.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_SUBMISSION_FAILED","INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"CANTON_SUBMISSION_FAILED","status":500,"message":"Canton command submission failed","data":{"id":"DALP-9318","why":"The platform accepted the command, then submission stopped before the ledger settled it.","fix":"Inspect the submission status, then retry with the same submission id when the failure is retryable.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Sign a claim and record it against the identity that receives it. The route serves both families and the body selects which one runs: a body without `cantonPartyId` is the EVM arm, which signs with the issuer wallet of the calling participant, and a body with `cantonPartyId` is the Canton arm, which submits the matching Daml choice as one of the organization's party wallets. On the EVM arm the topic must be registered in the topic scheme registry of the selected system, the effective wallet of the request must be listed as a trusted issuer for that topic, a `knowYourCustomer` claim value must equal the approved KYC content hash of the participant that owns the target identity, and an `assetClassification` claim must name a type that resolves to an asset class in the selected system. On the Canton arm the body names the issuer authorization the claim is issued under and the subject party, and the organization must hold the named party as a wallet. The EVM arm requires the `claimIssuer` blockchain role, and both arms verify the caller's wallet when the organization enforces it. The response follows the asynchronous blockchain mutation contract: it carries the claim, or the settled Canton operation, once the transaction is mined and indexed, or a status URL to poll when the request does not wait for the transaction.","summary":"Issue a claim to an identity","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]},"externalMessageAuthorization":{"$ref":"#/components/schemas/ExternalMessageAuthorization"},"targetIdentityAddress":{"$ref":"#/components/schemas/EvmAddress"},"claim":{"$ref":"#/components/schemas/ClaimData"},"cantonPartyId":{"not":{}}},"required":["targetIdentityAddress","claim"],"additionalProperties":false},{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"cantonPartyId":{"$ref":"#/components/schemas/CantonPartyId_12"},"authorizationContractId":{"type":"string","minLength":1,"description":"Contract id of the issuer authorization the claim is issued under, as returned by the claims list for the row with kind issuer."},"subjectParty":{"$ref":"#/components/schemas/CantonPartyId_13"},"claimData":{"type":"string","description":"Claim payload, in the topic's own signature.","examples":["verified"]},"expiry":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,6})?Z$","description":"Instant the claim expires. Omit for a claim that does not expire.","examples":["2026-09-01T00:00:00Z"]}},"required":["cantonPartyId","authorizationContractId","subjectParty","claimData"],"additionalProperties":false}],"description":"The body says which family signs the claim. Without `cantonPartyId` it is the EVM arm: `targetIdentityAddress` is the identity contract that receives the claim and `claim` is the attestation to sign. With `cantonPartyId` it is the Canton arm: the party the organization submits as, `authorizationContractId` of the issuer authorization the claim is issued under, `subjectParty`, the claim payload in the topic's own signature, and an optional `expiry`."}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/system/identity-claim-revocations":{"post":{"tags":["Identities and claims"],"operationId":"party.claims.revoke","parameters":[{"name":"Idempotency-Key","in":"header","schema":{"type":"string","description":"Caller-generated key that makes a repeated request resolve to the first attempt instead of starting a second one.","examples":["3f1c9a26-4c1e-4a53-9c6a-9c9d3e1b7a11"]},"required":false},{"name":"Prefer","in":"header","schema":{"type":"string","description":"RFC 7240 preference. Send `wait=N` (5 to 99 seconds) to wait for settlement, `respond-async` to take the 202 handle at once, or both to wait and then degrade to 202.","examples":["wait=30","respond-async, wait=30"]},"required":false}],"responses":{"200":{"description":"The id of the removed claim with the hash of the transaction that removed it, or, on a Canton body, the settled operation the ledger accepted. When the request asked not to wait, the response instead carries the transaction id and a status URL to poll.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ClaimsRevokeMutationResult"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"txHash":"0x3f1a9c74b2e05d8613a7c94f2b6d0e58ac71f39b4d2e6081c5a93f7b0d248e6c","success":true,"claimId":"0x8c4d21f6a9b3e07d5148c2fb96e3047a1d5b8e2c60f47931ab5c8d20e6f13a94"},"meta":{"txHashes":["0x3f1a9c74b2e05d8613a7c94f2b6d0e58ac71f39b4d2e6081c5a93f7b0d248e6c"]},"links":{"self":"/v2/system/identity-claim-revocations"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CANTON_TOKEN_OPERATION_REQUEST_INVALID","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_PARTY_WALLET_NOT_FOUND","CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CANTON_PARTY_WALLET_NOT_FOUND","status":404,"message":"The Canton party wallet was not found","data":{"id":"DALP-9311","why":"No Canton party wallet matches this party id in the active organization, so the platform returned no record.","fix":"Use a wallet id from the wallets list of the active organization.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_APPROVAL_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"CANTON_APPROVAL_EXPIRED","status":410,"message":"The Canton command's validity window closed","data":{"id":"DALP-9321","why":"The command's validity window closed while the intent waited for approval, so the platform never sent it to the ledger.","fix":"Submit the command again. The expired intent is terminal and its approval is not reopened.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_NETWORK_NOT_CONFIGURED","CANTON_NETWORK_NOT_ENABLED","CONTRACT_ERROR","CUSTODY_CANTON_SIGNING_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"CANTON_NETWORK_NOT_CONFIGURED","status":422,"message":"No Canton participant network is configured","data":{"id":"DALP-9313","why":"This deployment has no Canton participant network, so the platform cannot allocate a party or submit a DAML command.","fix":"Ask an operator to add a Canton network to the platform configuration, then retry.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_SUBMISSION_FAILED","INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"CANTON_SUBMISSION_FAILED","status":500,"message":"Canton command submission failed","data":{"id":"DALP-9318","why":"The platform accepted the command, then submission stopped before the ledger settled it.","fix":"Inspect the submission status, then retry with the same submission id when the failure is retryable.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Remove a claim from the identity that holds it. The route serves both families and the body selects which one runs: a body without `cantonPartyId` is the EVM arm, which removes the active claim for one topic, and a body with `cantonPartyId` is the Canton arm, which archives the named claim contract as one of the organization's party wallets. On the EVM arm the signing wallet of the request must hold a management key on that identity, the target must be registered in the identity registry of the selected system, and exactly one such claim must exist for the topic. The Platform API then returns 404 when the topic has no active claim, and 500 when it holds more than one, because the claim to remove is then ambiguous. The EVM arm requires an active organization and the `claimIssuer` blockchain role, and both arms verify the caller's wallet when the organization enforces it. The response follows the asynchronous blockchain mutation contract: it carries the removed claim id, or the settled Canton operation, once the transaction is mined and indexed, or a status URL to poll when the request does not wait for the transaction.","summary":"Revoke a claim from an identity","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]},"targetIdentityAddress":{"$ref":"#/components/schemas/EvmAddress"},"claimTopic":{"anyOf":[{"$ref":"#/components/schemas/ClaimTopic"},{"type":"string","minLength":1,"maxLength":100,"description":"Name of a custom claim topic, between 1 and 100 characters. The topic id is the keccak-256 hash of this name, so it must match the name registered in the topic scheme registry of the selected system exactly, including case.","examples":["customComplianceClaim"]}],"description":"Name of the topic to revoke. Exactly one active claim must exist for it on the target identity, because this name selects the claim to remove.","examples":["knowYourCustomer"]},"cantonPartyId":{"not":{}}},"required":["targetIdentityAddress","claimTopic"],"additionalProperties":false},{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"cantonPartyId":{"$ref":"#/components/schemas/CantonPartyId_14"},"claimContractId":{"type":"string","minLength":1,"description":"Contract id of the claim to revoke, as returned by the claims list for the row with kind claim."}},"required":["cantonPartyId","claimContractId"],"additionalProperties":false}],"description":"The body says which family removes the claim. Without `cantonPartyId` it is the EVM arm: `targetIdentityAddress` holds the claim and `claimTopic` names the topic whose active claim is removed. With `cantonPartyId` it is the Canton arm: the party the organization submits as and `claimContractId` of the claim to archive."}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/system/claim-topics":{"get":{"tags":["Identities and claims"],"operationId":"party.claimTopics.list","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000},"topicId":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"name":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"A page of claim topics resolved for the active system, with the total count, a `source` facet that splits topics owned by the system from inherited ones, and pagination links.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ClaimTopic_1"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"0x5F4e1b0E6A3c9D2f8B7a4c1e0D9F6a3b8c5E2D10307832383565","topicId":"10334","name":"collateral","signature":"(uint256 amount, uint256 expiryTimestamp)","registry":{"id":"0x5F4e1b0E6A3c9D2f8B7a4c1e0D9F6a3b8c5E2D10"},"isGlobal":false,"exclusionPolicy":"allow"},{"id":"0x8b3f2A7C1d0E9b4A6f5c8e2D7a1b4c9E0f3A6D2130783131306637","topicId":"69879","name":"knowYourCustomer","signature":"(uint256 claimIssuedAt)","registry":{"id":"0x8b3f2A7C1d0E9b4A6f5c8e2D7a1b4c9E0f3A6D21"},"isGlobal":true,"exclusionPolicy":"refuse"}],"meta":{"total":2,"facets":{"source":[{"value":"system","count":1},{"value":"global","count":1}]}},"links":{"self":"/v2/system/claim-topics?sort=topicId&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/system/claim-topics?sort=topicId&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/system/claim-topics?sort=topicId&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Return the claim topics the active system resolves, including ones it inherits from registries above it in its registry chain. Filter and search on `name` and `topicId`, sort by either field, and page through the collection with the `page` parameter. When the same topic id resolves more than once, the platform keeps a single entry and prefers the registry closest to the active system.","summary":"List claim topics","x-dalp-auth":"session-or-api-key"},"post":{"tags":["Identities and claims"],"operationId":"party.claimTopics.upsertSystem","parameters":[{"name":"Idempotency-Key","in":"header","schema":{"type":"string","description":"Caller-generated key that makes a repeated request resolve to the first attempt instead of starting a second one.","examples":["3f1c9a26-4c1e-4a53-9c6a-9c9d3e1b7a11"]},"required":false},{"name":"Prefer","in":"header","schema":{"type":"string","description":"RFC 7240 preference. Send `wait=N` (5 to 99 seconds) to wait for settlement, `respond-async` to take the 202 handle at once, or both to wait and then degrade to 202.","examples":["wait=30","respond-async, wait=30"]},"required":false}],"responses":{"200":{"description":"The platform accepted the mutation. When the request settles synchronously the body carries the stored result and the hash of the confirmed transaction. When the platform queues the work instead, the body carries a transaction id and a status URL to poll for the outcome.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/SystemClaimTopicCreateMutationResult"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"txHash":"0x9f2c1b4a7e0d38c5f6a2b1908e4d7c3a5b6f8e2d1c0a9b8f7e6d5c4b3a291807","name":"collateral"},"meta":{"txHashes":["0x9f2c1b4a7e0d38c5f6a2b1908e4d7c3a5b6f8e2d1c0a9b8f7e6d5c4b3a291807"]},"links":{"self":"/v2/system/claim-topics"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CANTON_TOKEN_OPERATION_REQUEST_INVALID","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_PARTY_WALLET_NOT_FOUND","CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CANTON_PARTY_WALLET_NOT_FOUND","status":404,"message":"The Canton party wallet was not found","data":{"id":"DALP-9311","why":"No Canton party wallet matches this party id in the active organization, so the platform returned no record.","fix":"Use a wallet id from the wallets list of the active organization.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CLAIM_TOPIC_ALREADY_EXISTS","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_APPROVAL_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"CANTON_APPROVAL_EXPIRED","status":410,"message":"The Canton command's validity window closed","data":{"id":"DALP-9321","why":"The command's validity window closed while the intent waited for approval, so the platform never sent it to the ledger.","fix":"Submit the command again. The expired intent is terminal and its approval is not reopened.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_NETWORK_NOT_CONFIGURED","CANTON_NETWORK_NOT_ENABLED","CONTRACT_ERROR","CUSTODY_CANTON_SIGNING_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"CANTON_NETWORK_NOT_CONFIGURED","status":422,"message":"No Canton participant network is configured","data":{"id":"DALP-9313","why":"This deployment has no Canton participant network, so the platform cannot allocate a party or submit a DAML command.","fix":"Ask an operator to add a Canton network to the platform configuration, then retry.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_SUBMISSION_FAILED","INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"CANTON_SUBMISSION_FAILED","status":500,"message":"Canton command submission failed","data":{"id":"DALP-9318","why":"The platform accepted the command, then submission stopped before the ledger settled it.","fix":"Inspect the submission status, then retry with the same submission id when the failure is retryable.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Add a name and claim-data type list to the topic scheme registry the active system owns. Send the topic name and the Solidity type list of its claim data without parentheses, and the platform wraps the list before it stores the topic. The caller needs the claim policy manager role, and supplies `walletVerification` when the signing wallet requires a verification challenge. The platform rejects a name that registry already holds. A body carrying `cantonPartyId` is a Canton write: it registers the topic scheme on the system's registry as that party wallet, and a finished operation returns 200 while an accepted one returns 202 with a status URL.","summary":"Register a claim topic","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]},"name":{"type":"string","minLength":1,"maxLength":100,"description":"Name to register for the claim topic, 1 to 100 characters. The name is unique within the active system's topic scheme registry, and the platform rejects a name that is already registered."},"signature":{"type":"string","minLength":1},"cantonPartyId":{"not":{}}},"required":["name","signature"],"additionalProperties":false},{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"cantonPartyId":{"$ref":"#/components/schemas/CantonPartyId_15"},"name":{"type":"string","minLength":1,"description":"Topic scheme name. It is the key a claim's topic resolves through.","examples":["knowYourCustomer"]},"signature":{"type":"string","description":"Signature the claim data for this topic must satisfy, as the ledger records it.","examples":["string claim"]}},"required":["cantonPartyId","name","signature"],"additionalProperties":false}],"description":"The claim topic to register: its `name` and the Solidity type list of its claim data. A body carrying `cantonPartyId` is a Canton write instead: it registers the topic scheme on the system's registry as that party."}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/system/claim-topics/{name}":{"put":{"tags":["Identities and claims"],"operationId":"party.claimTopics.updateSystem","parameters":[{"name":"name","in":"path","schema":{"type":"string","minLength":1},"required":true},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","description":"Caller-generated key that makes a repeated request resolve to the first attempt instead of starting a second one.","examples":["3f1c9a26-4c1e-4a53-9c6a-9c9d3e1b7a11"]},"required":false},{"name":"Prefer","in":"header","schema":{"type":"string","description":"RFC 7240 preference. Send `wait=N` (5 to 99 seconds) to wait for settlement, `respond-async` to take the 202 handle at once, or both to wait and then degrade to 202.","examples":["wait=30","respond-async, wait=30"]},"required":false}],"responses":{"200":{"description":"The platform accepted the mutation. When the request settles synchronously the body carries the stored result and the hash of the confirmed transaction. When the platform queues the work instead, the body carries a transaction id and a status URL to poll for the outcome.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/SystemClaimTopicUpdateMutationResult"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"txHash":"0x9f2c1b4a7e0d38c5f6a2b1908e4d7c3a5b6f8e2d1c0a9b8f7e6d5c4b3a291807","name":"collateral","newSignature":"(uint256 amount, uint256 expiryTimestamp, address attestor)"},"meta":{"txHashes":["0x9f2c1b4a7e0d38c5f6a2b1908e4d7c3a5b6f8e2d1c0a9b8f7e6d5c4b3a291807"]},"links":{"self":"/v2/system/claim-topics/collateral"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CANTON_TOKEN_OPERATION_REQUEST_INVALID","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_PARTY_WALLET_NOT_FOUND","CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CANTON_PARTY_WALLET_NOT_FOUND","status":404,"message":"The Canton party wallet was not found","data":{"id":"DALP-9311","why":"No Canton party wallet matches this party id in the active organization, so the platform returned no record.","fix":"Use a wallet id from the wallets list of the active organization.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_APPROVAL_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"CANTON_APPROVAL_EXPIRED","status":410,"message":"The Canton command's validity window closed","data":{"id":"DALP-9321","why":"The command's validity window closed while the intent waited for approval, so the platform never sent it to the ledger.","fix":"Submit the command again. The expired intent is terminal and its approval is not reopened.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_NETWORK_NOT_CONFIGURED","CANTON_NETWORK_NOT_ENABLED","CONTRACT_ERROR","CUSTODY_CANTON_SIGNING_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"CANTON_NETWORK_NOT_CONFIGURED","status":422,"message":"No Canton participant network is configured","data":{"id":"DALP-9313","why":"This deployment has no Canton participant network, so the platform cannot allocate a party or submit a DAML command.","fix":"Ask an operator to add a Canton network to the platform configuration, then retry.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_SUBMISSION_FAILED","INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"CANTON_SUBMISSION_FAILED","status":500,"message":"Canton command submission failed","data":{"id":"DALP-9318","why":"The platform accepted the command, then submission stopped before the ledger settled it.","fix":"Inspect the submission status, then retry with the same submission id when the failure is retryable.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Replace the Solidity type list stored for a claim topic in the topic scheme registry the active system owns. The topic keeps its name and its on-chain topic id, and only the signature changes. The caller needs the claim policy manager role, and supplies `walletVerification` when the signing wallet requires a verification challenge. The platform rejects a name that registry does not hold. A body carrying `cantonPartyId` is a Canton write: it restates the registered topic scheme as that party wallet, and the path names the topic it restates.","summary":"Replace a claim topic signature","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]},"signature":{"type":"string","minLength":1},"cantonPartyId":{"not":{}}},"required":["signature"],"additionalProperties":false},{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"cantonPartyId":{"$ref":"#/components/schemas/CantonPartyId_15"},"signature":{"type":"string","description":"Signature the claim data for this topic must satisfy, as the ledger records it.","examples":["string claim"]}},"required":["cantonPartyId","signature"],"additionalProperties":false}],"description":"The Solidity type list that replaces the one stored for the topic the path names. A body carrying `cantonPartyId` is a Canton write instead: it restates the registered topic scheme as that party."}}},"required":true},"x-dalp-auth":"session-or-api-key"},"delete":{"tags":["Identities and claims"],"operationId":"party.claimTopics.deleteSystem","parameters":[{"name":"name","in":"path","schema":{"type":"string","minLength":1},"required":true},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","description":"Caller-generated key that makes a repeated request resolve to the first attempt instead of starting a second one.","examples":["3f1c9a26-4c1e-4a53-9c6a-9c9d3e1b7a11"]},"required":false},{"name":"Prefer","in":"header","schema":{"type":"string","description":"RFC 7240 preference. Send `wait=N` (5 to 99 seconds) to wait for settlement, `respond-async` to take the 202 handle at once, or both to wait and then degrade to 202.","examples":["wait=30","respond-async, wait=30"]},"required":false}],"responses":{"200":{"description":"The platform accepted the mutation. When the request settles synchronously the body carries the stored result and the hash of the confirmed transaction. When the platform queues the work instead, the body carries a transaction id and a status URL to poll for the outcome.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/SystemClaimTopicDeleteMutationResult"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"txHash":"0x9f2c1b4a7e0d38c5f6a2b1908e4d7c3a5b6f8e2d1c0a9b8f7e6d5c4b3a291807","name":"collateral"},"meta":{"txHashes":["0x9f2c1b4a7e0d38c5f6a2b1908e4d7c3a5b6f8e2d1c0a9b8f7e6d5c4b3a291807"]},"links":{"self":"/v2/system/claim-topics/collateral"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CANTON_TOKEN_OPERATION_REQUEST_INVALID","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_PARTY_WALLET_NOT_FOUND","CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CANTON_PARTY_WALLET_NOT_FOUND","status":404,"message":"The Canton party wallet was not found","data":{"id":"DALP-9311","why":"No Canton party wallet matches this party id in the active organization, so the platform returned no record.","fix":"Use a wallet id from the wallets list of the active organization.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_APPROVAL_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"CANTON_APPROVAL_EXPIRED","status":410,"message":"The Canton command's validity window closed","data":{"id":"DALP-9321","why":"The command's validity window closed while the intent waited for approval, so the platform never sent it to the ledger.","fix":"Submit the command again. The expired intent is terminal and its approval is not reopened.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_NETWORK_NOT_CONFIGURED","CANTON_NETWORK_NOT_ENABLED","CONTRACT_ERROR","CUSTODY_CANTON_SIGNING_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"CANTON_NETWORK_NOT_CONFIGURED","status":422,"message":"No Canton participant network is configured","data":{"id":"DALP-9313","why":"This deployment has no Canton participant network, so the platform cannot allocate a party or submit a DAML command.","fix":"Ask an operator to add a Canton network to the platform configuration, then retry.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_SUBMISSION_FAILED","INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"CANTON_SUBMISSION_FAILED","status":500,"message":"Canton command submission failed","data":{"id":"DALP-9318","why":"The platform accepted the command, then submission stopped before the ledger settled it.","fix":"Inspect the submission status, then retry with the same submission id when the failure is retryable.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Drop a name from the topic scheme registry the active system owns. The caller needs the claim policy manager role, and supplies `walletVerification` when the signing wallet requires a verification challenge. The platform rejects a name that registry does not hold. Topics the system inherits from another registry stay in place, because this route only changes the registry the active system owns. A body carrying `cantonPartyId` is a Canton write: it retires the registered topic scheme as that party wallet, and the path names the topic it retires.","summary":"Remove a claim topic","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]},"cantonPartyId":{"not":{}}},"additionalProperties":false},{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"cantonPartyId":{"$ref":"#/components/schemas/CantonPartyId_15"}},"required":["cantonPartyId"],"additionalProperties":false}],"description":"Removal carries no field but the wallet verification. A body carrying `cantonPartyId` is a Canton write instead: it retires the registered topic scheme as that party."}}},"required":false},"x-dalp-auth":"session-or-api-key"},"get":{"tags":["Identities and claims"],"operationId":"party.claimTopicRead.read","parameters":[{"name":"name","in":"path","schema":{"type":"string","minLength":1},"required":true}],"responses":{"200":{"description":"The requested claim topic, the issuers that can attest it today, and a link back to the topic.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ClaimTopicRead"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x5F4e1b0E6A3c9D2f8B7a4c1e0D9F6a3b8c5E2D10307832383565","name":"collateral","signature":"(uint256 amount, uint256 expiryTimestamp)","topicId":"10334","trustedIssuers":[{"id":"0x2F9c4Df9a0b6C1e8B3A7d5f2C04E6a1b8D3c7e59","addedAt":"2026-03-14T09:21:00.000Z","revokedAt":"1970-01-01T00:00:00.000Z"}],"exclusionPolicy":"allow"},"links":{"self":"/v2/system/claim-topics/collateral"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Return one claim topic by name, together with the issuers currently trusted to attest it. The lookup spans the registry chain resolved for the active system and returns the match closest to that system. Topics that are no longer enabled do not resolve.","summary":"Read a claim topic","x-dalp-auth":"session-or-api-key"}},"/api/v2/directory/topic-schemes":{"get":{"tags":["Identities and claims"],"operationId":"party.topicSchemes.list","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000},"topicId":{"anyOf":[{"type":"string","pattern":"^-?\\d+$","maxLength":80},{"type":"object","properties":{"eq":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"ne":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"gte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"between":{"type":"string","maxLength":161},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"name":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"signature":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"A page of the enabled topic schemes, the number of entries the query matches in total, and the links that walk the remaining pages.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/DirectoryTopicScheme"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"0x9d4454b023096f34b160d6b654540c56a1f81688#66602700950116947137359654609674923607788815289970476259958745144319039408766","topicId":"66602700950116947137359654609674923607788815289970476259958745144319039408766","name":"antiMoneyLaundering","signature":"string claim","registry":{"id":"0x9d4454b023096f34b160d6b654540c56a1f81688"},"isShadowed":false,"inheritedBySystemsCount":12},{"id":"0x9d4454b023096f34b160d6b654540c56a1f81688#26984799302505749158794800959285050858086405868089409909048783980951278841746","topicId":"26984799302505749158794800959285050858086405868089409909048783980951278841746","name":"knowYourCustomer","signature":"string claim","registry":{"id":"0x9d4454b023096f34b160d6b654540c56a1f81688"},"isShadowed":false,"inheritedBySystemsCount":12}],"meta":{"total":2,"facets":{}},"links":{"self":"/v2/directory/topic-schemes?sort=name&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/directory/topic-schemes?sort=name&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/directory/topic-schemes?sort=name&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the claim topics the global topic scheme registry has enabled on the selected network. The response leaves out a topic the registry has disabled, so an entry drops out of this collection once the registry disables it. Sort by `name` or `topicId`, filter on `topicId`, `name`, or `signature`, and match `name` and `signature` together through `filter[q]`. Entries come back ordered by `name` ascending unless the request sends `sort`. `meta.facets` always holds an empty object for this collection. Send `X-Chain-Id` with the decimal chain identifier of the network you want to read; without it the platform reads the network it runs on.","summary":"List the published claim topics","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/topic-schemes":{"post":{"tags":["Identities and claims"],"operationId":"party.topicSchemes.addForToken","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","description":"Caller-generated key that makes a repeated request resolve to the first attempt instead of starting a second one.","examples":["3f1c9a26-4c1e-4a53-9c6a-9c9d3e1b7a11"]},"required":false},{"name":"Prefer","in":"header","schema":{"type":"string","description":"RFC 7240 preference. Send `wait=N` (5 to 99 seconds) to wait for settlement, `respond-async` to take the 202 handle at once, or both to wait and then degrade to 202.","examples":["wait=30","respond-async, wait=30"]},"required":false}],"responses":{"200":{"description":"The platform accepts the registration, and the settled response echoes the registered name. By default the platform queues the transaction and answers with the transaction identifier, its current state, and the status URL to poll, under status `202`. A caller that sends `Prefer: wait=<seconds>` waits for settlement instead and receives the transaction hashes that carried the change and a link back to the token's topic schemes.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TopicSchemeMutated"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"txHash":"0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24","name":"Accredited Investor Status"},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"]},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/topic-schemes"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The path segment is not a token contract address and the request sent no `instrumentAdmin`, so it names neither an EVM token nor a Canton instrument. Send an address, or send the instrument id together with `instrumentAdmin`. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REF_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REF_INVALID","status":400,"message":"Token reference is incomplete","data":{"id":"DALP-0707","why":"The asset reference cannot identify a token in its stated family.","fix":"Send an EVM contract address, or a Canton instrument id together with its instrument admin.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Adds an entry to the token's own Topic Scheme Registry, so the platform can issue and verify claims of that topic for this token. Send `signature` as a comma-separated list of ABI types without parentheses; the platform stores it in parenthesised form and rejects a list that holds anything other than valid ABI types. Registering a name the token already holds returns `409`, and a token without a registry of its own returns `404`.","summary":"Register a topic scheme on a token","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TopicSchemeCommand"}}},"required":true},"x-dalp-auth":"session-or-api-key"},"get":{"tags":["Identities and claims"],"operationId":"party.tokenRegistries.listTopicSchemes","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000},"topicId":{"anyOf":[{"type":"string","pattern":"^-?\\d+$","maxLength":80},{"type":"object","properties":{"eq":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"ne":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"gte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"between":{"type":"string","maxLength":161},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"name":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"signature":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"source":{"anyOf":[{"type":"string","enum":["token","system","global"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"The topic schemes that resolve for the token. `data` holds one row per scheme, `meta.total` counts the rows the filters match, `meta.facets.source` counts them per tier of the chain of trust, and `meta.hasTokenRegistry` reports whether the token has a registry of its own.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/TokenTopicScheme"}},"meta":{"type":"object","properties":{"total":{"type":"integer"},"facets":{"type":"object","additionalProperties":{"type":"array","items":{"$ref":"#/components/schemas/CollectionFacetEntry"}}},"hasTokenRegistry":{"type":"boolean","description":"True when the token has a topic-scheme registry of its own. When false, the token resolves only the schemes it inherits, and no route can add a scheme to it or remove one from it."}},"required":["total","hasTokenRegistry"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0#42","topicId":"42","name":"Accredited Investor Status","signature":"(address,uint256)","registry":{"id":"0x9fe46736679d2d9a65f0992f2272de9f3c7fa6e0"},"inheritanceLevel":"token","isShadowed":false},{"id":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9#1","topicId":"1","name":"Know Your Customer","signature":"(string)","registry":{"id":"0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9"},"inheritanceLevel":"system","isShadowed":false}],"meta":{"total":2,"facets":{"source":[{"value":"token","count":1},{"value":"system","count":1}]},"hasTokenRegistry":true},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/topic-schemes?page=1&pageSize=20","first":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/topic-schemes?page=1&pageSize=20","prev":null,"next":null,"last":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/topic-schemes?page=1&pageSize=20"}}}}}}},"400":{"description":"This response has one of these causes:\n\n- The path segment is not a token contract address and the request sent no `instrumentAdmin`, so it names neither an EVM token nor a Canton instrument. Send an address, or send the instrument id together with `instrumentAdmin`.\n- A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REF_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REF_INVALID","status":400,"message":"Token reference is incomplete","data":{"id":"DALP-0707","why":"The asset reference cannot identify a token in its stated family.","fix":"Send an EVM contract address, or a Canton instrument id together with its instrument admin.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Each row names a scheme the token's chain of trust resolves, plus the tier that registered it. `inheritanceLevel` reads `token` for a row in the token's own registry, which the delete route can remove; the token inherits `system` and `global` rows read-only. `isShadowed` marks a row whose topic id also appears elsewhere in the chain under a different claim-data signature. Narrow the result to one tier with `filter[source]`, and read `meta.hasTokenRegistry` to learn whether the token has a registry of its own; without one, only inherited rows resolve and no route can add or remove a scheme.","summary":"List the topic schemes a token resolves","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/topic-schemes/{topicId}":{"delete":{"tags":["Identities and claims"],"operationId":"party.topicSchemes.removeForToken","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"topicId","in":"path","schema":{"type":"string","minLength":1,"pattern":"^\\d+$","description":"Decimal topic identifier, the `uint256` keccak-256 hash of the topic name registered in the topic scheme registry of the active system. Digits only, with no `0x` prefix and no leading sign.","examples":["26984799302505749158794800959285050858086405868089409909048783980951278841746"]},"required":true},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","description":"Caller-generated key that makes a repeated request resolve to the first attempt instead of starting a second one.","examples":["3f1c9a26-4c1e-4a53-9c6a-9c9d3e1b7a11"]},"required":false},{"name":"Prefer","in":"header","schema":{"type":"string","description":"RFC 7240 preference. Send `wait=N` (5 to 99 seconds) to wait for settlement, `respond-async` to take the 202 handle at once, or both to wait and then degrade to 202.","examples":["wait=30","respond-async, wait=30"]},"required":false}],"responses":{"200":{"description":"The platform accepts the removal, and the settled response echoes the removed topic id. By default the platform queues the transaction and answers with the transaction identifier, its current state, and the status URL to poll, under status `202`. A caller that sends `Prefer: wait=<seconds>` waits for settlement instead and receives the transaction hashes that carried the change and a link back to the token's topic schemes.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TopicSchemeRemoved"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"txHash":"0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24","topicId":"42"},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"]},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/topic-schemes"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The path segment is not a token contract address and the request sent no `instrumentAdmin`, so it names neither an EVM token nor a Canton instrument. Send an address, or send the instrument id together with `instrumentAdmin`. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REF_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REF_INVALID","status":400,"message":"Token reference is incomplete","data":{"id":"DALP-0707","why":"The asset reference cannot identify a token in its stated family.","fix":"Send an EVM contract address, or a Canton instrument id together with its instrument admin.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Drops the entry at the `topicId` path parameter from the token's own Topic Scheme Registry. The route reaches only a scheme the token registered itself: a topic id the token inherits from its system or from the global registry returns `404` and keeps resolving for the token. A token without a registry of its own returns `404`.","summary":"Remove a topic scheme from a token","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TopicSchemeRemoval"}}},"required":false},"x-dalp-auth":"session-or-api-key"}},"/api/v2/directory/trusted-issuers":{"get":{"tags":["Identities and claims"],"operationId":"party.trustedIssuers.list","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000},"id":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"A page of the trusted issuers the global registry publishes, the number of entries the query matches in total, and the links that walk the remaining pages.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/DirectoryTrustedIssuer"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"0x8ba1f109551bd432803012645ac136ddd64dba72","account":{"id":"0x70997970c51812dc3a010c7d01b50e0d17dc79c8"},"claimTopics":[{"id":"0x9d4454b023096f34b160d6b654540c56a1f81688#26984799302505749158794800959285050858086405868089409909048783980951278841746","topicId":"26984799302505749158794800959285050858086405868089409909048783980951278841746","name":"knowYourCustomer","signature":"string claim"},{"id":"0x9d4454b023096f34b160d6b654540c56a1f81688#66602700950116947137359654609674923607788815289970476259958745144319039408766","topicId":"66602700950116947137359654609674923607788815289970476259958745144319039408766","name":"antiMoneyLaundering","signature":"string claim"}],"deployedInTransaction":"0x4f3d1a8c0b6e29d5741ac0f8b2e7d6390c5148aa9be3f207d4c8615ae0937b2c","inheritedBySystemsCount":12}],"meta":{"total":1,"facets":{}},"links":{"self":"/v2/directory/trusted-issuers?sort=id&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/directory/trusted-issuers?sort=id&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/directory/trusted-issuers?sort=id&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the trusted issuers the global trusted issuers registry publishes on the selected network. Each row pairs an issuer identity with the claim topics it may attest to. Sort by `id`, filter on `id`, and page through the collection with the shared `page` parameter. Entries come back ordered by `id` ascending unless the request sends `sort`. `meta.facets` always holds an empty object for this collection. Send `X-Chain-Id` with the decimal chain identifier of the network you want to read; without it the platform reads the network it runs on.","summary":"List published trusted issuers","x-dalp-auth":"session-or-api-key"}},"/api/v2/system/trusted-issuers":{"get":{"tags":["Identities and claims"],"operationId":"party.trustedIssuers.listSystem","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000},"id":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"A page of trusted issuers. `meta.total` counts every issuer the active system accepts claims from across the registry chain, not just the issuers on this page.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/SystemTrustedIssuer"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","account":{"id":"0x70997970C51812dc3A010C7d01b50e0d17dc79C8"},"claimTopics":[{"id":"0x5FbDB2315678afecb367f032d93F642f64180aa3307833626138646165623761616364336330646439333431373536383836653463373734636639663136353463656564363336383834336531323431383565663932","topicId":"26984799302505749158794800959285050858086405868089409909048783980951278841746","name":"knowYourCustomer","signature":"string claim"}],"deployedInTransaction":"0x1c9a5f80d3b47e6218ca03f95d7be41086c2d97fa5301be8c47d0f2635a9184b","isGlobal":false}],"meta":{"total":1,"facets":{}},"links":{"self":"/v2/system/trusted-issuers?sort=id&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/system/trusted-issuers?sort=id&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/system/trusted-issuers?sort=id&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns every trusted issuer the active system accepts claims from, including entries inherited through the registry chain. The platform walks the chain from the registry of the active system through its parents, deduplicates by issuer address keeping the entry nearest the active system, sorts by address, and marks an inherited entry with `isGlobal`. Filtering and paging apply after the merge, so a page reflects the merged set rather than one registry.","summary":"List trusted issuers","x-dalp-auth":"session-or-api-key"},"post":{"tags":["Identities and claims"],"operationId":"party.trustedIssuers.createSystem","parameters":[{"name":"Idempotency-Key","in":"header","schema":{"type":"string","description":"Caller-generated key that makes a repeated request resolve to the first attempt instead of starting a second one.","examples":["3f1c9a26-4c1e-4a53-9c6a-9c9d3e1b7a11"]},"required":false},{"name":"Prefer","in":"header","schema":{"type":"string","description":"RFC 7240 preference. Send `wait=N` (5 to 99 seconds) to wait for settlement, `respond-async` to take the 202 handle at once, or both to wait and then degrade to 202.","examples":["wait=30","respond-async, wait=30"]},"required":false}],"responses":{"200":{"description":"The registration is accepted. The body carries the transaction hash and the issuer address once the registry transaction settles. When you ask for asynchronous processing, the body carries a transaction identifier, the current transaction state, and a status URL to poll, and the status code is 202 instead of 200.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/SystemTrustedIssuerCreateMutationResult"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"txHash":"0x4f3d1a8c0b6e29d5741ac0f8b2e7d6390c5148aa9be3f207d4c8615ae0937b2c","issuerAddress":"0x8ba1f109551bD432803012645Ac136ddd64DBA72"},"meta":{"txHashes":["0x4f3d1a8c0b6e29d5741ac0f8b2e7d6390c5148aa9be3f207d4c8615ae0937b2c"]},"links":{"self":"/v2/system/trusted-issuers"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CANTON_TOKEN_OPERATION_REQUEST_INVALID","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_PARTY_WALLET_NOT_FOUND","CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CANTON_PARTY_WALLET_NOT_FOUND","status":404,"message":"The Canton party wallet was not found","data":{"id":"DALP-9311","why":"No Canton party wallet matches this party id in the active organization, so the platform returned no record.","fix":"Use a wallet id from the wallets list of the active organization.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_APPROVAL_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"CANTON_APPROVAL_EXPIRED","status":410,"message":"The Canton command's validity window closed","data":{"id":"DALP-9321","why":"The command's validity window closed while the intent waited for approval, so the platform never sent it to the ledger.","fix":"Submit the command again. The expired intent is terminal and its approval is not reopened.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_NETWORK_NOT_CONFIGURED","CANTON_NETWORK_NOT_ENABLED","CONTRACT_ERROR","CUSTODY_CANTON_SIGNING_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"CANTON_NETWORK_NOT_CONFIGURED","status":422,"message":"No Canton participant network is configured","data":{"id":"DALP-9313","why":"This deployment has no Canton participant network, so the platform cannot allocate a party or submit a DAML command.","fix":"Ask an operator to add a Canton network to the platform configuration, then retry.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_SUBMISSION_FAILED","INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"CANTON_SUBMISSION_FAILED","status":500,"message":"Canton command submission failed","data":{"id":"DALP-9318","why":"The platform accepted the command, then submission stopped before the ledger settled it.","fix":"Inspect the submission status, then retry with the same submission id when the failure is retryable.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Adds an issuer identity to the trusted issuers registry of the active system together with the claim topics it may attest to. The platform checks that registry first and returns a conflict when the issuer is already registered there, so use the replace or the create-or-replace route to change the topics of an existing entry. Wallet verification runs before the transaction is queued. A body carrying `cantonPartyId` is a Canton write: it trusts that issuer party for the one claim topic the body names, submitted as a party wallet of the active organization, and a finished operation returns 200 while an accepted one returns 202 with a status URL.","summary":"Register a trusted issuer","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]},"issuerAddress":{"$ref":"#/components/schemas/EvmAddress"},"claimTopicIds":{"type":"array","items":{"type":"string","minLength":1},"minItems":1,"maxItems":50},"cantonPartyId":{"not":{}}},"required":["issuerAddress","claimTopicIds"],"additionalProperties":false},{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"cantonPartyId":{"$ref":"#/components/schemas/CantonPartyId_15"},"claimIssuerParty":{"$ref":"#/components/schemas/CantonPartyId_16"},"topic":{"type":"string","minLength":1,"description":"Claim topic the trust entry or claim is about.","examples":["knowYourCustomer"]}},"required":["cantonPartyId","claimIssuerParty","topic"],"additionalProperties":false}],"description":"The issuer to register in the trusted issuers registry of the active system, with the claim topics it may attest to. A body carrying `cantonPartyId` is a Canton write instead: it trusts that issuer party for one claim topic, submitted as the party the body names."}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/system/trusted-issuers/{issuerAddress}":{"get":{"tags":["Identities and claims"],"operationId":"party.trustedIssuers.readSystem","parameters":[{"name":"issuerAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true}],"responses":{"200":{"description":"The trusted issuer, with its claim topics and the wallet that operates the issuer identity.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/SystemTrustedIssuer"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","account":{"id":"0x70997970C51812dc3A010C7d01b50e0d17dc79C8"},"claimTopics":[{"id":"0x5FbDB2315678afecb367f032d93F642f64180aa3307833626138646165623761616364336330646439333431373536383836653463373734636639663136353463656564363336383834336531323431383565663932","topicId":"26984799302505749158794800959285050858086405868089409909048783980951278841746","name":"knowYourCustomer","signature":"string claim"}],"deployedInTransaction":"0x1c9a5f80d3b47e6218ca03f95d7be41086c2d97fa5301be8c47d0f2635a9184b","isGlobal":false},"links":{"self":"/v2/system/trusted-issuers/0x8ba1f109551bD432803012645Ac136ddd64DBA72"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one trusted issuer resolved across the registry chain of the active system. The platform reports a not-found error when no registry in that chain holds the address.","summary":"Read a trusted issuer","x-dalp-auth":"session-or-api-key"},"put":{"tags":["Identities and claims"],"operationId":"party.trustedIssuers.upsertSystem","parameters":[{"name":"issuerAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","description":"Caller-generated key that makes a repeated request resolve to the first attempt instead of starting a second one.","examples":["3f1c9a26-4c1e-4a53-9c6a-9c9d3e1b7a11"]},"required":false},{"name":"Prefer","in":"header","schema":{"type":"string","description":"RFC 7240 preference. Send `wait=N` (5 to 99 seconds) to wait for settlement, `respond-async` to take the 202 handle at once, or both to wait and then degrade to 202.","examples":["wait=30","respond-async, wait=30"]},"required":false}],"responses":{"200":{"description":"The registration or topic replacement is accepted. The body carries the transaction hash and the issuer address once the registry transaction settles. When you ask for asynchronous processing, the body carries a transaction identifier, the current transaction state, and a status URL to poll, and the status code is 202 instead of 200.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TrustedIssuerMutated"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"txHash":"0x4f3d1a8c0b6e29d5741ac0f8b2e7d6390c5148aa9be3f207d4c8615ae0937b2c","issuerAddress":"0x8ba1f109551bD432803012645Ac136ddd64DBA72"},"meta":{"txHashes":["0x4f3d1a8c0b6e29d5741ac0f8b2e7d6390c5148aa9be3f207d4c8615ae0937b2c"]},"links":{"self":"/v2/system/trusted-issuers/0x8ba1f109551bD432803012645Ac136ddd64DBA72"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Registers the issuer when the trusted issuers registry of the active system does not hold it, and replaces its claim topics when it does. The platform reads that registry first to pick the branch, then falls back to the other branch when it reports the opposite state, so a concurrent write does not fail the request. Send the complete topic set: topics you leave out are removed.","summary":"Register a trusted issuer or replace its claim topics","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrustedIssuerCommand"}}},"required":true},"x-dalp-auth":"session-or-api-key"},"patch":{"tags":["Identities and claims"],"operationId":"party.trustedIssuers.updateSystem","parameters":[{"name":"issuerAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","description":"Caller-generated key that makes a repeated request resolve to the first attempt instead of starting a second one.","examples":["3f1c9a26-4c1e-4a53-9c6a-9c9d3e1b7a11"]},"required":false},{"name":"Prefer","in":"header","schema":{"type":"string","description":"RFC 7240 preference. Send `wait=N` (5 to 99 seconds) to wait for settlement, `respond-async` to take the 202 handle at once, or both to wait and then degrade to 202.","examples":["wait=30","respond-async, wait=30"]},"required":false}],"responses":{"200":{"description":"The topic replacement is accepted. The body carries the transaction hash and the issuer address once the registry transaction settles. When you ask for asynchronous processing, the body carries a transaction identifier, the current transaction state, and a status URL to poll, and the status code is 202 instead of 200.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TrustedIssuerMutated"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"txHash":"0x4f3d1a8c0b6e29d5741ac0f8b2e7d6390c5148aa9be3f207d4c8615ae0937b2c","issuerAddress":"0x8ba1f109551bD432803012645Ac136ddd64DBA72"},"meta":{"txHashes":["0x4f3d1a8c0b6e29d5741ac0f8b2e7d6390c5148aa9be3f207d4c8615ae0937b2c"]},"links":{"self":"/v2/system/trusted-issuers/0x8ba1f109551bD432803012645Ac136ddd64DBA72"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Sets the claim topics of a registered trusted issuer to exactly the list in the body: send the complete set, because topics you leave out are removed. The write fails with a not-found error when the trusted issuers registry of the active system does not hold the issuer; use the create-or-replace route when you do not know whether the entry exists. Wallet verification runs before the transaction is queued.","summary":"Replace the claim topics of a trusted issuer","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrustedIssuerCommand"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/system/trusted-issuers/{issuerAddress}/topics":{"get":{"tags":["Identities and claims"],"operationId":"party.trustedIssuers.listSystemTopics","parameters":[{"name":"issuerAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000},"topicId":{"anyOf":[{"type":"string","pattern":"^-?\\d+$","maxLength":80},{"type":"object","properties":{"eq":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"ne":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"gte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"between":{"type":"string","maxLength":161},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"name":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"signature":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"A page of claim topics. `meta.total` counts every topic the issuer holds in the registry of the active system, not just the topics on this page.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/SystemTrustedIssuerTopic"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"0x5FbDB2315678afecb367f032d93F642f64180aa3307833626138646165623761616364336330646439333431373536383836653463373734636639663136353463656564363336383834336531323431383565663932","topicId":"26984799302505749158794800959285050858086405868089409909048783980951278841746","name":"knowYourCustomer","signature":"string claim"}],"meta":{"total":1,"facets":{}},"links":{"self":"/v2/system/trusted-issuers/0x8ba1f109551bD432803012645Ac136ddd64DBA72/topics?sort=name&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/system/trusted-issuers/0x8ba1f109551bD432803012645Ac136ddd64DBA72/topics?sort=name&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/system/trusted-issuers/0x8ba1f109551bD432803012645Ac136ddd64DBA72/topics?sort=name&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the claim topics the issuer may attest to, with each name and signature resolved from the topic scheme registry of the active system. This route reads only the trusted issuers registry of the active system and does not walk the chain. An issuer that registry does not hold returns an empty page rather than a not-found error, including an issuer that only a parent holds.","summary":"List the claim topics of a trusted issuer","x-dalp-auth":"session-or-api-key"}},"/api/v2/system/trusted-issuers/{issuerAddress}/claim-topics/{topicId}":{"post":{"tags":["Identities and claims"],"operationId":"party.trustedIssuers.addSystemClaimTopic","parameters":[{"name":"issuerAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"name":"topicId","in":"path","schema":{"type":"string","minLength":1,"pattern":"^\\d+$","description":"Decimal topic identifier, the `uint256` keccak-256 hash of the topic name registered in the topic scheme registry of the active system. Digits only, with no `0x` prefix and no leading sign.","examples":["26984799302505749158794800959285050858086405868089409909048783980951278841746"]},"required":true},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","description":"Caller-generated key that makes a repeated request resolve to the first attempt instead of starting a second one.","examples":["3f1c9a26-4c1e-4a53-9c6a-9c9d3e1b7a11"]},"required":false},{"name":"Prefer","in":"header","schema":{"type":"string","description":"RFC 7240 preference. Send `wait=N` (5 to 99 seconds) to wait for settlement, `respond-async` to take the 202 handle at once, or both to wait and then degrade to 202.","examples":["wait=30","respond-async, wait=30"]},"required":false}],"responses":{"200":{"description":"The claim topic addition is accepted. The body carries the transaction hash and the issuer address once the registry transaction settles. When you ask for asynchronous processing, the body carries a transaction identifier, the current transaction state, and a status URL to poll, and the status code is 202 instead of 200.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TrustedIssuerClaimTopicMutated"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"txHash":"0x4f3d1a8c0b6e29d5741ac0f8b2e7d6390c5148aa9be3f207d4c8615ae0937b2c","issuerAddress":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","topicId":"26984799302505749158794800959285050858086405868089409909048783980951278841746"},"meta":{"txHashes":["0x4f3d1a8c0b6e29d5741ac0f8b2e7d6390c5148aa9be3f207d4c8615ae0937b2c"]},"links":{"self":"/v2/system/trusted-issuers/0x8ba1f109551bD432803012645Ac136ddd64DBA72/claim-topics/26984799302505749158794800959285050858086405868089409909048783980951278841746"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Adds a single claim topic to the topics the issuer may attest to and keeps its other topics, unlike the replace route which takes the whole set. The platform reads the current topic set and submits a transaction only when the topic is missing, so repeating the call changes nothing and returns an empty `txHash`. The platform rejects the request while an earlier claim-topic transaction for this registry has not settled.","summary":"Add one claim topic to a trusted issuer","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrustedIssuerClaimTopicCommand"}}},"required":false},"x-dalp-auth":"session-or-api-key"},"delete":{"tags":["Identities and claims"],"operationId":"party.trustedIssuers.removeSystemClaimTopic","parameters":[{"name":"issuerAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"name":"topicId","in":"path","schema":{"type":"string","minLength":1,"pattern":"^\\d+$","description":"Decimal topic identifier, the `uint256` keccak-256 hash of the topic name registered in the topic scheme registry of the active system. Digits only, with no `0x` prefix and no leading sign.","examples":["26984799302505749158794800959285050858086405868089409909048783980951278841746"]},"required":true},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","description":"Caller-generated key that makes a repeated request resolve to the first attempt instead of starting a second one.","examples":["3f1c9a26-4c1e-4a53-9c6a-9c9d3e1b7a11"]},"required":false},{"name":"Prefer","in":"header","schema":{"type":"string","description":"RFC 7240 preference. Send `wait=N` (5 to 99 seconds) to wait for settlement, `respond-async` to take the 202 handle at once, or both to wait and then degrade to 202.","examples":["wait=30","respond-async, wait=30"]},"required":false}],"responses":{"200":{"description":"The claim topic removal is accepted. The body carries the transaction hash and the issuer address once the registry transaction settles. When you ask for asynchronous processing, the body carries a transaction identifier, the current transaction state, and a status URL to poll, and the status code is 202 instead of 200.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TrustedIssuerClaimTopicMutated"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"txHash":"0x4f3d1a8c0b6e29d5741ac0f8b2e7d6390c5148aa9be3f207d4c8615ae0937b2c","issuerAddress":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","topicId":"26984799302505749158794800959285050858086405868089409909048783980951278841746"},"meta":{"txHashes":["0x4f3d1a8c0b6e29d5741ac0f8b2e7d6390c5148aa9be3f207d4c8615ae0937b2c"]},"links":{"self":"/v2/system/trusted-issuers/0x8ba1f109551bD432803012645Ac136ddd64DBA72/claim-topics/26984799302505749158794800959285050858086405868089409909048783980951278841746"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Removes a single claim topic from the topics the issuer may attest to and keeps its other topics, unlike the replace route which takes the whole set. The platform reads the current topic set and submits a transaction only when the topic is present, so repeating the call changes nothing and returns an empty `txHash`. The platform rejects the request while an earlier claim-topic transaction for this registry has not settled.","summary":"Remove one claim topic from a trusted issuer","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrustedIssuerClaimTopicCommand"}}},"required":false},"x-dalp-auth":"session-or-api-key"}},"/api/v2/system/trusted-issuers/{issuerId}":{"delete":{"tags":["Identities and claims"],"operationId":"party.trustedIssuers.deleteSystem","parameters":[{"name":"issuerId","in":"path","schema":{"anyOf":[{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},{"type":"string","minLength":1,"description":"Canton external party identifier"}],"description":"The issuer's own identifier: the issuer address, or a Canton party id.","examples":["0x8ba1f109551bD432803012645Ac136ddd64DBA72"]},"required":true},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","description":"Caller-generated key that makes a repeated request resolve to the first attempt instead of starting a second one.","examples":["3f1c9a26-4c1e-4a53-9c6a-9c9d3e1b7a11"]},"required":false},{"name":"Prefer","in":"header","schema":{"type":"string","description":"RFC 7240 preference. Send `wait=N` (5 to 99 seconds) to wait for settlement, `respond-async` to take the 202 handle at once, or both to wait and then degrade to 202.","examples":["wait=30","respond-async, wait=30"]},"required":false}],"responses":{"200":{"description":"The removal is accepted. The body carries the transaction hash and the issuer address once the registry transaction settles. When you ask for asynchronous processing, the body carries a transaction identifier, the current transaction state, and a status URL to poll, and the status code is 202 instead of 200.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/SystemTrustedIssuerRemoveMutationResult"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"txHash":"0x4f3d1a8c0b6e29d5741ac0f8b2e7d6390c5148aa9be3f207d4c8615ae0937b2c","issuerAddress":"0x8ba1f109551bD432803012645Ac136ddd64DBA72"},"meta":{"txHashes":["0x4f3d1a8c0b6e29d5741ac0f8b2e7d6390c5148aa9be3f207d4c8615ae0937b2c"]},"links":{"self":"/v2/system/trusted-issuers/0x8ba1f109551bD432803012645Ac136ddd64DBA72"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CANTON_TOKEN_OPERATION_REQUEST_INVALID","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SYSTEM_TRUSTED_ISSUER_ID_INVALID","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_PARTY_WALLET_NOT_FOUND","CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CANTON_PARTY_WALLET_NOT_FOUND","status":404,"message":"The Canton party wallet was not found","data":{"id":"DALP-9311","why":"No Canton party wallet matches this party id in the active organization, so the platform returned no record.","fix":"Use a wallet id from the wallets list of the active organization.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_APPROVAL_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"CANTON_APPROVAL_EXPIRED","status":410,"message":"The Canton command's validity window closed","data":{"id":"DALP-9321","why":"The command's validity window closed while the intent waited for approval, so the platform never sent it to the ledger.","fix":"Submit the command again. The expired intent is terminal and its approval is not reopened.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_NETWORK_NOT_CONFIGURED","CANTON_NETWORK_NOT_ENABLED","CONTRACT_ERROR","CUSTODY_CANTON_SIGNING_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"CANTON_NETWORK_NOT_CONFIGURED","status":422,"message":"No Canton participant network is configured","data":{"id":"DALP-9313","why":"This deployment has no Canton participant network, so the platform cannot allocate a party or submit a DAML command.","fix":"Ask an operator to add a Canton network to the platform configuration, then retry.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_SUBMISSION_FAILED","INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"CANTON_SUBMISSION_FAILED","status":500,"message":"Canton command submission failed","data":{"id":"DALP-9318","why":"The platform accepted the command, then submission stopped before the ledger settled it.","fix":"Inspect the submission status, then retry with the same submission id when the failure is retryable.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Removes the issuer from the trusted issuers registry of the active system, so that system stops treating claims signed by the issuer as trusted. The platform checks that registry first and returns a not-found error when the issuer is absent there, including when only a parent registry holds it. Wallet verification runs before the transaction is queued. The `issuerId` segment is the issuer's own identifier: an address with an EVM body, or a Canton party id with a body carrying `cantonPartyId`. A Canton body withdraws that party's trust for the one claim topic it names by archiving the authorization contract it presents, so a finished operation returns 200 while an accepted one returns 202 with a status URL.","summary":"Remove a trusted issuer","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]},"cantonPartyId":{"not":{}}},"additionalProperties":false},{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"cantonPartyId":{"$ref":"#/components/schemas/CantonPartyId_15"},"topic":{"type":"string","minLength":1,"description":"Claim topic the trust entry or claim is about.","examples":["knowYourCustomer"]},"authorizationContractId":{"type":"string","minLength":1,"description":"Contract id of the issuer authorization to archive, as returned by the claims list for the row with kind issuer and this issuer and topic."}},"required":["cantonPartyId","topic","authorizationContractId"],"additionalProperties":false}],"description":"Removal carries no field but the wallet verification. A body carrying `cantonPartyId` is a Canton write instead: it withdraws that party's trust for one claim topic by archiving the authorization contract the body names, so the path names the issuer and the body names the authorization."}}},"required":false},"x-dalp-auth":"session-or-api-key"}},"/api/v2/system/trusted-issuers/{issuerId}/force-removals":{"post":{"tags":["Identities and claims"],"operationId":"party.trustedIssuers.forceRemoveSystem","parameters":[{"name":"issuerId","in":"path","schema":{"anyOf":[{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},{"type":"string","minLength":1,"description":"Canton external party identifier"}],"description":"The issuer's own identifier: the issuer address, or a Canton party id.","examples":["0x8ba1f109551bD432803012645Ac136ddd64DBA72"]},"required":true},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","description":"Caller-generated key that makes a repeated request resolve to the first attempt instead of starting a second one.","examples":["3f1c9a26-4c1e-4a53-9c6a-9c9d3e1b7a11"]},"required":false},{"name":"Prefer","in":"header","schema":{"type":"string","description":"RFC 7240 preference. Send `wait=N` (5 to 99 seconds) to wait for settlement, `respond-async` to take the 202 handle at once, or both to wait and then degrade to 202.","examples":["wait=30","respond-async, wait=30"]},"required":false}],"responses":{"200":{"description":"The route accepts the force-removal. A finished operation returns the settled body, whose `operationId` is the submission id the transaction-request read reports; an accepted one returns 202 with that id and the status URL to poll.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CantonIdentityOperationAccepted"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"operationId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","submissionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","ledgerSubmissionId":"canton-ledger-sub-1","preparedHashHex":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","contractId":"00a1b2c3d4e5f60718293a4b5c6d7e8f90a1b2c3d4e5f60718293a4b5c6d7e8f90"},"meta":{"txHashes":["0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CANTON_TOKEN_OPERATION_REQUEST_INVALID","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_PARTY_WALLET_NOT_FOUND","CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CANTON_PARTY_WALLET_NOT_FOUND","status":404,"message":"The Canton party wallet was not found","data":{"id":"DALP-9311","why":"No Canton party wallet matches this party id in the active organization, so the platform returned no record.","fix":"Use a wallet id from the wallets list of the active organization.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_FORCED_PATH_CONTRACT_STILL_LIVE","CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CANTON_FORCED_PATH_CONTRACT_STILL_LIVE","status":409,"message":"The contract a forced removal skips still exists","data":{"id":"DALP-12236","why":"A forced removal drops the registry entry without archiving the contract the normal removal archives, so it is the recovery path for a contract that is already gone. This one still exists.","fix":"Take the normal route of this operation, which archives the contract named here. Force the removal only once that contract is gone.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_APPROVAL_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"CANTON_APPROVAL_EXPIRED","status":410,"message":"The Canton command's validity window closed","data":{"id":"DALP-9321","why":"The command's validity window closed while the intent waited for approval, so the platform never sent it to the ledger.","fix":"Submit the command again. The expired intent is terminal and its approval is not reopened.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_NETWORK_NOT_CONFIGURED","CANTON_NETWORK_NOT_ENABLED","CONTRACT_ERROR","CUSTODY_CANTON_SIGNING_UNSUPPORTED","OPERATION_FAMILY_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"CANTON_NETWORK_NOT_CONFIGURED","status":422,"message":"No Canton participant network is configured","data":{"id":"DALP-9313","why":"This deployment has no Canton participant network, so the platform cannot allocate a party or submit a DAML command.","fix":"Ask an operator to add a Canton network to the platform configuration, then retry.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_SUBMISSION_FAILED","INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"CANTON_SUBMISSION_FAILED","status":500,"message":"Canton command submission failed","data":{"id":"DALP-9318","why":"The platform accepted the command, then submission stopped before the ledger settled it.","fix":"Inspect the submission status, then retry with the same submission id when the failure is retryable.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Drops one claim topic's trust entry on the trusted issuers registry for an authorization that was archived out of band, as the party the body names. This is the recovery path for a registry that has desynced from the ledger: the normal removal presents the authorization contract it archives, and a contract that is already gone can never be presented, so the entry would otherwise stay stuck. This choice archives nothing, so prefer the normal removal while the authorization is live. The path names the issuer: a Canton party id, because no EVM registry holds this state and an EVM-family request is refused rather than answered with an invented equivalent. A finished operation returns 200; an accepted one returns 202 with a status URL.","summary":"Drop a Canton issuer trust entry whose authorization is gone","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"cantonPartyId":{"not":{}}},"additionalProperties":false},{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"cantonPartyId":{"$ref":"#/components/schemas/CantonPartyId_15"},"topic":{"type":"string","minLength":1,"description":"Claim topic the trust entry or claim is about.","examples":["knowYourCustomer"]}},"required":["cantonPartyId","topic"],"additionalProperties":false}],"description":"The recovery removal of an issuer whose authorization is already gone: the body names the topic and the party that submits, and the path names the issuer. `cantonPartyId` is required, because this route serves Canton alone: an EVM-family request, which carries no selector, is refused for the family rather than answered with an invented equivalent."}}},"required":false},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/trusted-issuers":{"post":{"tags":["Identities and claims"],"operationId":"party.trustedIssuers.addForToken","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","description":"Caller-generated key that makes a repeated request resolve to the first attempt instead of starting a second one.","examples":["3f1c9a26-4c1e-4a53-9c6a-9c9d3e1b7a11"]},"required":false},{"name":"Prefer","in":"header","schema":{"type":"string","description":"RFC 7240 preference. Send `wait=N` (5 to 99 seconds) to wait for settlement, `respond-async` to take the 202 handle at once, or both to wait and then degrade to 202.","examples":["wait=30","respond-async, wait=30"]},"required":false}],"responses":{"200":{"description":"Two shapes share this status. A mutation that already settled returns `data.txHash` and `meta.txHashes`. One still in flight returns `transactionId`, `status`, and a `statusUrl` to poll until it completes.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenTrustedIssuerMutated"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"txHash":"0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24","issuerAddress":"0x2F9c4Df9a0b6C1e8B3A7d5f2C04E6a1b8D3c7e59"},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"]},"links":{"self":"/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/trusted-issuers"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The path segment is not a token contract address and the request sent no `instrumentAdmin`, so it names neither an EVM token nor a Canton instrument. Send an address, or send the instrument id together with `instrumentAdmin`. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REF_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REF_INVALID","status":400,"message":"Token reference is incomplete","data":{"id":"DALP-0707","why":"The asset reference cannot identify a token in its stated family.","fix":"Send an EVM contract address, or a Canton instrument id together with its instrument admin.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Registers `issuerAddress` in the token's own Trusted Issuer Registry, trusted for the claim topics in `claimTopicIds`. The signing identity needs the on-chain `governance` role and a verified wallet. The claim topic set is written once at registration: to change it, remove the issuer and add it again.","summary":"Add a trusted issuer to a token","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrustedIssuerRegistration"}}},"required":true},"x-dalp-auth":"session-or-api-key"},"get":{"tags":["Identities and claims"],"operationId":"party.tokenRegistries.listTrustedIssuers","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000},"account":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"source":{"anyOf":[{"type":"string","enum":["token","system","global"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"One page of the trusted issuers resolved for the token, ordered by `account` unless `sort` says otherwise. `meta.total` counts the full result set before paging, and `meta.hasTrustedIssuersRegistry` reports whether the token has a registry of its own. A token whose organization has no deployed system returns an empty page with that flag set to `false`.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/TokenTrustedIssuer"}},"meta":{"type":"object","properties":{"total":{"type":"integer"},"facets":{"type":"object","additionalProperties":{"type":"array","items":{"$ref":"#/components/schemas/CollectionFacetEntry"}}},"hasTrustedIssuersRegistry":{"type":"boolean","description":"True when the token has a trusted-issuers registry of its own. When false, only inherited system and global issuers resolve, and no token-specific issuer can be added or removed."}},"required":["total","hasTrustedIssuersRegistry"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"0x2F9c4Df9a0b6C1e8B3A7d5f2C04E6a1b8D3c7e59","account":{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"},"claimTopics":[{"topicId":"1","name":"Know Your Customer"}],"registry":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"},"inheritanceLevel":"token","isInheritedElsewhere":false}],"meta":{"total":1,"hasTrustedIssuersRegistry":true},"links":{"self":"/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/trusted-issuers?sort=account&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/trusted-issuers?sort=account&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/trusted-issuers?sort=account&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"This response has one of these causes:\n\n- The path segment is not a token contract address and the request sent no `instrumentAdmin`, so it names neither an EVM token nor a Canton instrument. Send an address, or send the instrument id together with `instrumentAdmin`.\n- A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REF_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REF_INVALID","status":400,"message":"Token reference is incomplete","data":{"id":"DALP-0707","why":"The asset reference cannot identify a token in its stated family.","fix":"Send an EVM contract address, or a Canton instrument id together with its instrument admin.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns every trusted issuer that resolves for the token `assetId` names across the `token`, `system`, and `global` tiers of its registry chain. `assetId` is the address of the token contract, checksummed per EIP-55, 42 characters starting with `0x`. Filter on `account` and `source`, sort on `account`, and page with `page[offset]` and `page[limit]`.","summary":"List a token's trusted issuers","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/trusted-issuers/{issuerAddress}":{"delete":{"tags":["Identities and claims"],"operationId":"party.trustedIssuers.removeForToken","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"issuerAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","description":"Caller-generated key that makes a repeated request resolve to the first attempt instead of starting a second one.","examples":["3f1c9a26-4c1e-4a53-9c6a-9c9d3e1b7a11"]},"required":false},{"name":"Prefer","in":"header","schema":{"type":"string","description":"RFC 7240 preference. Send `wait=N` (5 to 99 seconds) to wait for settlement, `respond-async` to take the 202 handle at once, or both to wait and then degrade to 202.","examples":["wait=30","respond-async, wait=30"]},"required":false}],"responses":{"200":{"description":"Two shapes share this status. A mutation that already settled returns `data.txHash` and `meta.txHashes`. One still in flight returns `transactionId`, `status`, and a `statusUrl` to poll until it completes.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenTrustedIssuerMutated"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"txHash":"0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24","issuerAddress":"0x2F9c4Df9a0b6C1e8B3A7d5f2C04E6a1b8D3c7e59"},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"]},"links":{"self":"/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/trusted-issuers/0x2F9c4Df9a0b6C1e8B3A7d5f2C04E6a1b8D3c7e59"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The path segment is not a token contract address and the request sent no `instrumentAdmin`, so it names neither an EVM token nor a Canton instrument. Send an address, or send the instrument id together with `instrumentAdmin`. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REF_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REF_INVALID","status":400,"message":"Token reference is incomplete","data":{"id":"DALP-0707","why":"The asset reference cannot identify a token in its stated family.","fix":"Send an EVM contract address, or a Canton instrument id together with its instrument admin.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Removes `issuerAddress` from the token's own Trusted Issuer Registry. `assetId` and `issuerAddress` are EIP-55 checksummed addresses; the signing identity needs the on-chain `governance` role and a verified wallet. Only a `token`-tier row is removable, and an issuer that also resolves from the `system` or `global` tier keeps that inherited trust.","summary":"Remove a trusted issuer from a token","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrustedIssuerRemoval"}}},"required":false},"x-dalp-auth":"session-or-api-key"}},"/api/v2/identity-recoveries/{userId}/preview":{"get":{"tags":["Identity recovery"],"operationId":"party.recovery.preview","parameters":[{"name":"userId","in":"path","schema":{"type":"string","minLength":1,"description":"Better Auth user identifier"},"required":true},{"name":"wallet","in":"query","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":false}],"responses":{"200":{"description":"The preview for the requested user: the wallet treated as lost, the state of the identity, every positive token holding recovery would move, and the reasons recovery is blocked today.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/RecoveryPlan"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"user":{"id":"3f9c1b7e5a2d4068","email":"treasury@northwind.example","name":"Amara Okafor"},"lostWallet":"0x9A3f7c21B45e08D6cF1B2A4e5d7f8C0913a6B2d4","identity":{"id":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","status":"registered","isMarkedAsLost":false},"tokenBalances":[{"tokenAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","tokenName":"Euro Deposit","tokenSymbol":"EURD","balance":"1250.5","balanceExact":"1250500000000000000000","decimals":18}],"canRecover":true,"blockingReasons":[]},"links":{"self":"/v2/identity-recoveries/3f9c1b7e5a2d4068/preview"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Reports what a recovery would move for one user, and changes nothing. Read it before starting a recovery to see whether one can run at all.\n\nThe response names the wallet the platform treats as lost, the deployed identity contract and its registration state, every positive token holding recovery would move, and the reasons that block recovery today. `canRecover` is true only when `blockingReasons` is empty.\n\nPass `wallet` to preview a specific address the target user owns. Leave it out to let the platform resolve the user's wallet for the requested chain.\n\nNeeds an identity-manager role in the caller's active organization.","summary":"Preview an identity recovery","x-dalp-auth":"session-or-api-key"}},"/api/v2/identity-recoveries":{"post":{"tags":["Identity recovery"],"operationId":"party.recovery.execute","parameters":[{"name":"Idempotency-Key","in":"header","schema":{"type":"string","description":"Caller-generated key that makes a repeated request resolve to the first attempt instead of starting a second one.","examples":["3f1c9a26-4c1e-4a53-9c6a-9c9d3e1b7a11"]},"required":false},{"name":"Prefer","in":"header","schema":{"type":"string","description":"RFC 7240 preference. Send `wait=N` (5 to 99 seconds) to wait for settlement, `respond-async` to take the 202 handle at once, or both to wait and then degrade to 202.","examples":["wait=30","respond-async, wait=30"]},"required":false}],"responses":{"200":{"description":"Either the recovery finished inside the wait window, and the response carries its outcome with the transaction hashes in `meta.txHashes`, or it is still running, and the response carries `transactionId` and `statusUrl` with status 202.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/RecoveryStarted"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"success":true},"meta":{"txHashes":["0x5c73a1e94b0d268fa37e15c8b02d94f6a1e7835c0b96d2f4e83a17c5d602b9f4"]},"links":{"self":"/v2/identity-recoveries"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","party.recovery.ATTEMPTS_EXHAUSTED","party.recovery.FAILED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Starts the recovery for one user. A recovery runs until it reaches a terminal phase, and the status operation reports how far it got.\n\nThe platform resolves the lost wallet, checks that the target user owns it, checks that an identity contract is deployed, and checks that no other organization still uses the lost wallet's custody account. It then creates a new wallet and identity, adds the management key and registry entries for the new wallet, disables the old wallets, and revokes the user's sessions. Finally it moves every positive token holding across.\n\nExecuting again after a recovery failed, or after it completed with token failures, starts a new attempt, up to sixteen attempts for one user; after that the request answers 409 and the recovery needs support. Every new attempt continues with the lost wallets the first attempt resolved, so `wallet` is ignored on every rerun. Executing again while an attempt is running returns that attempt, and executing again after a recovery completed returns its stored outcome without starting another.\n\nThe request waits at least 30 seconds, and longer when it asks for a longer wait. A recovery that finishes inside the window returns its outcome with `meta.txHashes`. A recovery still running when the window closes returns `transactionId` and `statusUrl` with status 202. Read the status operation for live progress either way.\n\nNeeds an identity-manager role in the caller's active organization. Every submission goes through verification of the caller's own wallet, so send `walletVerification` when that wallet is protected by a code.","summary":"Start an identity recovery","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecoveryExecute"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/identity-recoveries/{userId}/status":{"get":{"tags":["Identity recovery"],"operationId":"party.recovery.status","parameters":[{"name":"userId","in":"path","schema":{"type":"string","minLength":1,"description":"Better Auth user identifier"},"required":true}],"responses":{"200":{"description":"Live progress of the user's recovery: the current phase, the number of token transfers finished out of the number planned, the addresses recovery has created so far, one entry per token that did not move, and the claims carried to the replacement identity or left behind.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/RecoveryStatus"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"phase":"recovering-tokens","tokensRecovered":2,"totalTokens":3,"error":null,"newWallet":"0x4D2c8B71Fa03E59d6c8a1b7e2f4d9c0356Ab8E17","newIdentity":"0x2f8b1c4D7e0a9536B8C2D1F4E7a0b3c65D9e8f21","tokenRecoveryFailures":[],"carriedClaims":[],"notCarriedClaims":[]},"links":{"self":"/api/v2/identity-recoveries/3f9c1b7e5a2d4068/status"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Reports live progress of a user's recovery: the phase it is on, and the number of token transfers finished out of the number planned. The response also names the wallet and identity the recovery has created, and carries one entry for every token that did not move.\n\nOnce the recovery finishes, `carriedClaims` lists each claim the organization's own claim issuer re-issued onto the replacement identity. `notCarriedClaims` lists each claim that stayed behind, with the reason: an external issuer, or an issuance that failed.\n\nEvery field degrades instead of failing, so a recovery whose first progress record has not landed yet reads back as phase `creating-wallet` with zero counters and no addresses. Poll until `phase` is `completed`, `completed-with-token-failures`, or `failed`. A user for whom no recovery has started answers 404.\n\nAn identity manager in the caller's active organization reads any recovery in that organization, and the account that started a recovery reads that recovery. Any other caller gets 403 whether or not a recovery exists, so absence stays undisclosed.","summary":"Read identity recovery status","x-dalp-auth":"session-or-api-key"}},"/api/v2/participants/{participantId}/compliance-eligibility":{"get":{"tags":["Participants"],"operationId":"party.eligibility.read","parameters":[{"name":"participantId","in":"path","schema":{"type":"string","minLength":1,"description":"Participant identifier"},"required":true},{"name":"live","in":"query","schema":{"type":"string","enum":["true","false"]},"required":false}],"responses":{"200":{"description":"The eligibility verdict, where it was evaluated, and a reason for each rule that did not pass.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/EligibilityVerdictItem"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"verdict":"allowed","source":"indexer","checkedAt":"2026-03-15T14:30:00.000Z","wallet":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","reasons":[]},"links":{"self":"/v2/participants/c0b8d4b0-3c5a-4b62-9a2e-2f0f6f4a5f10/compliance-eligibility"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Evaluates the participant against the compliance rules installed on the active organization's system and returns `allowed`, `needs-action`, or `blocked`, together with a coded reason for every rule that did not pass. The verdict comes from indexed state by default. Set `live` to `true` to evaluate it against the deployed compliance modules instead, which is slower and is meant for an explicit re-check rather than for rendering a list.","summary":"Read participant compliance eligibility","x-dalp-auth":"session-or-api-key"}},"/api/v2/national-ids/{nationalId}/user":{"get":{"tags":["Users"],"operationId":"party.userAccount.readByNationalId","parameters":[{"name":"nationalId","in":"path","schema":{"type":"string"},"required":true},{"name":"country","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"The user whose approved KYC carries the requested national ID, with a `self` link to this resource.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/UserListItem"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0193fa5c-9c31-7a4d-b0e2-3f6c9d1a7b45","name":"Amara Okafor","email":"amara.okafor@northwind.example","role":"member","firstName":"Amara","lastName":"Okafor","nationalId":"NL-8842-1177","country":"NL","residencyStatus":"resident","createdAt":"2026-03-04T09:12:41.000Z","lastLoginAt":"2026-03-11T16:02:08.000Z","participantId":"c0b8d4b0-3c5a-4b62-9a2e-2f0f6f4a5f10","roles":{"identityManager":true},"rolesPending":false,"isAdmin":false,"personalInfoCompleted":true,"imageUrl":"/api/v2/marks/users/0193fa5c-9c31-7a4d-b0e2-3f6c9d1a7b45","imageProvenance":"generated"},"links":{"self":"/v2/national-ids/NL-8842-1177/user"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the user whose approved KYC version carries this national ID. Matching is exact and case sensitive. Send `country` when the same identifier is used in more than one country in the organization. A match of more than one user returns 409.","summary":"Read a user by national ID","x-dalp-auth":"session-or-api-key"}},"/api/v2/users/me/image-uploads":{"post":{"tags":["Users"],"operationId":"party.userImages.createImageUpload","parameters":[{"name":"Idempotency-Key","in":"header","schema":{"type":"string","description":"Caller-generated key that makes a repeated request resolve to the first attempt instead of starting a second one.","examples":["3f1c9a26-4c1e-4a53-9c6a-9c9d3e1b7a11"]},"required":false},{"name":"Prefer","in":"header","schema":{"type":"string","description":"RFC 7240 preference. Send `wait=N` (5 to 99 seconds) to wait for settlement, `respond-async` to take the 202 handle at once, or both to wait and then degrade to 202.","examples":["wait=30","respond-async, wait=30"]},"required":false}],"responses":{"200":{"description":"Two presigned PUT targets for one profile-image upload.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/UserImageUploadOutput"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"hero":{"objectKey":"user-images/0193fa5c-9c31-7a4d-b0e2-3f6c9d1a7b45/019a1c2e-7b4d-7e31-9f0a-5c2d8e1b6a47-256.png","uploadUrl":"https://storage.example/dalp/user-images/0193fa5c/019a1c2e-256.png?X-Amz-Signature=abc123","method":"PUT","headers":{"Content-Type":"image/png"}},"small":{"objectKey":"user-images/0193fa5c-9c31-7a4d-b0e2-3f6c9d1a7b45/019a1c2e-7b4d-7e31-9f0a-5c2d8e1b6a47-256.png","uploadUrl":"https://storage.example/dalp/user-images/0193fa5c/019a1c2e-256.png?X-Amz-Signature=abc123","method":"PUT","headers":{"Content-Type":"image/png"}},"expiresAt":"2026-04-20T16:00:00.000Z"},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","USER_IMAGE_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","USER_IMAGE_KEY_FORBIDDEN","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","USER_IMAGE_STORAGE_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns presigned PUT targets for the 256 px hero rendition and the 64 px small rendition of the signed-in user's profile image. Both URLs accept one PNG each for 15 minutes. Upload both, then confirm with the hero key and the byte sizes. The keys are bound to the signed-in user; no organization is required.","summary":"Prepare a profile image upload","x-dalp-auth":"session-or-api-key"}},"/api/v2/users/me/image":{"put":{"tags":["Users"],"operationId":"party.userImages.confirmImage","parameters":[{"name":"Idempotency-Key","in":"header","schema":{"type":"string","description":"Caller-generated key that makes a repeated request resolve to the first attempt instead of starting a second one.","examples":["3f1c9a26-4c1e-4a53-9c6a-9c9d3e1b7a11"]},"required":false},{"name":"Prefer","in":"header","schema":{"type":"string","description":"RFC 7240 preference. Send `wait=N` (5 to 99 seconds) to wait for settlement, `respond-async` to take the 202 handle at once, or both to wait and then degrade to 202.","examples":["wait=30","respond-async, wait=30"]},"required":false}],"responses":{"200":{"description":"Confirmation that the platform stored the new image.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/UserImageMutationOutput"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"success":true},"links":{"self":"/v2/users/me/image"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","USER_IMAGE_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","USER_IMAGE_KEY_FORBIDDEN","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","USER_IMAGE_STORAGE_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Binds the uploaded rendition pair to the signed-in user. The platform checks that the hero key lies under the caller's own prefix, that both objects exist at the declared byte size under the 2 MiB and 512 KiB caps, that both are PNG, and that they measure exactly 256 px and 64 px square. On success the hero key becomes the user's image and the previous pair is deleted. On any rejection both uploaded objects are deleted and the stored image is unchanged.","summary":"Confirm a profile image upload","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserImageConfirmInput"}}},"required":true},"x-dalp-auth":"session-or-api-key"},"delete":{"tags":["Users"],"operationId":"party.userImages.deleteImage","parameters":[{"name":"Idempotency-Key","in":"header","schema":{"type":"string","description":"Caller-generated key that makes a repeated request resolve to the first attempt instead of starting a second one.","examples":["3f1c9a26-4c1e-4a53-9c6a-9c9d3e1b7a11"]},"required":false},{"name":"Prefer","in":"header","schema":{"type":"string","description":"RFC 7240 preference. Send `wait=N` (5 to 99 seconds) to wait for settlement, `respond-async` to take the 202 handle at once, or both to wait and then degrade to 202.","examples":["wait=30","respond-async, wait=30"]},"required":false}],"responses":{"200":{"description":"Confirmation that the user no longer has an uploaded image.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/UserImageMutationOutput"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"success":true},"links":{"self":"/v2/users/me/image"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","USER_IMAGE_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","USER_IMAGE_KEY_FORBIDDEN","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","USER_IMAGE_STORAGE_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Clears the signed-in user's uploaded image and deletes both stored renditions. A user with no image returns success and changes nothing. Repeating the call is safe.","summary":"Remove the profile image","x-dalp-auth":"session-or-api-key"}},"/api/v2/system/claim-topics/{name}/exclusion-policy":{"put":{"tags":["Identities and claims"],"operationId":"party.claimTopicRead.setExclusionPolicy","parameters":[{"name":"name","in":"path","schema":{"type":"string","minLength":1},"required":true},{"name":"Idempotency-Key","in":"header","schema":{"type":"string","description":"Caller-generated key that makes a repeated request resolve to the first attempt instead of starting a second one.","examples":["3f1c9a26-4c1e-4a53-9c6a-9c9d3e1b7a11"]},"required":false},{"name":"Prefer","in":"header","schema":{"type":"string","description":"RFC 7240 preference. Send `wait=N` (5 to 99 seconds) to wait for settlement, `respond-async` to take the 202 handle at once, or both to wait and then degrade to 202.","examples":["wait=30","respond-async, wait=30"]},"required":false}],"responses":{"200":{"description":"The claim topic and the exclusion policy now stored for it. The change takes effect on the next compliance-rule write; a rule already on chain is untouched.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ClaimTopicExclusionPolicyUpdateOutput"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"name":"accreditedInvestor","topicId":"10334","exclusionPolicy":"refuse"},"links":{"self":"/v2/system/claim-topics/accreditedInvestor/exclusion-policy"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Decide, for the active system, whether a compliance rule may exclude the holders of this claim: `allow` outright, `warn` to allow it against a recorded acknowledgement, or `refuse`. The value starts from a platform default and this route is how the claim policy manager changes it. Nothing is written on chain, so no transaction is sent and no wallet verification is needed. The change is recorded in the audit trail against your name, with the value it replaced, which is why it cannot be set from an impersonated session. A rule already on chain is not re-graded; the new value applies to the next write.","summary":"Set whether a claim topic may be used in exclusions","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimTopicExclusionPolicyUpdateBody"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/organizations/{organizationId}/joinable-participants":{"get":{"tags":["Participants"],"operationId":"party.participantJoins.joinableList","parameters":[{"name":"organizationId","in":"path","schema":{"type":"string","minLength":1,"description":"The organization being joined or switched into."},"required":true}],"responses":{"200":{"description":"Every personal participant you own, each marked drivable in this organization or not with the capability it lacks, and the providers a new one can be created on.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/JoinableParticipants"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"participants":[{"id":"c0b8d4b0-3c5a-4b62-9a2e-2f0f6f4a5f10","name":"Treasury desk","walletType":"smart","acting":true,"keyCustody":"managed","custodyAccountId":"6b1c8f27-4a03-4e5d-b7a1-9c2d0e4f8a35","drivable":true,"reason":null,"wallets":[{"custodyAccountId":"6b1c8f27-4a03-4e5d-b7a1-9c2d0e4f8a35","address":"0x5e2a0f3c9b8d7e6f1a2b3c4d5e6f7a8b9c0d1e2f","drivable":true,"reason":null}]},{"id":"1d7a2f83-6b41-4de9-8f0c-b3a9c5e27d64","name":null,"walletType":"eoa","acting":false,"keyCustody":"none","custodyAccountId":null,"drivable":false,"reason":"custody-mismatch","wallets":[{"custodyAccountId":"f38a0d51-72c6-4b9e-8a14-5d0b3e6c9271","address":"0x9a8b7c6d5e4f3a2b1c0d9e8f7a6b5c4d3e2f1a0b","drivable":false,"reason":"custody-mismatch"}]}],"providers":[{"providerConfigurationId":"9f2e6c11-0a74-4b8d-95c3-7e1d48a0b652","provider":"fireblocks","managedSigning":true}],"chainId":1,"aaEnabled":true,"pendingParticipantId":null,"canEnableProvider":false},"links":{"self":"/v2/organizations/4a6f1e90-2c58-4b17-a3d9-8e5b0c7f2143/joinable-participants"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","ORGANIZATION_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns every personal participant you own, and the providers a new personal participant could be created on. A participant is drivable when the organization honours the credentials one of its keys is held on, and a participant you own but cannot use here is listed with `drivable: false` and an organization-local reason. Each participant lists its keys on this organization's chain with the same verdict, so a caller can choose the default; the reason never names another organization, its custodian, or its credentials. Callers who neither belong to the organization nor hold an open invitation to it receive the same not-found answer as for an organization that does not exist.","summary":"List the participants you can join an organization as","x-dalp-auth":"session-or-api-key"},"put":{"tags":["Participants"],"operationId":"party.participantJoins.joinableSetActing","parameters":[{"name":"organizationId","in":"path","schema":{"type":"string","minLength":1,"description":"The organization being joined or switched into."},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The refreshed picker, read back from the same answer the choice was judged against.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/JoinableParticipants"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"participants":[{"id":"c0b8d4b0-3c5a-4b62-9a2e-2f0f6f4a5f10","name":"Treasury desk","walletType":"smart","acting":true,"keyCustody":"managed","custodyAccountId":"6b1c8f27-4a03-4e5d-b7a1-9c2d0e4f8a35","drivable":true,"reason":null,"wallets":[{"custodyAccountId":"6b1c8f27-4a03-4e5d-b7a1-9c2d0e4f8a35","address":"0x5e2a0f3c9b8d7e6f1a2b3c4d5e6f7a8b9c0d1e2f","drivable":true,"reason":null}]},{"id":"1d7a2f83-6b41-4de9-8f0c-b3a9c5e27d64","name":null,"walletType":"eoa","acting":false,"keyCustody":"none","custodyAccountId":null,"drivable":false,"reason":"custody-mismatch","wallets":[{"custodyAccountId":"f38a0d51-72c6-4b9e-8a14-5d0b3e6c9271","address":"0x9a8b7c6d5e4f3a2b1c0d9e8f7a6b5c4d3e2f1a0b","drivable":false,"reason":"custody-mismatch"}]}],"providers":[{"providerConfigurationId":"9f2e6c11-0a74-4b8d-95c3-7e1d48a0b652","provider":"fireblocks","managedSigning":true}],"chainId":1,"aaEnabled":true,"pendingParticipantId":null,"canEnableProvider":false},"links":{"self":"/v2/organizations/4a6f1e90-2c58-4b17-a3d9-8e5b0c7f2143/joinable-participants"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","ORGANIZATION_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Records which of your participants carries your requests in this organization, and optionally which of its drivable keys is the default here. The choice is checked against the same list the read operation returns, so an unavailable participant or key receives the same refusal. `X-Participant` still overrides the stored choice for a single request without changing it.","summary":"Choose the participant you act as in an organization","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"participantId":{"$ref":"#/components/schemas/ParticipantId_5"},"custodyAccountId":{"$ref":"#/components/schemas/CustodyAccountId_2"}},"required":["participantId"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/participants/{participantId}/activity-metrics":{"get":{"tags":["Participants"],"operationId":"party.participantActivity.activityStats","parameters":[{"name":"participantId","in":"path","schema":{"type":"string","minLength":1,"description":"Participant identifier"},"required":true},{"name":"range","in":"query","schema":{"type":"object","properties":{"interval":{"type":"string","enum":["hour","day"]},"from":{"anyOf":[{"type":"string","description":"Epoch milliseconds as a digit string, or a readable datetime.","format":"timestamp"},{"type":"integer","minimum":0}]},"to":{"anyOf":[{"type":"string","description":"Epoch milliseconds as a digit string, or a readable datetime.","format":"timestamp"},{"type":"integer","minimum":0}]},"isPreset":{"type":"boolean"}},"required":["interval","from","to","isPreset"],"additionalProperties":false,"description":"Inclusive time window for the series. Use a resolved stats range such as the last 30 days."},"required":true,"style":"deepObject","explode":true}],"responses":{"200":{"description":"The bucketed event counts for the requested range and the total across it.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ActivityStatsOutput"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"timeSeries":[{"timestamp":"2026-03-01T00:00:00.000Z","count":4},{"timestamp":"2026-03-02T00:00:00.000Z","count":17},{"timestamp":"2026-03-03T00:00:00.000Z","count":21}],"count":42},"links":{"self":"/v2/participants/c0b8d4b0-3c5a-4b62-9a2e-2f0f6f4a5f10/activity-metrics"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","MULTISIG_NOT_ENABLED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","party.dependency.FAILED","party.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns how many ledger events the participant produced over the requested range, as a time series of bucketed counts plus the total for the whole range. Counts cover every ledger the participant acts on: an `evm` event is counted by its block timestamp, a `canton` event by its ledger record time, and both fall into the same bucket, because how much happened in an hour is one fact whichever ledger recorded it. Send `X-Chain-Id` or `X-Network-Id` to count one family. Use it to draw the activity chart without paging through the event list.","summary":"Read participant activity metrics","x-dalp-auth":"session-or-api-key"}},"/api/v2/organizations":{"post":{"tags":["Organisation deployment"],"operationId":"platform.organizations.organizationsDeploy","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous deploy result. `deploymentId` is the identifier to poll or stream. `tree` is the redacted deployment tree at completion. `success` is true when every step completed. A terminal failure is an error response, not `success: false`.","content":{"application/json":{"schema":{"type":"object","properties":{"deploymentId":{"type":"string"},"tree":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string"},"type":{"type":"string","enum":["wallet","system","registry","role","identity","compliance","feed","factory","addon","paymaster","other"]},"status":{"type":"string","enum":["pending","in-progress","awaiting-approval","waiting","completed","failed"]},"error":{"type":"string"},"children":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string"},"type":{"type":"string","enum":["wallet","system","registry","role","identity","compliance","feed","factory","addon","paymaster","other"]},"status":{"type":"string","enum":["pending","in-progress","awaiting-approval","waiting","completed","failed"]},"error":{"type":"string"}},"required":["id","label","type","status"],"additionalProperties":false}}},"required":["id","label","type","status"],"additionalProperties":false}},"success":{"type":"boolean","enum":[true]},"failedSteps":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string"},"error":{"type":"string"},"wireError":{"type":"object","properties":{"dalpCode":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"selector":{"type":"string"},"solidityError":{"type":"string"},"id":{"type":"string"},"category":{"type":"string"},"why":{"type":"string"},"fix":{"type":"string"},"suggestedAction":{"type":"string"},"args":{"type":"object","additionalProperties":{"type":"string"}},"correlationId":{"type":"string"},"requestId":{"type":"string"}},"required":["dalpCode","message","retryable","selector","solidityError"],"additionalProperties":false}},"required":["id","label"],"additionalProperties":false}}},"required":["deploymentId","tree","success"],"additionalProperties":false},"examples":{"example-1":{"value":{"deploymentId":"org_northwind_coffee","tree":[{"id":"organization","label":"Organization","type":"other","status":"completed","children":[{"id":"system","label":"System","type":"system","status":"completed"},{"id":"identity","label":"Identity","type":"identity","status":"completed"}]}],"success":true}}}}},"headers":{}},"202":{"description":"Asynchronous deployment acceptance. `deploymentId` identifies the queued deployment to poll or stream. `tree` is the current redacted deployment tree and may still be empty.","content":{"application/json":{"schema":{"type":"object","properties":{"deploymentId":{"type":"string"},"tree":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string"},"type":{"type":"string","enum":["wallet","system","registry","role","identity","compliance","feed","factory","addon","paymaster","other"]},"status":{"type":"string","enum":["pending","in-progress","awaiting-approval","waiting","completed","failed"]},"error":{"type":"string"},"children":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string"},"type":{"type":"string","enum":["wallet","system","registry","role","identity","compliance","feed","factory","addon","paymaster","other"]},"status":{"type":"string","enum":["pending","in-progress","awaiting-approval","waiting","completed","failed"]},"error":{"type":"string"}},"required":["id","label","type","status"],"additionalProperties":false}}},"required":["id","label","type","status"],"additionalProperties":false}},"success":{"type":"boolean","enum":[true]},"failedSteps":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string"},"error":{"type":"string"},"wireError":{"type":"object","properties":{"dalpCode":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"selector":{"type":"string"},"solidityError":{"type":"string"},"id":{"type":"string"},"category":{"type":"string"},"why":{"type":"string"},"fix":{"type":"string"},"suggestedAction":{"type":"string"},"args":{"type":"object","additionalProperties":{"type":"string"}},"correlationId":{"type":"string"},"requestId":{"type":"string"}},"required":["dalpCode","message","retryable","selector","solidityError"],"additionalProperties":false}},"required":["id","label"],"additionalProperties":false}}},"required":["deploymentId","tree"],"additionalProperties":false},"examples":{"example-1":{"value":{"deploymentId":"org_northwind_coffee","tree":[]}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.REINDEXING","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Creates the organization and queues the first-system deployment. The caller does not need an active organization. Optional chainId selects the first network from the deployable set; omitted uses the platform default. Optional aaEnabled is the account-abstraction choice for this organization. Optional custody is probed live before the organization is stored. The platform then waits according to the Prefer header; a long run returns 202. Poll or stream the returned deploymentId.","summary":"Create an organization and start its first system","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"custodyAccountId":{"$ref":"#/components/schemas/CustodyAccountId"},"name":{"type":"string"},"baseCurrency":{"$ref":"#/components/schemas/FiatCurrency"},"targetCurrencies":{"type":"array","items":{"$ref":"#/components/schemas/FiatCurrency"}},"gasPauseEnabled":{"type":"boolean"},"chainId":{"$ref":"#/components/schemas/PersistableChainIdEncoded_1"},"aaEnabled":{"type":"boolean"},"accountMode":{"$ref":"#/components/schemas/AccountMode"}},"required":["custodyAccountId","name","baseCurrency","targetCurrencies"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/organizations/bootstrap":{"post":{"tags":["Organisation deployment"],"operationId":"platform.organizations.organizationsBootstrap","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The new tenant boundary identifier used to continue custody-account onboarding.","content":{"application/json":{"schema":{"type":"object","properties":{"organizationId":{"$ref":"#/components/schemas/OrganizationId"}},"required":["organizationId"],"additionalProperties":false},"examples":{"example-1":{"value":{"organizationId":"org_northwind_coffee"}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.REINDEXING","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Creates the organization and stores its network, currency, and account-abstraction choices without starting system deployment. The returned organization id becomes the tenant scope for provider configuration and the primary custody-account proof.","summary":"Create an organization for custody account setup","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"baseCurrency":{"$ref":"#/components/schemas/FiatCurrency"},"targetCurrencies":{"type":"array","items":{"$ref":"#/components/schemas/FiatCurrency"}},"chainId":{"$ref":"#/components/schemas/PersistableChainIdEncoded_1"},"aaEnabled":{"type":"boolean"},"accountMode":{"$ref":"#/components/schemas/AccountMode"}},"required":["name","baseCurrency","targetCurrencies"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/organizations/deployments/{deploymentId}":{"get":{"tags":["Organisation deployment"],"operationId":"platform.organizations.organizationsDeployStatus","parameters":[{"name":"deploymentId","in":"path","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"Current organization deployment phase. `data.status` is in-progress, completed, failed, or absent when no run exists. `aaIntent` and `chainId` appear when they were stored for this run. Poll this resource instead of consuming the SSE stream. Repeating the read is safe.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"deploymentId":{"type":"string"},"status":{"type":"string","enum":["in-progress","completed","failed","absent"]},"tree":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string"},"type":{"type":"string","enum":["wallet","system","registry","role","identity","compliance","feed","factory","addon","paymaster","other"]},"status":{"type":"string","enum":["pending","in-progress","awaiting-approval","waiting","completed","failed"]},"error":{"type":"string"},"children":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string"},"type":{"type":"string","enum":["wallet","system","registry","role","identity","compliance","feed","factory","addon","paymaster","other"]},"status":{"type":"string","enum":["pending","in-progress","awaiting-approval","waiting","completed","failed"]},"error":{"type":"string"}},"required":["id","label","type","status"],"additionalProperties":false}}},"required":["id","label","type","status"],"additionalProperties":false}},"success":{"type":"boolean"},"aaIntent":{"type":"boolean"},"accountMode":{"$ref":"#/components/schemas/AccountMode"},"chainId":{"$ref":"#/components/schemas/PersistableChainIdEncoded_1"},"failedSteps":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string"},"error":{"type":"string"},"wireError":{"type":"object","properties":{"dalpCode":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"selector":{"type":"string"},"solidityError":{"type":"string"},"id":{"type":"string"},"category":{"type":"string"},"why":{"type":"string"},"fix":{"type":"string"},"suggestedAction":{"type":"string"},"args":{"type":"object","additionalProperties":{"type":"string"}},"correlationId":{"type":"string"},"requestId":{"type":"string"}},"required":["dalpCode","message","retryable","selector","solidityError"],"additionalProperties":false}},"required":["id","label"],"additionalProperties":false}},"failureReason":{"type":"string"}},"required":["deploymentId","status"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"deploymentId":"org_northwind_coffee","status":"completed","tree":[{"id":"organization","label":"Organization","type":"other","status":"completed","children":[{"id":"system","label":"System","type":"system","status":"completed"},{"id":"identity","label":"Identity","type":"identity","status":"completed"}]}],"success":true,"aaIntent":true,"chainId":11155111},"links":{"self":"/v2/organizations/deployments/org_northwind_coffee"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the current stored phase of the organization deployment named by deploymentId. Status is a projection of the workflow, not a live chain probe. data.status is in-progress, completed, failed, or absent when no run exists. aaIntent and chainId appear when they were stored for this run. Poll this resource after a 202 create. Repeating the read is safe.","summary":"Read organization deployment status","x-dalp-auth":"session-or-api-key"}},"/api/v2/organizations/deployments/{deploymentId}/stream":{"get":{"tags":["Organisation deployment"],"operationId":"platform.organizations.organizationsDeployStream","parameters":[{"name":"deploymentId","in":"path","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"Each SSE data event is one live organization-deployment payload: a tree snapshot, step update, funding requirement, complete, or error. Keep the connection open until complete or error. After a drop, reconnect with the same deploymentId or poll the JSON status read.","content":{"text/event-stream":{"schema":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","enum":["tree"]},"nodes":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string"},"type":{"type":"string","enum":["wallet","system","registry","role","identity","compliance","feed","factory","addon","paymaster","other"]},"status":{"type":"string","enum":["pending","in-progress","awaiting-approval","waiting","completed","failed"]},"error":{"type":"string"},"children":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string"},"type":{"type":"string","enum":["wallet","system","registry","role","identity","compliance","feed","factory","addon","paymaster","other"]},"status":{"type":"string","enum":["pending","in-progress","awaiting-approval","waiting","completed","failed"]},"error":{"type":"string"}},"required":["id","label","type","status"],"additionalProperties":true}}},"required":["id","label","type","status"],"additionalProperties":true}}},"required":["type","nodes"],"additionalProperties":true},{"type":"object","properties":{"type":{"type":"string","enum":["requirement-required"]},"requirementId":{"type":"string","pattern":"^[\\w:-]+$"},"kind":{"type":"string","enum":["gas"]},"payload":{"type":"object","properties":{"role":{"type":"string","enum":["org-creator-eoa","member-admission-eoa","token-creator-eoa","org-vault-eoa","org-bundler-eoa","org-relayer-eoa","aa-runway-eoa","queued-write-eoa","smart-account","paymaster-deposit"]},"subjectOwner":{"type":"string","enum":["caller","organisation","platform"]},"chainId":{"type":"integer","exclusiveMinimum":0,"description":"EVM chain identifier.","examples":[11155111]},"chainName":{"type":"string","minLength":1},"address":{"type":"string","minLength":1},"nativeCurrency":{"type":"object","properties":{"name":{"type":"string","description":"Full name of the chain's native currency.","examples":["Ether"]},"symbol":{"type":"string","description":"Ticker printed beside a native amount.","examples":["ETH"]},"decimals":{"type":"integer"}},"required":["name","symbol","decimals"],"additionalProperties":true,"description":"The chain's own currency, carried whole so a reader can render a native amount without looking it up."},"shortfall":{"type":"string","pattern":"^\\d+$"},"recommendedTotal":{"type":"string","pattern":"^\\d+$"},"deployCost":{"type":"string","pattern":"^\\d+$"},"opsAllowance":{"type":"string","pattern":"^\\d+$"},"bufferPct":{"type":"integer"},"devCommand":{"type":"string","minLength":1},"opName":{"type":"string","minLength":1},"seq":{"type":"integer"},"alreadySent":{"type":"string","pattern":"^\\d+$"},"expiresAt":{"type":"integer"},"entryPointAddress":{"type":"string","minLength":1}},"required":["role","chainId","chainName","address","nativeCurrency","shortfall","recommendedTotal","deployCost","opsAllowance","bufferPct","opName","seq","alreadySent"],"additionalProperties":true}},"required":["type","requirementId","kind","payload"],"additionalProperties":true},{"type":"object","properties":{"type":{"type":"string","enum":["requirement-resolved"]},"requirementId":{"type":"string","pattern":"^[\\w:-]+$"},"kind":{"type":"string","enum":["gas"]},"resolution":{"type":"object","properties":{"alreadySent":{"type":"string","pattern":"^\\d+$"}},"required":["alreadySent"],"additionalProperties":true}},"required":["type","requirementId","kind","resolution"],"additionalProperties":true},{"type":"object","properties":{"type":{"type":"string","enum":["complete"]},"success":{"type":"boolean"},"failedSteps":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string"},"error":{"type":"string"},"wireError":{"type":"object","properties":{"dalpCode":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"selector":{"type":"string"},"solidityError":{"type":"string"},"id":{"type":"string"},"category":{"type":"string"},"why":{"type":"string"},"fix":{"type":"string"},"suggestedAction":{"type":"string"},"args":{"type":"object","additionalProperties":{"type":"string"}},"correlationId":{"type":"string"},"requestId":{"type":"string"}},"required":["dalpCode","message","retryable","selector","solidityError"],"additionalProperties":true}},"required":["id","label"],"additionalProperties":true}},"failureReason":{"type":"string"}},"required":["type","success"],"additionalProperties":true}]},"x-effect-stream":{"encoding":"sse","causeSchema":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["Fail"]},"error":{"not":{}}},"required":["_tag","error"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["Die"]},"defect":{}},"required":["_tag","defect"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["Interrupt"]},"fiberId":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["_tag","fiberId"],"additionalProperties":false}]}},"errorSchema":{"not":{}},"failureEvent":"effect/http-api/stream/failure"},"examples":{"example-1":{"value":{"type":"tree","nodes":[{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","label":"Pay in USDC","type":"wallet","status":"pending","error":"Transaction 019c0000-0000-7000-8000-000000000010 is already COMPLETED and there is nothing left to cancel.","children":[{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","label":"Pay in USDC","type":"wallet","status":"pending","error":"Transaction 019c0000-0000-7000-8000-000000000010 is already COMPLETED and there is nothing left to cancel."}]}]}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Opens a server-sent event stream for the organization deployment named by deploymentId. Events are live progress from the running workflow, not a stored snapshot. Keep the connection open until a complete or error event. Use the JSON status read when a client cannot keep an SSE connection.","summary":"Stream organization deployment events","x-dalp-auth":"session-or-api-key"}},"/api/v2/organizations/members":{"post":{"tags":["Organisation deployment"],"operationId":"platform.organizations.organizationsAddMember","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The membership as stored. `data` is the new member row. `links.self` is the members collection for a later list.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"memberId":{"type":"string","minLength":1},"userId":{"$ref":"#/components/schemas/UserId"},"organizationId":{"$ref":"#/components/schemas/OrganizationId"},"role":{"type":"string","enum":["owner","member"]}},"required":["memberId","userId","organizationId","role"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"memberId":"mem_northwind_treasury","userId":"user_northwind_treasury","organizationId":"org_northwind_coffee","role":"member"},"links":{"self":"/v2/organizations/members"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Adds an existing user to the active organization as owner or member. The write waits until the membership row is stored and does not queue a workflow. The user must already exist. Repeating the same user returns a conflict rather than a second membership.","summary":"Add a member to the organization","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"userId":{"$ref":"#/components/schemas/UserId"},"role":{"type":"string","enum":["owner","member"]}},"required":["userId","role"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/organizations/members/{userId}":{"delete":{"tags":["Organisation deployment"],"operationId":"platform.organizations.organizationsRemoveMember","parameters":[{"name":"userId","in":"path","schema":{"type":"string","description":"The internal database ID of the user whose membership in the active organization ends"},"required":true},{"name":"organizationId","in":"query","schema":{"type":"string","minLength":1,"description":"The organization the caller believes it is removing the member from. When present the platform compares it to the session's active organization and refuses the request on a mismatch, so a session switched elsewhere cannot redirect the removal at another tenant. Omit it to remove from whatever organization the session is active in."},"required":false},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The membership that was removed. `data.revokedSessionCount` counts the user's sessions in this organization that ended with it. `links.self` is the members collection for a later list.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"memberId":{"type":"string","description":"Identifier of the membership row that was removed.","examples":["mem_northwind_treasury"]},"userId":{"type":"string","description":"User who left the organization.","examples":["user_northwind_treasury"]},"organizationId":{"$ref":"#/components/schemas/OrganizationId"},"role":{"type":"string","description":"Role the removed membership held. owner or member.","examples":["member"]},"revokedSessionCount":{"type":"integer","description":"How many of the user's sessions in this organization were revoked with the membership.","examples":[2]}},"required":["memberId","userId","organizationId","role","revokedSessionCount"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"memberId":"mem_northwind_treasury","userId":"user_northwind_treasury","organizationId":"org_northwind_coffee","role":"member","revokedSessionCount":2},"links":{"self":"/v2/organizations/members"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Removes the named user from the active organization and revokes that user's sessions in it. Both changes commit in one transaction: either the sessions end and the membership is gone, or nothing changes. The caller must be an organization owner with the identity manager role and cannot remove their own membership. Removing the organization's only owner returns a conflict. The write does not queue a workflow. Repeating the call after the membership is gone returns 404.","summary":"Remove a member from the organization","x-dalp-auth":"session-or-api-key"}},"/api/v2/organizations/networks":{"post":{"tags":["Organisation deployment"],"operationId":"platform.organizations.organizationsAddNetwork","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The added network as accepted. `data.status` is the lifecycle immediately after the write. Poll the deployment status URL in `links.self` for progress. This route starts an asynchronous system deploy.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"organizationId":{"$ref":"#/components/schemas/OrganizationId"},"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"status":{"type":"string","enum":["pending","deploying","active","failed","disabled"]}},"required":["organizationId","chainId","status"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"organizationId":"org_northwind_coffee","chainId":11155111,"status":"pending"},"links":{"self":"/v2/organizations/deployments/org_northwind_coffee"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Adds a deployment-enabled network to the active organization and queues that chain's system deployment. chainId must not already be added. Optional baseCurrency overrides the organization base currency for this chain. The write returns as soon as the pending row is stored; poll links.self for progress. This is not a live chain write beyond starting the workflow.","summary":"Add a network to the organization","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"baseCurrency":{"$ref":"#/components/schemas/FiatCurrency"}},"required":["chainId"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"},"get":{"tags":["Organisation deployment"],"operationId":"platform.organizations.organizationsNetworks","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000}},"allOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"object","properties":{"eq":{"anyOf":[{"type":"string"},{"type":"number"}]},"ne":{"anyOf":[{"type":"string"},{"type":"number"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]}},"additionalProperties":false}]}}]},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"One page of networks the active organization can select, across every ledger family. An EVM row is one organization_systems chain with its deploy lifecycle; a Canton row is a configured participant network. Rows are blocked by family, EVM first. `meta.total` counts every matching row in both families.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"family":{"type":"string","enum":["evm","canton"]},"chainId":{"anyOf":[{"$ref":"#/components/schemas/ChainIdEncoded_1"},{"type":"null"}]},"networkName":{"anyOf":[{"type":"string"},{"type":"null"}]},"chainName":{"anyOf":[{"type":"string"},{"type":"null"}]},"explorerUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"nativeCurrency":{"anyOf":[{"type":"object","properties":{"name":{"type":"string"},"symbol":{"type":"string"},"decimals":{"type":"integer","minimum":0,"maximum":18}},"required":["name","symbol","decimals"],"additionalProperties":false},{"type":"null"}]},"status":{"type":"string","enum":["pending","deploying","active","failed","disabled"]},"systemAddress":{"anyOf":[{"type":"string"},{"type":"null"}]},"isDefault":{"type":"boolean"},"aaReady":{"type":"boolean"},"fundingMode":{"type":"string","enum":["not-needed","reserves","relayer","signers"],"description":"Who pays gas for the organization's transactions on this network. `not-needed`: the chain charges no gas, so nothing needs funding. `reserves`: the chain charges gas and transactions route through account abstraction, so the submission and sponsorship reserves pay. `relayer`: the chain charges gas and the organization relays its users' transactions as meta transactions, so the relayer wallet pays. `signers`: the chain charges gas and each signer pays from their own wallet."},"lowBalanceMarkWei":{"anyOf":[{"$ref":"#/components/schemas/ApiBigIntEncoded"},{"type":"null"}],"description":"The balance, in the smallest unit of the network's native currency, under which a wallet that pays gas on this network reads as low. Null when the network's native currency is unknown."},"synchronizerId":{"anyOf":[{"type":"string"},{"type":"null"}]},"participantId":{"anyOf":[{"type":"string"},{"type":"null"}]},"failureReason":{"type":"string"}},"required":["family","chainId","networkName","chainName","explorerUrl","nativeCurrency","status","systemAddress","isDefault","aaReady","fundingMode","lowBalanceMarkWei","synchronizerId","participantId"],"additionalProperties":false}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"family":"evm","chainId":11155111,"networkName":"sepolia","chainName":"sepolia","explorerUrl":"https://sepolia.etherscan.io","nativeCurrency":{"name":"Sepolia Ether","symbol":"ETH","decimals":18},"status":"active","systemAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isDefault":true,"aaReady":true,"fundingMode":"reserves","lowBalanceMarkWei":"100000000000000000","synchronizerId":null,"participantId":null},{"family":"canton","chainId":null,"networkName":"canton-local","chainName":null,"explorerUrl":null,"nativeCurrency":null,"status":"active","systemAddress":null,"isDefault":true,"aaReady":false,"fundingMode":"not-needed","lowBalanceMarkWei":null,"synchronizerId":"sync::1220a1b2c3d4","participantId":"participant1"}],"meta":{"total":2},"links":{"self":"/v2/organizations/networks?sort=chainId&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/organizations/networks?sort=chainId&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/organizations/networks?sort=chainId&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of networks already added to the active organization. Each row is the stored organization system for one chain, including deploy lifecycle, system address, and whether the chain is the default. The page is stored data, not a live chain read. Default sort is chainId. Repeating the read is safe.","summary":"List networks added to the organization","x-dalp-auth":"session-or-api-key"}},"/api/v2/organizations/networks/enabled":{"get":{"tags":["Organisation deployment"],"operationId":"platform.organizations.organizationsEnabledNetworks","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000}},"allOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"object","properties":{"eq":{"anyOf":[{"type":"string"},{"type":"number"}]},"ne":{"anyOf":[{"type":"string"},{"type":"number"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]}},"additionalProperties":false}]}}]},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"One page of deployment-enabled networks that are not yet added to the active organization. Use this list to populate an add-network picker.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"networkName":{"type":"string"},"chainName":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Built-in viem chain identifier, or null for a custom definition."}},"required":["chainId","networkName","chainName"],"additionalProperties":false}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"chainId":1,"networkName":"ethereum","chainName":"mainnet"}],"meta":{"total":1},"links":{"self":"/v2/organizations/networks/enabled?sort=chainId&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/organizations/networks/enabled?sort=chainId&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/organizations/networks/enabled?sort=chainId&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of deployment-enabled networks that are not yet added to the active organization. Use this list to populate an add-network picker. The page is stored catalog data minus the organization's added chains. Default sort is chainId. Repeating the read is safe.","summary":"List networks that can still be added","x-dalp-auth":"session-or-api-key"}},"/api/v2/organizations/networks/deployable":{"get":{"tags":["Organisation deployment"],"operationId":"platform.organizations.organizationsDeployableNetworks","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000}},"allOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"object","properties":{"eq":{"anyOf":[{"type":"string"},{"type":"number"}]},"ne":{"anyOf":[{"type":"string"},{"type":"number"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]}},"additionalProperties":false}]}}]},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"One page of networks an initial organization system can deploy on. No active organization is required. Only enabled, resolvable networks with a usable system factory appear. Rows are unique by chainId.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"networkName":{"type":"string"},"chainName":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Built-in viem chain identifier, or null for a custom definition."},"isDefault":{"type":"boolean","description":"True on the platform default network, which the create-organization form preselects."}},"required":["chainId","networkName","chainName","isDefault"],"additionalProperties":false}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"chainId":11155111,"networkName":"sepolia","chainName":"sepolia","isDefault":true}],"meta":{"total":1},"links":{"self":"/v2/organizations/networks/deployable?sort=chainId&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/organizations/networks/deployable?sort=chainId&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/organizations/networks/deployable?sort=chainId&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of networks an initial organization system can deploy on. No active organization is required. Only enabled, resolvable networks with a usable system factory appear. Rows are unique by chainId. The page is stored catalog data, not a live chain read. Use this list before create-organization. Repeating the read is safe.","summary":"List networks an organization can deploy on","x-dalp-auth":"session-or-api-key"}},"/api/v2/organizations/networks/bundler":{"post":{"tags":["Organisation deployment"],"operationId":"platform.organizations.organizationsProvisionBundler","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The organization bundler wallet on the requested chain. `data.provisioned` is `created` when this call minted it and `reused` when one was already bound, so repeating the call is safe. `data.funding` says whether the wallet can pay: `funded`, `ask-raised` when the operator now owes it gas, or `unknown` when neither could be established.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"organizationId":{"$ref":"#/components/schemas/OrganizationId"},"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"bundlerAddress":{"$ref":"#/components/schemas/EvmAddress"},"provisioned":{"type":"string","enum":["created","reused"]},"funding":{"type":"string","enum":["funded","ask-raised","unknown"]}},"required":["organizationId","chainId","bundlerAddress","provisioned","funding"],"additionalProperties":false}},"required":["data"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"organizationId":"org_01J8ZC0000000000000000000","chainId":11155111,"bundlerAddress":"0x1111111111111111111111111111111111111111","provisioned":"created","funding":"ask-raised"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Binds the organization's bundler wallet on a network the organization already holds an active system on, repairing a system that reached active without one. The caller needs the organization administrator role and the on-chain admin role on that chain. Repeating the call is safe: data.provisioned reports created or reused. This writes no setting and adds no network.","summary":"Provision the organization bundler wallet on a network","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"}},"required":["chainId"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/role-invitations":{"post":{"tags":["Organisation deployment"],"operationId":"platform.invitations.invitationsInviteWithRoles","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The stored invitation. Reuse `id` for resend and deploy. `onChainRoles` are the roles that will be granted on acceptance. `expiresAt` is when the invitation lapses.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9_-]+$"},"email":{"type":"string"},"role":{"type":"string","enum":["member","owner"]},"status":{"type":"string","enum":["pending","accepted","rejected","canceled"]},"expiresAt":{"$ref":"#/components/schemas/TimestampEncoded"},"onChainRoles":{"type":"array","items":{"$ref":"#/components/schemas/SystemAccessControlRole"}}},"required":["id","email","role","status","expiresAt","onChainRoles"],"additionalProperties":false},"examples":{"example-1":{"value":{"id":"inv_northwind_treasury_7k2m","email":"treasury@northwind.example","role":"member","status":"pending","onChainRoles":["tokenManager"],"expiresAt":"2026-04-19T09:30:00.000Z"}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["INVITATION_CALLER_CREDENTIAL_REJECTED","SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"INVITATION_CALLER_CREDENTIAL_REJECTED","status":401,"message":"This request's API key was rejected","data":{"id":"DALP-9093","why":"The credential presented with this request is unknown, switched off, past its expiry, over its usage allowance, or tied to a blocked account, so the invitation was never attempted.","fix":"Rotate to an active API key, re-enable the existing one, or raise its usage allowance, then send the invitation again.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","INVITATION_CREATE_NOT_PERMITTED","INVITATION_LIMIT_REACHED","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED","platform.http.INVITATION_CANCELED","platform.http.INVITATION_EXPIRED","platform.http.INVITATION_ORGANIZATION_ARCHIVED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","INVITATION_INVITER_NOT_A_MEMBER","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"INVITATION_INVITER_NOT_A_MEMBER","status":404,"message":"No organization is available to invite this person into","data":{"id":"DALP-9090","why":"The membership service could not resolve an organization to invite into: the current session may have no organization selected, or the acting account may no longer hold a membership in the organization it points at.","fix":"Select an organization the acting account belongs to and send the invitation again. If one is already selected, ask an organization owner to confirm the acting account is still a member of it.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","INVITATION_RECIPIENT_ALREADY_A_MEMBER","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","platform.http.INVITATION_ALREADY_ACCEPTED","platform.http.INVITATION_NATIONAL_ID_CONFLICT"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED","platform.http.INVITATION_ROLES_NOT_AUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"platform.http.INVITATION_ROLES_NOT_AUTHORIZED","status":412,"message":"The invitation's roles were never authorized","data":{"id":"DALP-12383","why":"The invitation grants on-chain roles that no verified wallet authorized.","fix":"Ask an organization owner to authorize the invitation's roles with their wallet, or to send a new invitation.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["INVITATION_CALLER_RATE_LIMITED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Creates an invitation in the active organization that pre-assigns at least one system on-chain role. An organization owner or platform administrator calls it: an interactive session sends walletVerification, while an API key (CLI, automation) may omit it. The write stores the invitation and sends the invite email immediately. The roles are granted later, when the invitee accepts and the acceptance workflow finishes. Reuse the returned id for resend, deploy, or the has-roles read.","summary":"Invite a member with on-chain roles","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string"},"role":{"anyOf":[{"type":"string","enum":["member","owner"]},{"type":"null"}]},"onChainRoles":{"type":"array","items":{"$ref":"#/components/schemas/SystemAccessControlRole"}},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["email","onChainRoles"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/role-invitation-resends":{"post":{"tags":["Organisation deployment"],"operationId":"platform.invitations.invitationsResendWithRoles","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The re-issued invitation. `onChainRoles` are omitted on purpose so the server-sourced role set is not echoed. Reuse `id` for later deploy or status reads.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9_-]+$"},"email":{"type":"string"},"role":{"type":"string","enum":["member","owner"]},"status":{"type":"string","enum":["pending","accepted","rejected","canceled"]},"expiresAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["id","email","role","status","expiresAt"],"additionalProperties":false},"examples":{"example-1":{"value":{"id":"inv_northwind_treasury_7k2m","email":"treasury@northwind.example","role":"member","status":"pending","expiresAt":"2026-04-19T09:30:00.000Z"}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["INVITATION_CALLER_CREDENTIAL_REJECTED","SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"INVITATION_CALLER_CREDENTIAL_REJECTED","status":401,"message":"This request's API key was rejected","data":{"id":"DALP-9093","why":"The credential presented with this request is unknown, switched off, past its expiry, over its usage allowance, or tied to a blocked account, so the invitation was never attempted.","fix":"Rotate to an active API key, re-enable the existing one, or raise its usage allowance, then send the invitation again.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","INVITATION_CREATE_NOT_PERMITTED","INVITATION_LIMIT_REACHED","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED","platform.http.INVITATION_CANCELED","platform.http.INVITATION_EXPIRED","platform.http.INVITATION_ORGANIZATION_ARCHIVED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","INVITATION_INVITER_NOT_A_MEMBER","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"INVITATION_INVITER_NOT_A_MEMBER","status":404,"message":"No organization is available to invite this person into","data":{"id":"DALP-9090","why":"The membership service could not resolve an organization to invite into: the current session may have no organization selected, or the acting account may no longer hold a membership in the organization it points at.","fix":"Select an organization the acting account belongs to and send the invitation again. If one is already selected, ask an organization owner to confirm the acting account is still a member of it.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","INVITATION_RECIPIENT_ALREADY_A_MEMBER","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","platform.http.INVITATION_ALREADY_ACCEPTED","platform.http.INVITATION_NATIONAL_ID_CONFLICT"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED","platform.http.INVITATION_ROLES_NOT_AUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"platform.http.INVITATION_ROLES_NOT_AUTHORIZED","status":412,"message":"The invitation's roles were never authorized","data":{"id":"DALP-12383","why":"The invitation grants on-chain roles that no verified wallet authorized.","fix":"Ask an organization owner to authorize the invitation's roles with their wallet, or to send a new invitation.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["INVITATION_CALLER_RATE_LIMITED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Re-issues the stored invitation named by invitationId and keeps the on-chain roles already recorded on that row. The request never accepts a role list. An organization owner or platform administrator calls it: an interactive session sends walletVerification, while an API key (CLI, automation) may omit it. The write sends the invite email immediately. The response omits onChainRoles on purpose. Reuse the returned id for later deploy or status reads.","summary":"Resend a role-bearing invitation","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"invitationId":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9_-]+$"},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["invitationId"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/invitation-acceptances":{"post":{"tags":["Organisation deployment"],"operationId":"platform.invitations.invitationsAccept","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous deploy result. `deploymentId` is the identifier to poll or stream. `tree` is the redacted deployment tree at completion. `success` is true when every step completed. A terminal failure is an error response, not `success: false`.","content":{"application/json":{"schema":{"type":"object","properties":{"deploymentId":{"type":"string"},"tree":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string"},"type":{"type":"string","enum":["wallet","system","registry","role","identity","compliance","feed","factory","addon","paymaster","other"]},"status":{"type":"string","enum":["pending","in-progress","awaiting-approval","waiting","completed","failed"]},"error":{"type":"string"},"children":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string"},"type":{"type":"string","enum":["wallet","system","registry","role","identity","compliance","feed","factory","addon","paymaster","other"]},"status":{"type":"string","enum":["pending","in-progress","awaiting-approval","waiting","completed","failed"]},"error":{"type":"string"}},"required":["id","label","type","status"],"additionalProperties":false}}},"required":["id","label","type","status"],"additionalProperties":false}},"success":{"type":"boolean","enum":[true]},"failedSteps":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string"},"error":{"type":"string"},"wireError":{"type":"object","properties":{"dalpCode":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"selector":{"type":"string"},"solidityError":{"type":"string"},"id":{"type":"string"},"category":{"type":"string"},"why":{"type":"string"},"fix":{"type":"string"},"suggestedAction":{"type":"string"},"args":{"type":"object","additionalProperties":{"type":"string"}},"correlationId":{"type":"string"},"requestId":{"type":"string"}},"required":["dalpCode","message","retryable","selector","solidityError"],"additionalProperties":false}},"required":["id","label"],"additionalProperties":false}}},"required":["deploymentId","tree","success"],"additionalProperties":false},"examples":{"example-1":{"value":{"deploymentId":"org_northwind_coffee","tree":[{"id":"organization","label":"Organization","type":"other","status":"completed","children":[{"id":"system","label":"System","type":"system","status":"completed"},{"id":"identity","label":"Identity","type":"identity","status":"completed"}]}],"success":true}}}}},"headers":{}},"202":{"description":"Asynchronous deployment acceptance. `deploymentId` identifies the queued deployment to poll or stream. `tree` is the current redacted deployment tree and may still be empty.","content":{"application/json":{"schema":{"type":"object","properties":{"deploymentId":{"type":"string"},"tree":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string"},"type":{"type":"string","enum":["wallet","system","registry","role","identity","compliance","feed","factory","addon","paymaster","other"]},"status":{"type":"string","enum":["pending","in-progress","awaiting-approval","waiting","completed","failed"]},"error":{"type":"string"},"children":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string"},"type":{"type":"string","enum":["wallet","system","registry","role","identity","compliance","feed","factory","addon","paymaster","other"]},"status":{"type":"string","enum":["pending","in-progress","awaiting-approval","waiting","completed","failed"]},"error":{"type":"string"}},"required":["id","label","type","status"],"additionalProperties":false}}},"required":["id","label","type","status"],"additionalProperties":false}},"success":{"type":"boolean","enum":[true]},"failedSteps":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string"},"error":{"type":"string"},"wireError":{"type":"object","properties":{"dalpCode":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"selector":{"type":"string"},"solidityError":{"type":"string"},"id":{"type":"string"},"category":{"type":"string"},"why":{"type":"string"},"fix":{"type":"string"},"suggestedAction":{"type":"string"},"args":{"type":"object","additionalProperties":{"type":"string"}},"correlationId":{"type":"string"},"requestId":{"type":"string"}},"required":["dalpCode","message","retryable","selector","solidityError"],"additionalProperties":false}},"required":["id","label"],"additionalProperties":false}}},"required":["deploymentId","tree"],"additionalProperties":false},"examples":{"example-1":{"value":{"deploymentId":"org_northwind_coffee","tree":[]}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED","platform.http.INVITATION_CANCELED","platform.http.INVITATION_EXPIRED","platform.http.INVITATION_ORGANIZATION_ARCHIVED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","platform.http.INVITATION_ALREADY_ACCEPTED","platform.http.INVITATION_NATIONAL_ID_CONFLICT"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED","platform.http.INVITATION_ROLES_NOT_AUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"platform.http.INVITATION_ROLES_NOT_AUTHORIZED","status":412,"message":"The invitation's roles were never authorized","data":{"id":"DALP-12383","why":"The invitation grants on-chain roles that no verified wallet authorized.","fix":"Ask an organization owner to authorize the invitation's roles with their wallet, or to send a new invitation.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.REINDEXING","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Accepts the stored invitation named by invitationId and starts the same onboarding workflow the deploy route uses. The platform decides from on-chain wallet state whether to skip wallet creation. This write runs before the invitee has an active organization. The platform queues the workflow and then waits according to the Prefer header; a long run returns 202. Poll or stream the returned deploymentId until the tree is complete.","summary":"Accept an invitation and start its deployment","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"invitationId":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9_-]+$"},"custodyAccountId":{"$ref":"#/components/schemas/CustodyAccountId"},"actingParticipantId":{"$ref":"#/components/schemas/ParticipantId"}},"required":["invitationId","custodyAccountId"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/invitations":{"post":{"tags":["Organisation deployment"],"operationId":"platform.invitations.invitationsDeploy","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous deploy result. `deploymentId` is the identifier to poll or stream. `tree` is the redacted deployment tree at completion. `success` is true when every step completed. A terminal failure is an error response, not `success: false`.","content":{"application/json":{"schema":{"type":"object","properties":{"deploymentId":{"type":"string"},"tree":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string"},"type":{"type":"string","enum":["wallet","system","registry","role","identity","compliance","feed","factory","addon","paymaster","other"]},"status":{"type":"string","enum":["pending","in-progress","awaiting-approval","waiting","completed","failed"]},"error":{"type":"string"},"children":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string"},"type":{"type":"string","enum":["wallet","system","registry","role","identity","compliance","feed","factory","addon","paymaster","other"]},"status":{"type":"string","enum":["pending","in-progress","awaiting-approval","waiting","completed","failed"]},"error":{"type":"string"}},"required":["id","label","type","status"],"additionalProperties":false}}},"required":["id","label","type","status"],"additionalProperties":false}},"success":{"type":"boolean","enum":[true]},"failedSteps":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string"},"error":{"type":"string"},"wireError":{"type":"object","properties":{"dalpCode":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"selector":{"type":"string"},"solidityError":{"type":"string"},"id":{"type":"string"},"category":{"type":"string"},"why":{"type":"string"},"fix":{"type":"string"},"suggestedAction":{"type":"string"},"args":{"type":"object","additionalProperties":{"type":"string"}},"correlationId":{"type":"string"},"requestId":{"type":"string"}},"required":["dalpCode","message","retryable","selector","solidityError"],"additionalProperties":false}},"required":["id","label"],"additionalProperties":false}}},"required":["deploymentId","tree","success"],"additionalProperties":false},"examples":{"example-1":{"value":{"deploymentId":"org_northwind_coffee","tree":[{"id":"organization","label":"Organization","type":"other","status":"completed","children":[{"id":"system","label":"System","type":"system","status":"completed"},{"id":"identity","label":"Identity","type":"identity","status":"completed"}]}],"success":true}}}}},"headers":{}},"202":{"description":"Asynchronous deployment acceptance. `deploymentId` identifies the queued deployment to poll or stream. `tree` is the current redacted deployment tree and may still be empty.","content":{"application/json":{"schema":{"type":"object","properties":{"deploymentId":{"type":"string"},"tree":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string"},"type":{"type":"string","enum":["wallet","system","registry","role","identity","compliance","feed","factory","addon","paymaster","other"]},"status":{"type":"string","enum":["pending","in-progress","awaiting-approval","waiting","completed","failed"]},"error":{"type":"string"},"children":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string"},"type":{"type":"string","enum":["wallet","system","registry","role","identity","compliance","feed","factory","addon","paymaster","other"]},"status":{"type":"string","enum":["pending","in-progress","awaiting-approval","waiting","completed","failed"]},"error":{"type":"string"}},"required":["id","label","type","status"],"additionalProperties":false}}},"required":["id","label","type","status"],"additionalProperties":false}},"success":{"type":"boolean","enum":[true]},"failedSteps":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string"},"error":{"type":"string"},"wireError":{"type":"object","properties":{"dalpCode":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"selector":{"type":"string"},"solidityError":{"type":"string"},"id":{"type":"string"},"category":{"type":"string"},"why":{"type":"string"},"fix":{"type":"string"},"suggestedAction":{"type":"string"},"args":{"type":"object","additionalProperties":{"type":"string"}},"correlationId":{"type":"string"},"requestId":{"type":"string"}},"required":["dalpCode","message","retryable","selector","solidityError"],"additionalProperties":false}},"required":["id","label"],"additionalProperties":false}}},"required":["deploymentId","tree"],"additionalProperties":false},"examples":{"example-1":{"value":{"deploymentId":"org_northwind_coffee","tree":[]}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED","platform.http.INVITATION_CANCELED","platform.http.INVITATION_EXPIRED","platform.http.INVITATION_ORGANIZATION_ARCHIVED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","platform.http.INVITATION_ALREADY_ACCEPTED","platform.http.INVITATION_NATIONAL_ID_CONFLICT"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED","platform.http.INVITATION_ROLES_NOT_AUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"platform.http.INVITATION_ROLES_NOT_AUTHORIZED","status":412,"message":"The invitation's roles were never authorized","data":{"id":"DALP-12383","why":"The invitation grants on-chain roles that no verified wallet authorized.","fix":"Ask an organization owner to authorize the invitation's roles with their wallet, or to send a new invitation.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.REINDEXING","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Starts the onboarding workflow for the stored invitation named by invitationId. Organization, user, and wallet inputs come from that row, not from the body. This write runs before the invitee has an active organization. The platform queues the workflow and then waits according to the Prefer header; a long run returns 202 and the client should poll or stream the returned deploymentId.","summary":"Start an invitation deployment","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"invitationId":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9_-]+$"},"custodyAccountId":{"$ref":"#/components/schemas/CustodyAccountId"},"actingParticipantId":{"$ref":"#/components/schemas/ParticipantId"}},"required":["invitationId","custodyAccountId"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/invitations/deployments/{deploymentId}":{"get":{"tags":["Organisation deployment"],"operationId":"platform.invitations.invitationsDeployStatus","parameters":[{"name":"deploymentId","in":"path","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"Current invitation deployment phase. `data.status` is in-progress, completed, failed, or absent when no run exists. Poll this resource instead of consuming the SSE stream. Repeating the read is safe.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"deploymentId":{"type":"string"},"status":{"type":"string","enum":["in-progress","completed","failed","absent"]},"tree":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string"},"type":{"type":"string","enum":["wallet","system","registry","role","identity","compliance","feed","factory","addon","paymaster","other"]},"status":{"type":"string","enum":["pending","in-progress","awaiting-approval","waiting","completed","failed"]},"error":{"type":"string"},"children":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string"},"type":{"type":"string","enum":["wallet","system","registry","role","identity","compliance","feed","factory","addon","paymaster","other"]},"status":{"type":"string","enum":["pending","in-progress","awaiting-approval","waiting","completed","failed"]},"error":{"type":"string"}},"required":["id","label","type","status"],"additionalProperties":false}}},"required":["id","label","type","status"],"additionalProperties":false}},"success":{"type":"boolean"},"failedSteps":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string"},"error":{"type":"string"},"wireError":{"type":"object","properties":{"dalpCode":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"selector":{"type":"string"},"solidityError":{"type":"string"},"id":{"type":"string"},"category":{"type":"string"},"why":{"type":"string"},"fix":{"type":"string"},"suggestedAction":{"type":"string"},"args":{"type":"object","additionalProperties":{"type":"string"}},"correlationId":{"type":"string"},"requestId":{"type":"string"}},"required":["dalpCode","message","retryable","selector","solidityError"],"additionalProperties":false}},"required":["id","label"],"additionalProperties":false}}},"required":["deploymentId","status"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"deploymentId":"inv_northwind_treasury_7k2m","status":"completed","tree":[{"id":"organization","label":"Organization","type":"other","status":"completed","children":[{"id":"system","label":"System","type":"system","status":"completed"},{"id":"identity","label":"Identity","type":"identity","status":"completed"}]}],"success":true},"links":{"self":"/v2/invitations/deployments/inv_northwind_treasury_7k2m"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED","platform.http.INVITATION_CANCELED","platform.http.INVITATION_EXPIRED","platform.http.INVITATION_ORGANIZATION_ARCHIVED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","platform.http.INVITATION_ALREADY_ACCEPTED","platform.http.INVITATION_NATIONAL_ID_CONFLICT"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED","platform.http.INVITATION_ROLES_NOT_AUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"platform.http.INVITATION_ROLES_NOT_AUTHORIZED","status":412,"message":"The invitation's roles were never authorized","data":{"id":"DALP-12383","why":"The invitation grants on-chain roles that no verified wallet authorized.","fix":"Ask an organization owner to authorize the invitation's roles with their wallet, or to send a new invitation.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the current stored phase of the invitation deployment named by deploymentId. Status is a projection of the workflow, not a live chain probe. data.status is in-progress, completed, failed, or absent when no run exists. Poll this resource after a 202 accept or deploy. Repeating the read is safe.","summary":"Read invitation deployment status","x-dalp-auth":"session-or-api-key"}},"/api/v2/invitations/deployments/{deploymentId}/stream":{"get":{"tags":["Organisation deployment"],"operationId":"platform.invitations.invitationsDeployStream","parameters":[{"name":"deploymentId","in":"path","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"Each SSE data event is one live invitation-deployment payload: a tree snapshot, step update, funding requirement, complete, or error. Keep the connection open until complete or error. After a drop, reconnect with the same deploymentId or poll the JSON status read.","content":{"text/event-stream":{"schema":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","enum":["tree"]},"nodes":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string"},"type":{"type":"string","enum":["wallet","system","registry","role","identity","compliance","feed","factory","addon","paymaster","other"]},"status":{"type":"string","enum":["pending","in-progress","awaiting-approval","waiting","completed","failed"]},"error":{"type":"string"},"children":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string"},"type":{"type":"string","enum":["wallet","system","registry","role","identity","compliance","feed","factory","addon","paymaster","other"]},"status":{"type":"string","enum":["pending","in-progress","awaiting-approval","waiting","completed","failed"]},"error":{"type":"string"}},"required":["id","label","type","status"],"additionalProperties":true}}},"required":["id","label","type","status"],"additionalProperties":true}}},"required":["type","nodes"],"additionalProperties":true},{"type":"object","properties":{"type":{"type":"string","enum":["requirement-required"]},"requirementId":{"type":"string","pattern":"^[\\w:-]+$"},"kind":{"type":"string","enum":["gas"]},"payload":{"type":"object","properties":{"role":{"type":"string","enum":["org-creator-eoa","member-admission-eoa","token-creator-eoa","org-vault-eoa","org-bundler-eoa","org-relayer-eoa","aa-runway-eoa","queued-write-eoa","smart-account","paymaster-deposit"]},"subjectOwner":{"type":"string","enum":["caller","organisation","platform"]},"chainId":{"type":"integer","exclusiveMinimum":0,"description":"EVM chain identifier.","examples":[11155111]},"chainName":{"type":"string","minLength":1},"address":{"type":"string","minLength":1},"nativeCurrency":{"type":"object","properties":{"name":{"type":"string","description":"Full name of the chain's native currency.","examples":["Ether"]},"symbol":{"type":"string","description":"Ticker printed beside a native amount.","examples":["ETH"]},"decimals":{"type":"integer"}},"required":["name","symbol","decimals"],"additionalProperties":true,"description":"The chain's own currency, carried whole so a reader can render a native amount without looking it up."},"shortfall":{"type":"string","pattern":"^\\d+$"},"recommendedTotal":{"type":"string","pattern":"^\\d+$"},"deployCost":{"type":"string","pattern":"^\\d+$"},"opsAllowance":{"type":"string","pattern":"^\\d+$"},"bufferPct":{"type":"integer"},"devCommand":{"type":"string","minLength":1},"opName":{"type":"string","minLength":1},"seq":{"type":"integer"},"alreadySent":{"type":"string","pattern":"^\\d+$"},"expiresAt":{"type":"integer"},"entryPointAddress":{"type":"string","minLength":1}},"required":["role","chainId","chainName","address","nativeCurrency","shortfall","recommendedTotal","deployCost","opsAllowance","bufferPct","opName","seq","alreadySent"],"additionalProperties":true}},"required":["type","requirementId","kind","payload"],"additionalProperties":true},{"type":"object","properties":{"type":{"type":"string","enum":["requirement-resolved"]},"requirementId":{"type":"string","pattern":"^[\\w:-]+$"},"kind":{"type":"string","enum":["gas"]},"resolution":{"type":"object","properties":{"alreadySent":{"type":"string","pattern":"^\\d+$"}},"required":["alreadySent"],"additionalProperties":true}},"required":["type","requirementId","kind","resolution"],"additionalProperties":true},{"type":"object","properties":{"type":{"type":"string","enum":["complete"]},"success":{"type":"boolean"},"failedSteps":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string"},"error":{"type":"string"},"wireError":{"type":"object","properties":{"dalpCode":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"selector":{"type":"string"},"solidityError":{"type":"string"},"id":{"type":"string"},"category":{"type":"string"},"why":{"type":"string"},"fix":{"type":"string"},"suggestedAction":{"type":"string"},"args":{"type":"object","additionalProperties":{"type":"string"}},"correlationId":{"type":"string"},"requestId":{"type":"string"}},"required":["dalpCode","message","retryable","selector","solidityError"],"additionalProperties":true}},"required":["id","label"],"additionalProperties":true}},"failureReason":{"type":"string"}},"required":["type","success"],"additionalProperties":true}]},"x-effect-stream":{"encoding":"sse","causeSchema":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["Fail"]},"error":{"not":{}}},"required":["_tag","error"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["Die"]},"defect":{}},"required":["_tag","defect"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["Interrupt"]},"fiberId":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["_tag","fiberId"],"additionalProperties":false}]}},"errorSchema":{"not":{}},"failureEvent":"effect/http-api/stream/failure"},"examples":{"example-1":{"value":{"type":"tree","nodes":[{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","label":"Pay in USDC","type":"wallet","status":"pending","error":"Transaction 019c0000-0000-7000-8000-000000000010 is already COMPLETED and there is nothing left to cancel.","children":[{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","label":"Pay in USDC","type":"wallet","status":"pending","error":"Transaction 019c0000-0000-7000-8000-000000000010 is already COMPLETED and there is nothing left to cancel."}]}]}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED","platform.http.INVITATION_CANCELED","platform.http.INVITATION_EXPIRED","platform.http.INVITATION_ORGANIZATION_ARCHIVED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","platform.http.INVITATION_ALREADY_ACCEPTED","platform.http.INVITATION_NATIONAL_ID_CONFLICT"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED","platform.http.INVITATION_ROLES_NOT_AUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"platform.http.INVITATION_ROLES_NOT_AUTHORIZED","status":412,"message":"The invitation's roles were never authorized","data":{"id":"DALP-12383","why":"The invitation grants on-chain roles that no verified wallet authorized.","fix":"Ask an organization owner to authorize the invitation's roles with their wallet, or to send a new invitation.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Opens a server-sent event stream for the invitation deployment named by deploymentId. Events are live progress from the running workflow, not a stored snapshot. Keep the connection open until a complete or error event. Use the JSON status read when a client cannot keep an SSE connection.","summary":"Stream invitation deployment events","x-dalp-auth":"session-or-api-key"}},"/api/v2/invitation-retries":{"post":{"tags":["Organisation deployment"],"operationId":"platform.invitations.invitationsRetry","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The prior failed invitation workflow is ready to start again. Submit deploy or accept next; this body does not include a new deployment identifier.","content":{"application/json":{"schema":{"type":"object","properties":{"ready":{"type":"boolean","enum":[true]}},"required":["ready"],"additionalProperties":false},"examples":{"example-1":{"value":{"ready":true}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED","platform.http.INVITATION_CANCELED","platform.http.INVITATION_EXPIRED","platform.http.INVITATION_ORGANIZATION_ARCHIVED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","platform.http.INVITATION_ALREADY_ACCEPTED","platform.http.INVITATION_NATIONAL_ID_CONFLICT"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED","platform.http.INVITATION_ROLES_NOT_AUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"platform.http.INVITATION_ROLES_NOT_AUTHORIZED","status":412,"message":"The invitation's roles were never authorized","data":{"id":"DALP-12383","why":"The invitation grants on-chain roles that no verified wallet authorized.","fix":"Ask an organization owner to authorize the invitation's roles with their wallet, or to send a new invitation.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Clears the failed invitation workflow so the next deploy or accept can start from a clean slate. The body names the stored invitation, not a deployment id. This write waits until the prior run is ready to restart and does not start the new run. Call deploy or accept next. This route does not return a new deploymentId.","summary":"Prepare a failed invitation deployment for retry","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"invitationId":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9_-]+$"}},"required":["invitationId"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/invitations/{invitationId}":{"get":{"tags":["Organisation deployment"],"operationId":"platform.invitations.invitationsInviteeView","parameters":[{"name":"invitationId","in":"path","schema":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9_-]+$"},"required":true}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9_-]+$"},"organizationId":{"$ref":"#/components/schemas/OrganizationId"},"organizationName":{"anyOf":[{"type":"string"},{"type":"null"}]},"email":{"type":"string"},"role":{"anyOf":[{"type":"string"},{"type":"null"}]},"status":{"type":"string","enum":["pending","accepted"]},"expiresAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["id","organizationId","organizationName","email","role","status","expiresAt"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","organizationId":"org_northwind_coffee","organizationName":"Example organization","email":"treasury@northwind.example","role":"member","status":"pending","expiresAt":"2026-04-20T16:00:00.000Z"},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED","platform.http.INVITATION_CANCELED","platform.http.INVITATION_EXPIRED","platform.http.INVITATION_ORGANIZATION_ARCHIVED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","platform.http.INVITATION_ALREADY_ACCEPTED","platform.http.INVITATION_NATIONAL_ID_CONFLICT"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED","platform.http.INVITATION_ROLES_NOT_AUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"platform.http.INVITATION_ROLES_NOT_AUTHORIZED","status":412,"message":"The invitation's roles were never authorized","data":{"id":"DALP-12383","why":"The invitation grants on-chain roles that no verified wallet authorized.","fix":"Ask an organization owner to authorize the invitation's roles with their wallet, or to send a new invitation.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"x-dalp-auth":"session-or-api-key"}},"/api/v2/role-invitations/{invitationId}/has-roles":{"get":{"tags":["Organisation deployment"],"operationId":"platform.invitations.invitationsHasOnChainRoles","parameters":[{"name":"invitationId","in":"path","schema":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9_-]+$"},"required":true}],"responses":{"200":{"description":"Whether the named invitation carries at least one on-chain role. The role list itself is not returned. Use this to choose the PIN-gated resend path.","content":{"application/json":{"schema":{"type":"object","properties":{"hasOnChainRoles":{"type":"boolean"}},"required":["hasOnChainRoles"],"additionalProperties":false},"examples":{"example-1":{"value":{"hasOnChainRoles":true}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED","platform.http.INVITATION_CANCELED","platform.http.INVITATION_EXPIRED","platform.http.INVITATION_ORGANIZATION_ARCHIVED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","platform.http.INVITATION_ALREADY_ACCEPTED","platform.http.INVITATION_NATIONAL_ID_CONFLICT"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED","platform.http.INVITATION_ROLES_NOT_AUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"platform.http.INVITATION_ROLES_NOT_AUTHORIZED","status":412,"message":"The invitation's roles were never authorized","data":{"id":"DALP-12383","why":"The invitation grants on-chain roles that no verified wallet authorized.","fix":"Ask an organization owner to authorize the invitation's roles with their wallet, or to send a new invitation.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns whether the named invitation stores at least one on-chain role. Only an organization owner or platform administrator with an interactive session can call this tenant-scoped read. API keys and ordinary members receive the same not-found response. The role list is never returned.","summary":"Check whether an invitation carries on-chain roles","x-dalp-auth":"session-or-api-key"}},"/api/v2/settings/{key}":{"get":{"tags":["Platform settings"],"operationId":"platform.settings.settingsRead","parameters":[{"name":"key","in":"path","schema":{"type":"string","enum":["BASE_CURRENCY","SYSTEM_ADDRESS","AA_ENABLED","AA_WARN_DAYS","AA_CRITICAL_DAYS","TARGET_CURRENCIES","MULTI_NETWORK_ENABLED","CORPORATE_ACTION_MAKER_CHECKER_ENABLED","ACCOUNT_MODE"]},"required":true}],"responses":{"200":{"description":"The requested setting value for the active organization. `data.value` is null when that key has no row.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/PlatformSettingReadResult"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"value":"EUR"},"links":{"self":"/v2/settings/BASE_CURRENCY"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the stored value for one predefined key in the active organization, wrapped as data.value. The key must be one of BASE_CURRENCY, SYSTEM_ADDRESS, ACCOUNT_MODE, AA_ENABLED, AA_WARN_DAYS, AA_CRITICAL_DAYS, TARGET_CURRENCIES, MULTI_NETWORK_ENABLED, or CORPORATE_ACTION_MAKER_CHECKER_ENABLED. ACCOUNT_MODE is the organization's account mode (eoa-self-pay, eoa-gasless, or aa); AA_ENABLED reads true only in aa. A missing key returns data.value null rather than 404. The call is a stored read and is safe to retry.","summary":"Read one organization setting","x-dalp-auth":"session-or-api-key"},"delete":{"tags":["Platform settings"],"operationId":"platform.settings.settingsDelete","parameters":[{"name":"key","in":"path","schema":{"type":"string","enum":["BASE_CURRENCY","SYSTEM_ADDRESS","AA_ENABLED","AA_WARN_DAYS","AA_CRITICAL_DAYS","TARGET_CURRENCIES","MULTI_NETWORK_ENABLED","CORPORATE_ACTION_MAKER_CHECKER_ENABLED","ACCOUNT_MODE"]},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Successful delete acknowledgement. `data` is `null` because the resource no longer exists. Treat HTTP 200 plus this body as confirmation, not as a leftover item.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteResponse"},"examples":{"example-1":{"value":{"data":null}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","MULTI_NETWORK_ADMIN_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","MULTI_NETWORK_DISABLE_BLOCKED","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Removes one predefined key from the active organization. A missing key returns 404. MULTI_NETWORK_ENABLED cannot be deleted while the organization still has added networks. The delete waits until the row is gone and is not queued. Repeating the call after a successful delete returns 404.","summary":"Delete one organization setting","x-dalp-auth":"session-or-api-key"}},"/api/v2/settings":{"get":{"tags":["Platform settings"],"operationId":"platform.settings.settingsList","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000}},"allOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"object","properties":{"eq":{"anyOf":[{"type":"string"},{"type":"number"}]},"ne":{"anyOf":[{"type":"string"},{"type":"number"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]}},"additionalProperties":false}]}}]},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"One page of settings for the active organization. `meta.total` counts every matching setting rather than the rows on this page.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"},"lastUpdated":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["key","value","lastUpdated"],"additionalProperties":false}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"key":"BASE_CURRENCY","value":"EUR","lastUpdated":"2026-04-12T09:30:00.000Z"}],"meta":{"total":1},"links":{"self":"/v2/settings?sort=key&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/settings?sort=key&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/settings?sort=key&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of stored settings for the active organization. Paging uses page[limit] (default 50, maximum 200) and page[offset]. Default sort is key. Filter with filter[key], filter[value], filter[lastUpdated], or filter[q]. The page is stored data. Repeating the read is safe.","summary":"Page through organization settings","x-dalp-auth":"session-or-api-key"},"post":{"tags":["Platform settings"],"operationId":"platform.settings.settingsUpsert","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The stored setting after the write. `data.value` is the value the request sent.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"value":{"type":"string"}},"required":["value"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"value":"EUR"},"links":{"self":"/v2/settings/BASE_CURRENCY"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Stores one predefined key for the active organization and returns the stored value as data.value. TARGET_CURRENCIES is a JSON array of ISO 4217 codes and must keep every currency already stored. ACCOUNT_MODE is eoa-self-pay, eoa-gasless, or aa: the two EOA modes switch freely, entering eoa-gasless provisions the organization's relayer on every active network, and aa cannot be left once entered. AA_ENABLED true moves the organization to aa. AA_ENABLED, MULTI_NETWORK_ENABLED, and CORPORATE_ACTION_MAKER_CHECKER_ENABLED are the strings true or false. The write waits until the row is stored and is not queued. Entering aa, through ACCOUNT_MODE or AA_ENABLED, also waits until every role, identity, and token-role synchronization write it starts is confirmed and indexed; if that wait elapses the request fails with a retryable error instead of returning true early. Repeating an identical body stores the same value again.","summary":"Create or replace one organization setting","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"key":{"type":"string","enum":["BASE_CURRENCY"]},"value":{"$ref":"#/components/schemas/FiatCurrency"}},"required":["key","value"],"additionalProperties":false},{"type":"object","properties":{"key":{"type":"string","enum":["SYSTEM_ADDRESS"]},"value":{"anyOf":[{"type":"string","enum":[""]},{"$ref":"#/components/schemas/EvmAddress"}]}},"required":["key","value"],"additionalProperties":false},{"type":"object","properties":{"key":{"type":"string","enum":["AA_ENABLED"]},"value":{"type":"string","enum":["true","false"]}},"required":["key","value"],"additionalProperties":false},{"type":"object","properties":{"key":{"type":"string","enum":["TARGET_CURRENCIES"]},"value":{"type":"string","contentMediaType":"application/json"}},"required":["key","value"],"additionalProperties":false},{"type":"object","properties":{"key":{"type":"string","enum":["MULTI_NETWORK_ENABLED"]},"value":{"type":"string","enum":["true","false"]}},"required":["key","value"],"additionalProperties":false},{"type":"object","properties":{"key":{"type":"string","enum":["CORPORATE_ACTION_MAKER_CHECKER_ENABLED"]},"value":{"type":"string","enum":["true","false"]}},"required":["key","value"],"additionalProperties":false},{"type":"object","properties":{"key":{"type":"string","enum":["ACCOUNT_MODE"]},"value":{"$ref":"#/components/schemas/AccountMode"}},"required":["key","value"],"additionalProperties":false}]}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/settings/public-config":{"get":{"tags":["Platform settings"],"operationId":"platform.settings.settingsPublicConfig","parameters":[],"responses":{"200":{"description":"Public client configuration. Secrets, client ids, and issuer URLs are omitted.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"app":{"type":"object","properties":{"url":{"$ref":"#/components/schemas/HTTPURL"},"logLevel":{"type":"string","enum":["debug","info","warn","error"]},"isDevelopment":{"type":"boolean"}},"required":["url","logLevel","isDevelopment"],"additionalProperties":false},"explorer":{"type":"object","properties":{"url":{"$ref":"#/components/schemas/HTTPURL"}},"additionalProperties":false},"auth":{"type":"object","properties":{"enforce2fa":{"type":"boolean"},"restrictOrgCreationToAdmin":{"type":"boolean"},"oidcProviders":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"displayName":{"type":"string","minLength":1}},"required":["id","displayName"],"additionalProperties":false}}},"required":["enforce2fa","restrictOrgCreationToAdmin","oidcProviders"],"additionalProperties":false},"features":{"type":"object","properties":{"multiTenancy":{"type":"boolean"},"i18nLanguageSelector":{"type":"boolean"},"changeEmail":{"type":"boolean"},"tokenSale":{"type":"boolean"},"accountAbstraction":{"type":"boolean"},"multisig":{"type":"boolean"},"legacyComplianceTemplates":{"type":"boolean"},"legacyAssetCreation":{"type":"boolean"},"canton":{"type":"boolean"},"custodyOps":{"type":"boolean"}},"required":["multiTenancy","i18nLanguageSelector","changeEmail","tokenSale","accountAbstraction","multisig","legacyComplianceTemplates","legacyAssetCreation","canton","custodyOps"],"additionalProperties":false},"email":{"type":"object","properties":{"enabled":{"type":"boolean"}},"required":["enabled"],"additionalProperties":false},"support":{"type":"object","properties":{"email":{"type":"string"},"consentTitle":{"type":"string"},"consentDescription":{"type":"string"}},"required":["email","consentTitle","consentDescription"],"additionalProperties":false},"hasOrganizations":{"type":"boolean"},"custodyDefaultProvider":{"type":"string","minLength":1},"custodyDefaultEndpointHost":{"type":"string","minLength":1}},"required":["app","explorer","auth","features","email","support","hasOrganizations","custodyDefaultProvider"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"app":{"url":"https://console.northwind.example","logLevel":"info","isDevelopment":false},"explorer":{"url":"https://sepolia.etherscan.io"},"auth":{"enforce2fa":true,"restrictOrgCreationToAdmin":false,"oidcProviders":[{"id":"entra","displayName":"Microsoft Entra ID"}]},"features":{"multiTenancy":true,"i18nLanguageSelector":true,"changeEmail":true,"tokenSale":false,"accountAbstraction":true,"multisig":false,"legacyComplianceTemplates":false,"legacyAssetCreation":false,"canton":false,"custodyOps":false},"email":{"enabled":true},"support":{"email":"support@northwind.example","consentTitle":"","consentDescription":""},"hasOrganizations":true,"custodyDefaultProvider":"local"},"links":{"self":"/v2/settings/public-config"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the public application, auth, feature, email, support, and custody values a client needs before sign-in. The v2 body omits the inert sentry block from v1. The call is a stored read and is safe to retry. It does not require an organization or a chain header.","summary":"Read public client configuration","x-dalp-auth":"optional"}},"/api/v2/settings/theme":{"get":{"tags":["Platform settings"],"operationId":"platform.settings.settingsThemeGet","parameters":[],"responses":{"200":{"description":"Effective theme for the request, wrapped as a single resource. Pre-sign-in clients receive the global or default theme.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"logo":{"type":"object","properties":{"lightUrl":{"type":"string","maxLength":2048},"darkUrl":{"type":"string","maxLength":2048},"lightIconUrl":{"type":"string","maxLength":2048},"darkIconUrl":{"type":"string","maxLength":2048},"authLightUrl":{"type":"string","maxLength":2048},"authDarkUrl":{"type":"string","maxLength":2048},"alt":{"type":"string","maxLength":200},"width":{"type":"integer","exclusiveMinimum":0},"height":{"type":"integer","exclusiveMinimum":0},"etag":{"type":"string"},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["alt"],"additionalProperties":false},"images":{"type":"object","properties":{"authOverlayLightUrl":{"type":"string","maxLength":2048},"authOverlayDarkUrl":{"type":"string","maxLength":2048},"backgroundLightUrl":{"type":"string","maxLength":2048},"backgroundDarkUrl":{"type":"string","maxLength":2048},"faviconUrl":{"type":"string","maxLength":2048},"appleTouchIconUrl":{"type":"string","maxLength":2048},"favicon96Url":{"type":"string","maxLength":2048},"faviconSvgUrl":{"type":"string","maxLength":2048},"etag":{"type":"string"},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"additionalProperties":false},"fonts":{"type":"object","properties":{"sans":{"type":"object","properties":{"family":{"type":"string","minLength":1,"maxLength":100},"source":{"type":"string","enum":["fontsource","google","custom"]},"weights":{"type":"array","items":{"type":"integer","minimum":100,"maximum":900}},"preload":{"type":"boolean"},"url":{"$ref":"#/components/schemas/HTTPURL"}},"required":["family","source","preload"],"additionalProperties":false},"mono":{"type":"object","properties":{"family":{"type":"string","minLength":1,"maxLength":100},"source":{"type":"string","enum":["fontsource","google","custom"]},"weights":{"type":"array","items":{"type":"integer","minimum":100,"maximum":900}},"preload":{"type":"boolean"},"url":{"$ref":"#/components/schemas/HTTPURL"}},"required":["family","source","preload"],"additionalProperties":false}},"required":["sans","mono"],"additionalProperties":false},"cssVars":{"type":"object","properties":{"light":{"type":"object","properties":{"sm-text":{"$ref":"#/components/schemas/CSSColor"},"sm-text-strong":{"$ref":"#/components/schemas/CSSColor"},"sm-text-default":{"$ref":"#/components/schemas/CSSColor"},"sm-text-subtle":{"$ref":"#/components/schemas/CSSColor"},"sm-text-disabled":{"$ref":"#/components/schemas/CSSColor"},"sm-text-contrast":{"$ref":"#/components/schemas/CSSColor"},"sm-accent":{"$ref":"#/components/schemas/CSSColor"},"sm-accent-hover":{"$ref":"#/components/schemas/CSSColor"},"sm-background-darkest":{"$ref":"#/components/schemas/CSSColor"},"sm-background-lightest":{"$ref":"#/components/schemas/CSSColor"},"sm-background-gradient-start":{"$ref":"#/components/schemas/CSSColor"},"sm-background-gradient-end":{"$ref":"#/components/schemas/CSSColor"},"sm-state-success":{"$ref":"#/components/schemas/CSSColor"},"sm-state-success-background":{"$ref":"#/components/schemas/CSSColor"},"sm-state-success-fg-deep":{"$ref":"#/components/schemas/CSSColor"},"sm-state-warning":{"$ref":"#/components/schemas/CSSColor"},"sm-state-warning-background":{"$ref":"#/components/schemas/CSSColor"},"sm-state-warning-fg-deep":{"$ref":"#/components/schemas/CSSColor"},"sm-state-info":{"$ref":"#/components/schemas/CSSColor"},"sm-state-info-background":{"$ref":"#/components/schemas/CSSColor"},"sm-state-info-fg-deep":{"$ref":"#/components/schemas/CSSColor"},"sm-state-error":{"$ref":"#/components/schemas/CSSColor"},"sm-state-error-background":{"$ref":"#/components/schemas/CSSColor"},"sm-graphics-primary":{"$ref":"#/components/schemas/CSSColor"},"sm-graphics-secondary":{"$ref":"#/components/schemas/CSSColor"},"sm-graphics-tertiary":{"$ref":"#/components/schemas/CSSColor"},"sm-graphics-quaternary":{"$ref":"#/components/schemas/CSSColor"},"sm-colored-shadow":{"$ref":"#/components/schemas/CSSColor"},"sm-inset-shadow":{"$ref":"#/components/schemas/CSSColor"},"sm-muted":{"$ref":"#/components/schemas/CSSColor"},"sm-border":{"$ref":"#/components/schemas/CSSColor"},"sm-border-subtle":{"$ref":"#/components/schemas/CSSColor"},"sm-sidebar-gradient-start":{"$ref":"#/components/schemas/CSSColor"},"sm-sidebar-gradient-mid":{"$ref":"#/components/schemas/CSSColor"},"sm-sidebar-gradient-end":{"$ref":"#/components/schemas/CSSColor"},"radius":{"$ref":"#/components/schemas/CSSColor"}},"required":["sm-text","sm-text-strong","sm-text-default","sm-text-subtle","sm-text-disabled","sm-text-contrast","sm-accent","sm-accent-hover","sm-background-darkest","sm-background-lightest","sm-background-gradient-start","sm-background-gradient-end","sm-state-success","sm-state-success-background","sm-state-success-fg-deep","sm-state-warning","sm-state-warning-background","sm-state-warning-fg-deep","sm-state-info","sm-state-info-background","sm-state-info-fg-deep","sm-state-error","sm-state-error-background","sm-graphics-primary","sm-graphics-secondary","sm-graphics-tertiary","sm-graphics-quaternary","sm-colored-shadow","sm-inset-shadow","sm-muted","sm-border","sm-border-subtle","sm-sidebar-gradient-start","sm-sidebar-gradient-mid","sm-sidebar-gradient-end","radius"],"additionalProperties":false},"dark":{"type":"object","properties":{"sm-text":{"$ref":"#/components/schemas/CSSColor"},"sm-text-strong":{"$ref":"#/components/schemas/CSSColor"},"sm-text-default":{"$ref":"#/components/schemas/CSSColor"},"sm-text-subtle":{"$ref":"#/components/schemas/CSSColor"},"sm-text-disabled":{"$ref":"#/components/schemas/CSSColor"},"sm-text-contrast":{"$ref":"#/components/schemas/CSSColor"},"sm-accent":{"$ref":"#/components/schemas/CSSColor"},"sm-accent-hover":{"$ref":"#/components/schemas/CSSColor"},"sm-background-darkest":{"$ref":"#/components/schemas/CSSColor"},"sm-background-lightest":{"$ref":"#/components/schemas/CSSColor"},"sm-background-gradient-start":{"$ref":"#/components/schemas/CSSColor"},"sm-background-gradient-end":{"$ref":"#/components/schemas/CSSColor"},"sm-state-success":{"$ref":"#/components/schemas/CSSColor"},"sm-state-success-background":{"$ref":"#/components/schemas/CSSColor"},"sm-state-success-fg-deep":{"$ref":"#/components/schemas/CSSColor"},"sm-state-warning":{"$ref":"#/components/schemas/CSSColor"},"sm-state-warning-background":{"$ref":"#/components/schemas/CSSColor"},"sm-state-warning-fg-deep":{"$ref":"#/components/schemas/CSSColor"},"sm-state-info":{"$ref":"#/components/schemas/CSSColor"},"sm-state-info-background":{"$ref":"#/components/schemas/CSSColor"},"sm-state-info-fg-deep":{"$ref":"#/components/schemas/CSSColor"},"sm-state-error":{"$ref":"#/components/schemas/CSSColor"},"sm-state-error-background":{"$ref":"#/components/schemas/CSSColor"},"sm-graphics-primary":{"$ref":"#/components/schemas/CSSColor"},"sm-graphics-secondary":{"$ref":"#/components/schemas/CSSColor"},"sm-graphics-tertiary":{"$ref":"#/components/schemas/CSSColor"},"sm-graphics-quaternary":{"$ref":"#/components/schemas/CSSColor"},"sm-colored-shadow":{"$ref":"#/components/schemas/CSSColor"},"sm-inset-shadow":{"$ref":"#/components/schemas/CSSColor"},"sm-muted":{"$ref":"#/components/schemas/CSSColor"},"sm-border":{"$ref":"#/components/schemas/CSSColor"},"sm-border-subtle":{"$ref":"#/components/schemas/CSSColor"},"sm-sidebar-gradient-start":{"$ref":"#/components/schemas/CSSColor"},"sm-sidebar-gradient-mid":{"$ref":"#/components/schemas/CSSColor"},"sm-sidebar-gradient-end":{"$ref":"#/components/schemas/CSSColor"},"radius":{"$ref":"#/components/schemas/CSSColor"}},"required":["sm-text","sm-text-strong","sm-text-default","sm-text-subtle","sm-text-disabled","sm-text-contrast","sm-accent","sm-accent-hover","sm-background-darkest","sm-background-lightest","sm-background-gradient-start","sm-background-gradient-end","sm-state-success","sm-state-success-background","sm-state-success-fg-deep","sm-state-warning","sm-state-warning-background","sm-state-warning-fg-deep","sm-state-info","sm-state-info-background","sm-state-info-fg-deep","sm-state-error","sm-state-error-background","sm-graphics-primary","sm-graphics-secondary","sm-graphics-tertiary","sm-graphics-quaternary","sm-colored-shadow","sm-inset-shadow","sm-muted","sm-border","sm-border-subtle","sm-sidebar-gradient-start","sm-sidebar-gradient-mid","sm-sidebar-gradient-end","radius"],"additionalProperties":false}},"required":["light","dark"],"additionalProperties":false},"documents":{"type":"object","properties":{"legalName":{"type":"string","maxLength":200},"details":{"type":"string","maxLength":1000},"disclaimer":{"type":"string","maxLength":4000}},"required":["legalName","details","disclaimer"],"additionalProperties":false},"metadata":{"type":"object","properties":{"version":{"type":"integer","minimum":1},"updatedBy":{"type":"string","minLength":1},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"},"previewHash":{"type":"string"}},"required":["version","updatedBy","updatedAt"],"additionalProperties":false}},"required":["logo","images","fonts","cssVars","metadata"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"logo":{"lightUrl":"/logos/northwind-logo-h-lm.svg","darkUrl":"/logos/northwind-logo-h-dm.svg","lightIconUrl":"/logos/settlemint-logo-i-lm.svg","darkIconUrl":"/logos/settlemint-logo-i-dm.svg","alt":"Northwind Coffee"},"images":{"backgroundLightUrl":"/backgrounds/background-lm.svg","backgroundDarkUrl":"/backgrounds/background-dm.svg","faviconUrl":"/favicon.ico","appleTouchIconUrl":"/apple-touch-icon.png","favicon96Url":"/favicon-96x96.png","faviconSvgUrl":"/favicon.svg"},"fonts":{"sans":{"family":"Figtree Variable","source":"fontsource","preload":true},"mono":{"family":"Red Hat Mono Variable","source":"fontsource","preload":true}},"cssVars":{"light":{"sm-text":"oklch(0.2264 0 87)","sm-text-strong":"oklch(0.205 0 0)","sm-text-default":"oklch(0.269 0 0)","sm-text-subtle":"oklch(0.442 0 0)","sm-text-disabled":"oklch(0.553 0 0)","sm-text-contrast":"oklch(1 0 87)","sm-accent":"oklch(0.55 0.2028 263.15)","sm-accent-hover":"oklch(0.55 0.2028 263.15 / 0.2)","sm-background-darkest":"oklch(0.9359 0.0275 265.45)","sm-background-lightest":"oklch(0.967 0.014 268.49)","sm-background-gradient-start":"oklch(0.9886 0.0026 286.35)","sm-background-gradient-end":"oklch(0.9691 0.0103 261.79)","sm-state-success":"oklch(0.2264 0 87)","sm-state-success-background":"oklch(0.812 0.1064 153.89)","sm-state-success-fg-deep":"hsl(140, 100%, 27%)","sm-state-warning":"oklch(0.2264 0 87)","sm-state-warning-background":"oklch(0.8354 0.1274 72.2)","sm-state-warning-fg-deep":"hsl(35, 92%, 33%)","sm-state-info":"oklch(0.2264 0 87)","sm-state-info-background":"oklch(0.6396 0.145 248.18)","sm-state-info-fg-deep":"hsl(210, 92%, 33%)","sm-state-error":"oklch(0.2264 0 87)","sm-state-error-background":"oklch(0.7044 0.1872 23.19)","sm-graphics-primary":"oklch(0.7675 0.0982 182.83)","sm-graphics-secondary":"oklch(0.7284 0.1133 210.64)","sm-graphics-tertiary":"oklch(0.6396 0.145 248.18)","sm-graphics-quaternary":"oklch(0.6296 0.2209 300.47)","sm-colored-shadow":"oklch(0.55 0.2028 263.15 / 0.12)","sm-inset-shadow":"rgba(0, 0, 0, 0.21)","sm-muted":"oklch(0.2264 0 87 / 32%)","sm-border":"oklch(0.2264 0 87 / 12%)","sm-border-subtle":"oklch(0.922 0 0)","sm-sidebar-gradient-start":"oklch(0.54 0.12 210.64)","sm-sidebar-gradient-mid":"oklch(0.56 0.15 248.18)","sm-sidebar-gradient-end":"oklch(0.55 0.1 182.83)","radius":"0.625rem"},"dark":{"sm-text":"oklch(1 0 87)","sm-text-strong":"oklch(0.985 0 0)","sm-text-default":"oklch(0.922 0 0)","sm-text-subtle":"oklch(0.72 0 0)","sm-text-disabled":"oklch(0.442 0 0)","sm-text-contrast":"oklch(0.2264 0 87)","sm-accent":"oklch(0.72 0.14 263.65)","sm-accent-hover":"oklch(0.72 0.14 263.65 / 0.2)","sm-background-darkest":"oklch(0.2264 0 0)","sm-background-lightest":"oklch(0.2809 0 0)","sm-background-gradient-start":"oklch(0.3368 0 0)","sm-background-gradient-end":"oklch(0.3092 0 0)","sm-state-success":"oklch(1 0 87)","sm-state-success-background":"oklch(0.812 0.1064 153.89)","sm-state-success-fg-deep":"hsl(140, 80%, 65%)","sm-state-warning":"oklch(1 0 87)","sm-state-warning-background":"oklch(0.8354 0.1274 72.2)","sm-state-warning-fg-deep":"hsl(35, 80%, 65%)","sm-state-info":"oklch(1 0 87)","sm-state-info-background":"oklch(0.6396 0.145 248.18)","sm-state-info-fg-deep":"hsl(210, 80%, 65%)","sm-state-error":"oklch(0.2264 0 87)","sm-state-error-background":"oklch(0.7044 0.1872 23.19)","sm-graphics-primary":"oklch(0.7675 0.0982 182.83)","sm-graphics-secondary":"oklch(0.7284 0.1133 210.64)","sm-graphics-tertiary":"oklch(0.6396 0.145 248.18)","sm-graphics-quaternary":"oklch(0.6296 0.2209 300.47)","sm-colored-shadow":"oklch(0.2264 0 0)","sm-inset-shadow":"rgba(0, 0, 0, 0.21)","sm-muted":"oklch(1 0 87 / 32%)","sm-border":"oklch(1 0 87 / 12%)","sm-border-subtle":"oklch(0.269 0 0)","sm-sidebar-gradient-start":"oklch(0.54 0.12 210.64)","sm-sidebar-gradient-mid":"oklch(0.56 0.15 248.18)","sm-sidebar-gradient-end":"oklch(0.55 0.1 182.83)","radius":"0.625rem"}},"metadata":{"version":4,"updatedBy":"user_northwind_owner","updatedAt":"2026-04-12T09:30:00.000Z"}},"links":{"self":"/v2/settings/theme"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the effective theme for the request, including logos, fonts, and CSS tokens, wrapped as a single resource. An authenticated request receives its organization theme. A pre-sign-in request receives the global or default theme, so clients can render branded authentication pages. The call is safe to retry and does not require a chain header.","summary":"Read the organization theme","x-dalp-auth":"optional"},"patch":{"tags":["Platform settings"],"operationId":"platform.settings.settingsThemeUpdate","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The stored theme after the write. Send `data.theme.metadata.version` on the next theme write.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"theme":{"type":"object","properties":{"logo":{"type":"object","properties":{"lightUrl":{"type":"string","maxLength":2048},"darkUrl":{"type":"string","maxLength":2048},"lightIconUrl":{"type":"string","maxLength":2048},"darkIconUrl":{"type":"string","maxLength":2048},"authLightUrl":{"type":"string","maxLength":2048},"authDarkUrl":{"type":"string","maxLength":2048},"alt":{"type":"string","maxLength":200},"width":{"type":"integer","exclusiveMinimum":0},"height":{"type":"integer","exclusiveMinimum":0},"etag":{"type":"string"},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["alt"],"additionalProperties":false},"images":{"type":"object","properties":{"authOverlayLightUrl":{"type":"string","maxLength":2048},"authOverlayDarkUrl":{"type":"string","maxLength":2048},"backgroundLightUrl":{"type":"string","maxLength":2048},"backgroundDarkUrl":{"type":"string","maxLength":2048},"faviconUrl":{"type":"string","maxLength":2048},"appleTouchIconUrl":{"type":"string","maxLength":2048},"favicon96Url":{"type":"string","maxLength":2048},"faviconSvgUrl":{"type":"string","maxLength":2048},"etag":{"type":"string"},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"additionalProperties":false},"fonts":{"type":"object","properties":{"sans":{"type":"object","properties":{"family":{"type":"string","minLength":1,"maxLength":100},"source":{"type":"string","enum":["fontsource","google","custom"]},"weights":{"type":"array","items":{"type":"integer","minimum":100,"maximum":900}},"preload":{"type":"boolean"},"url":{"$ref":"#/components/schemas/HTTPURL"}},"required":["family","source","preload"],"additionalProperties":false},"mono":{"type":"object","properties":{"family":{"type":"string","minLength":1,"maxLength":100},"source":{"type":"string","enum":["fontsource","google","custom"]},"weights":{"type":"array","items":{"type":"integer","minimum":100,"maximum":900}},"preload":{"type":"boolean"},"url":{"$ref":"#/components/schemas/HTTPURL"}},"required":["family","source","preload"],"additionalProperties":false}},"required":["sans","mono"],"additionalProperties":false},"cssVars":{"type":"object","properties":{"light":{"type":"object","properties":{"sm-text":{"$ref":"#/components/schemas/CSSColor"},"sm-text-strong":{"$ref":"#/components/schemas/CSSColor"},"sm-text-default":{"$ref":"#/components/schemas/CSSColor"},"sm-text-subtle":{"$ref":"#/components/schemas/CSSColor"},"sm-text-disabled":{"$ref":"#/components/schemas/CSSColor"},"sm-text-contrast":{"$ref":"#/components/schemas/CSSColor"},"sm-accent":{"$ref":"#/components/schemas/CSSColor"},"sm-accent-hover":{"$ref":"#/components/schemas/CSSColor"},"sm-background-darkest":{"$ref":"#/components/schemas/CSSColor"},"sm-background-lightest":{"$ref":"#/components/schemas/CSSColor"},"sm-background-gradient-start":{"$ref":"#/components/schemas/CSSColor"},"sm-background-gradient-end":{"$ref":"#/components/schemas/CSSColor"},"sm-state-success":{"$ref":"#/components/schemas/CSSColor"},"sm-state-success-background":{"$ref":"#/components/schemas/CSSColor"},"sm-state-success-fg-deep":{"$ref":"#/components/schemas/CSSColor"},"sm-state-warning":{"$ref":"#/components/schemas/CSSColor"},"sm-state-warning-background":{"$ref":"#/components/schemas/CSSColor"},"sm-state-warning-fg-deep":{"$ref":"#/components/schemas/CSSColor"},"sm-state-info":{"$ref":"#/components/schemas/CSSColor"},"sm-state-info-background":{"$ref":"#/components/schemas/CSSColor"},"sm-state-info-fg-deep":{"$ref":"#/components/schemas/CSSColor"},"sm-state-error":{"$ref":"#/components/schemas/CSSColor"},"sm-state-error-background":{"$ref":"#/components/schemas/CSSColor"},"sm-graphics-primary":{"$ref":"#/components/schemas/CSSColor"},"sm-graphics-secondary":{"$ref":"#/components/schemas/CSSColor"},"sm-graphics-tertiary":{"$ref":"#/components/schemas/CSSColor"},"sm-graphics-quaternary":{"$ref":"#/components/schemas/CSSColor"},"sm-colored-shadow":{"$ref":"#/components/schemas/CSSColor"},"sm-inset-shadow":{"$ref":"#/components/schemas/CSSColor"},"sm-muted":{"$ref":"#/components/schemas/CSSColor"},"sm-border":{"$ref":"#/components/schemas/CSSColor"},"sm-border-subtle":{"$ref":"#/components/schemas/CSSColor"},"sm-sidebar-gradient-start":{"$ref":"#/components/schemas/CSSColor"},"sm-sidebar-gradient-mid":{"$ref":"#/components/schemas/CSSColor"},"sm-sidebar-gradient-end":{"$ref":"#/components/schemas/CSSColor"},"radius":{"$ref":"#/components/schemas/CSSColor"}},"required":["sm-text","sm-text-strong","sm-text-default","sm-text-subtle","sm-text-disabled","sm-text-contrast","sm-accent","sm-accent-hover","sm-background-darkest","sm-background-lightest","sm-background-gradient-start","sm-background-gradient-end","sm-state-success","sm-state-success-background","sm-state-success-fg-deep","sm-state-warning","sm-state-warning-background","sm-state-warning-fg-deep","sm-state-info","sm-state-info-background","sm-state-info-fg-deep","sm-state-error","sm-state-error-background","sm-graphics-primary","sm-graphics-secondary","sm-graphics-tertiary","sm-graphics-quaternary","sm-colored-shadow","sm-inset-shadow","sm-muted","sm-border","sm-border-subtle","sm-sidebar-gradient-start","sm-sidebar-gradient-mid","sm-sidebar-gradient-end","radius"],"additionalProperties":false},"dark":{"type":"object","properties":{"sm-text":{"$ref":"#/components/schemas/CSSColor"},"sm-text-strong":{"$ref":"#/components/schemas/CSSColor"},"sm-text-default":{"$ref":"#/components/schemas/CSSColor"},"sm-text-subtle":{"$ref":"#/components/schemas/CSSColor"},"sm-text-disabled":{"$ref":"#/components/schemas/CSSColor"},"sm-text-contrast":{"$ref":"#/components/schemas/CSSColor"},"sm-accent":{"$ref":"#/components/schemas/CSSColor"},"sm-accent-hover":{"$ref":"#/components/schemas/CSSColor"},"sm-background-darkest":{"$ref":"#/components/schemas/CSSColor"},"sm-background-lightest":{"$ref":"#/components/schemas/CSSColor"},"sm-background-gradient-start":{"$ref":"#/components/schemas/CSSColor"},"sm-background-gradient-end":{"$ref":"#/components/schemas/CSSColor"},"sm-state-success":{"$ref":"#/components/schemas/CSSColor"},"sm-state-success-background":{"$ref":"#/components/schemas/CSSColor"},"sm-state-success-fg-deep":{"$ref":"#/components/schemas/CSSColor"},"sm-state-warning":{"$ref":"#/components/schemas/CSSColor"},"sm-state-warning-background":{"$ref":"#/components/schemas/CSSColor"},"sm-state-warning-fg-deep":{"$ref":"#/components/schemas/CSSColor"},"sm-state-info":{"$ref":"#/components/schemas/CSSColor"},"sm-state-info-background":{"$ref":"#/components/schemas/CSSColor"},"sm-state-info-fg-deep":{"$ref":"#/components/schemas/CSSColor"},"sm-state-error":{"$ref":"#/components/schemas/CSSColor"},"sm-state-error-background":{"$ref":"#/components/schemas/CSSColor"},"sm-graphics-primary":{"$ref":"#/components/schemas/CSSColor"},"sm-graphics-secondary":{"$ref":"#/components/schemas/CSSColor"},"sm-graphics-tertiary":{"$ref":"#/components/schemas/CSSColor"},"sm-graphics-quaternary":{"$ref":"#/components/schemas/CSSColor"},"sm-colored-shadow":{"$ref":"#/components/schemas/CSSColor"},"sm-inset-shadow":{"$ref":"#/components/schemas/CSSColor"},"sm-muted":{"$ref":"#/components/schemas/CSSColor"},"sm-border":{"$ref":"#/components/schemas/CSSColor"},"sm-border-subtle":{"$ref":"#/components/schemas/CSSColor"},"sm-sidebar-gradient-start":{"$ref":"#/components/schemas/CSSColor"},"sm-sidebar-gradient-mid":{"$ref":"#/components/schemas/CSSColor"},"sm-sidebar-gradient-end":{"$ref":"#/components/schemas/CSSColor"},"radius":{"$ref":"#/components/schemas/CSSColor"}},"required":["sm-text","sm-text-strong","sm-text-default","sm-text-subtle","sm-text-disabled","sm-text-contrast","sm-accent","sm-accent-hover","sm-background-darkest","sm-background-lightest","sm-background-gradient-start","sm-background-gradient-end","sm-state-success","sm-state-success-background","sm-state-success-fg-deep","sm-state-warning","sm-state-warning-background","sm-state-warning-fg-deep","sm-state-info","sm-state-info-background","sm-state-info-fg-deep","sm-state-error","sm-state-error-background","sm-graphics-primary","sm-graphics-secondary","sm-graphics-tertiary","sm-graphics-quaternary","sm-colored-shadow","sm-inset-shadow","sm-muted","sm-border","sm-border-subtle","sm-sidebar-gradient-start","sm-sidebar-gradient-mid","sm-sidebar-gradient-end","radius"],"additionalProperties":false}},"required":["light","dark"],"additionalProperties":false},"documents":{"type":"object","properties":{"legalName":{"type":"string","maxLength":200},"details":{"type":"string","maxLength":1000},"disclaimer":{"type":"string","maxLength":4000}},"required":["legalName","details","disclaimer"],"additionalProperties":false},"metadata":{"type":"object","properties":{"version":{"type":"integer","minimum":1},"updatedBy":{"type":"string","minLength":1},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"},"previewHash":{"type":"string"}},"required":["version","updatedBy","updatedAt"],"additionalProperties":false}},"required":["logo","images","fonts","cssVars","metadata"],"additionalProperties":false},"success":{"type":"boolean"}},"required":["theme","success"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"theme":{"logo":{"lightUrl":"/logos/northwind-logo-h-lm.svg","darkUrl":"/logos/northwind-logo-h-dm.svg","lightIconUrl":"/logos/settlemint-logo-i-lm.svg","darkIconUrl":"/logos/settlemint-logo-i-dm.svg","alt":"Northwind Coffee"},"images":{"backgroundLightUrl":"/backgrounds/background-lm.svg","backgroundDarkUrl":"/backgrounds/background-dm.svg","faviconUrl":"/favicon.ico","appleTouchIconUrl":"/apple-touch-icon.png","favicon96Url":"/favicon-96x96.png","faviconSvgUrl":"/favicon.svg"},"fonts":{"sans":{"family":"Figtree Variable","source":"fontsource","preload":true},"mono":{"family":"Red Hat Mono Variable","source":"fontsource","preload":true}},"cssVars":{"light":{"sm-text":"oklch(0.2264 0 87)","sm-text-strong":"oklch(0.205 0 0)","sm-text-default":"oklch(0.269 0 0)","sm-text-subtle":"oklch(0.442 0 0)","sm-text-disabled":"oklch(0.553 0 0)","sm-text-contrast":"oklch(1 0 87)","sm-accent":"oklch(0.55 0.2028 263.15)","sm-accent-hover":"oklch(0.55 0.2028 263.15 / 0.2)","sm-background-darkest":"oklch(0.9359 0.0275 265.45)","sm-background-lightest":"oklch(0.967 0.014 268.49)","sm-background-gradient-start":"oklch(0.9886 0.0026 286.35)","sm-background-gradient-end":"oklch(0.9691 0.0103 261.79)","sm-state-success":"oklch(0.2264 0 87)","sm-state-success-background":"oklch(0.812 0.1064 153.89)","sm-state-success-fg-deep":"hsl(140, 100%, 27%)","sm-state-warning":"oklch(0.2264 0 87)","sm-state-warning-background":"oklch(0.8354 0.1274 72.2)","sm-state-warning-fg-deep":"hsl(35, 92%, 33%)","sm-state-info":"oklch(0.2264 0 87)","sm-state-info-background":"oklch(0.6396 0.145 248.18)","sm-state-info-fg-deep":"hsl(210, 92%, 33%)","sm-state-error":"oklch(0.2264 0 87)","sm-state-error-background":"oklch(0.7044 0.1872 23.19)","sm-graphics-primary":"oklch(0.7675 0.0982 182.83)","sm-graphics-secondary":"oklch(0.7284 0.1133 210.64)","sm-graphics-tertiary":"oklch(0.6396 0.145 248.18)","sm-graphics-quaternary":"oklch(0.6296 0.2209 300.47)","sm-colored-shadow":"oklch(0.55 0.2028 263.15 / 0.12)","sm-inset-shadow":"rgba(0, 0, 0, 0.21)","sm-muted":"oklch(0.2264 0 87 / 32%)","sm-border":"oklch(0.2264 0 87 / 12%)","sm-border-subtle":"oklch(0.922 0 0)","sm-sidebar-gradient-start":"oklch(0.54 0.12 210.64)","sm-sidebar-gradient-mid":"oklch(0.56 0.15 248.18)","sm-sidebar-gradient-end":"oklch(0.55 0.1 182.83)","radius":"0.625rem"},"dark":{"sm-text":"oklch(1 0 87)","sm-text-strong":"oklch(0.985 0 0)","sm-text-default":"oklch(0.922 0 0)","sm-text-subtle":"oklch(0.72 0 0)","sm-text-disabled":"oklch(0.442 0 0)","sm-text-contrast":"oklch(0.2264 0 87)","sm-accent":"oklch(0.72 0.14 263.65)","sm-accent-hover":"oklch(0.72 0.14 263.65 / 0.2)","sm-background-darkest":"oklch(0.2264 0 0)","sm-background-lightest":"oklch(0.2809 0 0)","sm-background-gradient-start":"oklch(0.3368 0 0)","sm-background-gradient-end":"oklch(0.3092 0 0)","sm-state-success":"oklch(1 0 87)","sm-state-success-background":"oklch(0.812 0.1064 153.89)","sm-state-success-fg-deep":"hsl(140, 80%, 65%)","sm-state-warning":"oklch(1 0 87)","sm-state-warning-background":"oklch(0.8354 0.1274 72.2)","sm-state-warning-fg-deep":"hsl(35, 80%, 65%)","sm-state-info":"oklch(1 0 87)","sm-state-info-background":"oklch(0.6396 0.145 248.18)","sm-state-info-fg-deep":"hsl(210, 80%, 65%)","sm-state-error":"oklch(0.2264 0 87)","sm-state-error-background":"oklch(0.7044 0.1872 23.19)","sm-graphics-primary":"oklch(0.7675 0.0982 182.83)","sm-graphics-secondary":"oklch(0.7284 0.1133 210.64)","sm-graphics-tertiary":"oklch(0.6396 0.145 248.18)","sm-graphics-quaternary":"oklch(0.6296 0.2209 300.47)","sm-colored-shadow":"oklch(0.2264 0 0)","sm-inset-shadow":"rgba(0, 0, 0, 0.21)","sm-muted":"oklch(1 0 87 / 32%)","sm-border":"oklch(1 0 87 / 12%)","sm-border-subtle":"oklch(0.269 0 0)","sm-sidebar-gradient-start":"oklch(0.54 0.12 210.64)","sm-sidebar-gradient-mid":"oklch(0.56 0.15 248.18)","sm-sidebar-gradient-end":"oklch(0.55 0.1 182.83)","radius":"0.625rem"}},"metadata":{"version":4,"updatedBy":"user_northwind_owner","updatedAt":"2026-04-12T09:30:00.000Z"}},"success":true},"links":{"self":"/v2/settings/theme"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Replaces the stored theme for the authenticated organization and returns the new configuration. Send the full theme, including metadata.version from the last read; a stale version returns 409. The write waits until the theme is stored and is not queued. Send the new version on the next write.","summary":"Replace the stored organization theme","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"logo":{"type":"object","properties":{"lightUrl":{"type":"string","maxLength":2048},"darkUrl":{"type":"string","maxLength":2048},"lightIconUrl":{"type":"string","maxLength":2048},"darkIconUrl":{"type":"string","maxLength":2048},"authLightUrl":{"type":"string","maxLength":2048},"authDarkUrl":{"type":"string","maxLength":2048},"alt":{"type":"string","maxLength":200},"width":{"type":"integer","exclusiveMinimum":0},"height":{"type":"integer","exclusiveMinimum":0},"etag":{"type":"string"},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["alt"],"additionalProperties":false},"images":{"type":"object","properties":{"authOverlayLightUrl":{"type":"string","maxLength":2048},"authOverlayDarkUrl":{"type":"string","maxLength":2048},"backgroundLightUrl":{"type":"string","maxLength":2048},"backgroundDarkUrl":{"type":"string","maxLength":2048},"faviconUrl":{"type":"string","maxLength":2048},"appleTouchIconUrl":{"type":"string","maxLength":2048},"favicon96Url":{"type":"string","maxLength":2048},"faviconSvgUrl":{"type":"string","maxLength":2048},"etag":{"type":"string"},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"additionalProperties":false},"fonts":{"type":"object","properties":{"sans":{"type":"object","properties":{"family":{"type":"string","minLength":1,"maxLength":100},"source":{"type":"string","enum":["fontsource","google","custom"]},"weights":{"type":"array","items":{"type":"integer","minimum":100,"maximum":900}},"preload":{"type":"boolean"},"url":{"$ref":"#/components/schemas/HTTPURL"}},"required":["family","source","preload"],"additionalProperties":false},"mono":{"type":"object","properties":{"family":{"type":"string","minLength":1,"maxLength":100},"source":{"type":"string","enum":["fontsource","google","custom"]},"weights":{"type":"array","items":{"type":"integer","minimum":100,"maximum":900}},"preload":{"type":"boolean"},"url":{"$ref":"#/components/schemas/HTTPURL"}},"required":["family","source","preload"],"additionalProperties":false}},"required":["sans","mono"],"additionalProperties":false},"cssVars":{"type":"object","properties":{"light":{"type":"object","properties":{"sm-text":{"$ref":"#/components/schemas/CSSColor"},"sm-text-strong":{"$ref":"#/components/schemas/CSSColor"},"sm-text-default":{"$ref":"#/components/schemas/CSSColor"},"sm-text-subtle":{"$ref":"#/components/schemas/CSSColor"},"sm-text-disabled":{"$ref":"#/components/schemas/CSSColor"},"sm-text-contrast":{"$ref":"#/components/schemas/CSSColor"},"sm-accent":{"$ref":"#/components/schemas/CSSColor"},"sm-accent-hover":{"$ref":"#/components/schemas/CSSColor"},"sm-background-darkest":{"$ref":"#/components/schemas/CSSColor"},"sm-background-lightest":{"$ref":"#/components/schemas/CSSColor"},"sm-background-gradient-start":{"$ref":"#/components/schemas/CSSColor"},"sm-background-gradient-end":{"$ref":"#/components/schemas/CSSColor"},"sm-state-success":{"$ref":"#/components/schemas/CSSColor"},"sm-state-success-background":{"$ref":"#/components/schemas/CSSColor"},"sm-state-success-fg-deep":{"$ref":"#/components/schemas/CSSColor"},"sm-state-warning":{"$ref":"#/components/schemas/CSSColor"},"sm-state-warning-background":{"$ref":"#/components/schemas/CSSColor"},"sm-state-warning-fg-deep":{"$ref":"#/components/schemas/CSSColor"},"sm-state-info":{"$ref":"#/components/schemas/CSSColor"},"sm-state-info-background":{"$ref":"#/components/schemas/CSSColor"},"sm-state-info-fg-deep":{"$ref":"#/components/schemas/CSSColor"},"sm-state-error":{"$ref":"#/components/schemas/CSSColor"},"sm-state-error-background":{"$ref":"#/components/schemas/CSSColor"},"sm-graphics-primary":{"$ref":"#/components/schemas/CSSColor"},"sm-graphics-secondary":{"$ref":"#/components/schemas/CSSColor"},"sm-graphics-tertiary":{"$ref":"#/components/schemas/CSSColor"},"sm-graphics-quaternary":{"$ref":"#/components/schemas/CSSColor"},"sm-colored-shadow":{"$ref":"#/components/schemas/CSSColor"},"sm-inset-shadow":{"$ref":"#/components/schemas/CSSColor"},"sm-muted":{"$ref":"#/components/schemas/CSSColor"},"sm-border":{"$ref":"#/components/schemas/CSSColor"},"sm-border-subtle":{"$ref":"#/components/schemas/CSSColor"},"sm-sidebar-gradient-start":{"$ref":"#/components/schemas/CSSColor"},"sm-sidebar-gradient-mid":{"$ref":"#/components/schemas/CSSColor"},"sm-sidebar-gradient-end":{"$ref":"#/components/schemas/CSSColor"},"radius":{"$ref":"#/components/schemas/CSSColor"}},"required":["sm-text","sm-text-strong","sm-text-default","sm-text-subtle","sm-text-disabled","sm-text-contrast","sm-accent","sm-accent-hover","sm-background-darkest","sm-background-lightest","sm-background-gradient-start","sm-background-gradient-end","sm-state-success","sm-state-success-background","sm-state-success-fg-deep","sm-state-warning","sm-state-warning-background","sm-state-warning-fg-deep","sm-state-info","sm-state-info-background","sm-state-info-fg-deep","sm-state-error","sm-state-error-background","sm-graphics-primary","sm-graphics-secondary","sm-graphics-tertiary","sm-graphics-quaternary","sm-colored-shadow","sm-inset-shadow","sm-muted","sm-border","sm-border-subtle","sm-sidebar-gradient-start","sm-sidebar-gradient-mid","sm-sidebar-gradient-end","radius"],"additionalProperties":false},"dark":{"type":"object","properties":{"sm-text":{"$ref":"#/components/schemas/CSSColor"},"sm-text-strong":{"$ref":"#/components/schemas/CSSColor"},"sm-text-default":{"$ref":"#/components/schemas/CSSColor"},"sm-text-subtle":{"$ref":"#/components/schemas/CSSColor"},"sm-text-disabled":{"$ref":"#/components/schemas/CSSColor"},"sm-text-contrast":{"$ref":"#/components/schemas/CSSColor"},"sm-accent":{"$ref":"#/components/schemas/CSSColor"},"sm-accent-hover":{"$ref":"#/components/schemas/CSSColor"},"sm-background-darkest":{"$ref":"#/components/schemas/CSSColor"},"sm-background-lightest":{"$ref":"#/components/schemas/CSSColor"},"sm-background-gradient-start":{"$ref":"#/components/schemas/CSSColor"},"sm-background-gradient-end":{"$ref":"#/components/schemas/CSSColor"},"sm-state-success":{"$ref":"#/components/schemas/CSSColor"},"sm-state-success-background":{"$ref":"#/components/schemas/CSSColor"},"sm-state-success-fg-deep":{"$ref":"#/components/schemas/CSSColor"},"sm-state-warning":{"$ref":"#/components/schemas/CSSColor"},"sm-state-warning-background":{"$ref":"#/components/schemas/CSSColor"},"sm-state-warning-fg-deep":{"$ref":"#/components/schemas/CSSColor"},"sm-state-info":{"$ref":"#/components/schemas/CSSColor"},"sm-state-info-background":{"$ref":"#/components/schemas/CSSColor"},"sm-state-info-fg-deep":{"$ref":"#/components/schemas/CSSColor"},"sm-state-error":{"$ref":"#/components/schemas/CSSColor"},"sm-state-error-background":{"$ref":"#/components/schemas/CSSColor"},"sm-graphics-primary":{"$ref":"#/components/schemas/CSSColor"},"sm-graphics-secondary":{"$ref":"#/components/schemas/CSSColor"},"sm-graphics-tertiary":{"$ref":"#/components/schemas/CSSColor"},"sm-graphics-quaternary":{"$ref":"#/components/schemas/CSSColor"},"sm-colored-shadow":{"$ref":"#/components/schemas/CSSColor"},"sm-inset-shadow":{"$ref":"#/components/schemas/CSSColor"},"sm-muted":{"$ref":"#/components/schemas/CSSColor"},"sm-border":{"$ref":"#/components/schemas/CSSColor"},"sm-border-subtle":{"$ref":"#/components/schemas/CSSColor"},"sm-sidebar-gradient-start":{"$ref":"#/components/schemas/CSSColor"},"sm-sidebar-gradient-mid":{"$ref":"#/components/schemas/CSSColor"},"sm-sidebar-gradient-end":{"$ref":"#/components/schemas/CSSColor"},"radius":{"$ref":"#/components/schemas/CSSColor"}},"required":["sm-text","sm-text-strong","sm-text-default","sm-text-subtle","sm-text-disabled","sm-text-contrast","sm-accent","sm-accent-hover","sm-background-darkest","sm-background-lightest","sm-background-gradient-start","sm-background-gradient-end","sm-state-success","sm-state-success-background","sm-state-success-fg-deep","sm-state-warning","sm-state-warning-background","sm-state-warning-fg-deep","sm-state-info","sm-state-info-background","sm-state-info-fg-deep","sm-state-error","sm-state-error-background","sm-graphics-primary","sm-graphics-secondary","sm-graphics-tertiary","sm-graphics-quaternary","sm-colored-shadow","sm-inset-shadow","sm-muted","sm-border","sm-border-subtle","sm-sidebar-gradient-start","sm-sidebar-gradient-mid","sm-sidebar-gradient-end","radius"],"additionalProperties":false}},"required":["light","dark"],"additionalProperties":false},"documents":{"type":"object","properties":{"legalName":{"type":"string","maxLength":200},"details":{"type":"string","maxLength":1000},"disclaimer":{"type":"string","maxLength":4000}},"required":["legalName","details","disclaimer"],"additionalProperties":false,"description":"Omit to keep the organization's stored document settings."},"metadata":{"type":"object","properties":{"version":{"type":"integer","minimum":1},"updatedBy":{"type":"string","minLength":1},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"},"previewHash":{"type":"string"}},"required":["version","updatedBy","updatedAt"],"additionalProperties":false},"paletteAction":{"type":"string","enum":["reset-to-platform"]}},"required":["logo","images","fonts","cssVars","metadata"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/settings/theme-previews":{"post":{"tags":["Platform settings"],"operationId":"platform.settings.settingsThemePreview","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Temporary preview of the stored theme plus the requested diff. `data.expiresAt` is a Unix timestamp in seconds.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"theme":{"type":"object","properties":{"logo":{"type":"object","properties":{"lightUrl":{"type":"string","maxLength":2048},"darkUrl":{"type":"string","maxLength":2048},"lightIconUrl":{"type":"string","maxLength":2048},"darkIconUrl":{"type":"string","maxLength":2048},"authLightUrl":{"type":"string","maxLength":2048},"authDarkUrl":{"type":"string","maxLength":2048},"alt":{"type":"string","maxLength":200},"width":{"type":"integer","exclusiveMinimum":0},"height":{"type":"integer","exclusiveMinimum":0},"etag":{"type":"string"},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["alt"],"additionalProperties":false},"images":{"type":"object","properties":{"authOverlayLightUrl":{"type":"string","maxLength":2048},"authOverlayDarkUrl":{"type":"string","maxLength":2048},"backgroundLightUrl":{"type":"string","maxLength":2048},"backgroundDarkUrl":{"type":"string","maxLength":2048},"faviconUrl":{"type":"string","maxLength":2048},"appleTouchIconUrl":{"type":"string","maxLength":2048},"favicon96Url":{"type":"string","maxLength":2048},"faviconSvgUrl":{"type":"string","maxLength":2048},"etag":{"type":"string"},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"additionalProperties":false},"fonts":{"type":"object","properties":{"sans":{"type":"object","properties":{"family":{"type":"string","minLength":1,"maxLength":100},"source":{"type":"string","enum":["fontsource","google","custom"]},"weights":{"type":"array","items":{"type":"integer","minimum":100,"maximum":900}},"preload":{"type":"boolean"},"url":{"$ref":"#/components/schemas/HTTPURL"}},"required":["family","source","preload"],"additionalProperties":false},"mono":{"type":"object","properties":{"family":{"type":"string","minLength":1,"maxLength":100},"source":{"type":"string","enum":["fontsource","google","custom"]},"weights":{"type":"array","items":{"type":"integer","minimum":100,"maximum":900}},"preload":{"type":"boolean"},"url":{"$ref":"#/components/schemas/HTTPURL"}},"required":["family","source","preload"],"additionalProperties":false}},"required":["sans","mono"],"additionalProperties":false},"cssVars":{"type":"object","properties":{"light":{"type":"object","properties":{"sm-text":{"$ref":"#/components/schemas/CSSColor"},"sm-text-strong":{"$ref":"#/components/schemas/CSSColor"},"sm-text-default":{"$ref":"#/components/schemas/CSSColor"},"sm-text-subtle":{"$ref":"#/components/schemas/CSSColor"},"sm-text-disabled":{"$ref":"#/components/schemas/CSSColor"},"sm-text-contrast":{"$ref":"#/components/schemas/CSSColor"},"sm-accent":{"$ref":"#/components/schemas/CSSColor"},"sm-accent-hover":{"$ref":"#/components/schemas/CSSColor"},"sm-background-darkest":{"$ref":"#/components/schemas/CSSColor"},"sm-background-lightest":{"$ref":"#/components/schemas/CSSColor"},"sm-background-gradient-start":{"$ref":"#/components/schemas/CSSColor"},"sm-background-gradient-end":{"$ref":"#/components/schemas/CSSColor"},"sm-state-success":{"$ref":"#/components/schemas/CSSColor"},"sm-state-success-background":{"$ref":"#/components/schemas/CSSColor"},"sm-state-success-fg-deep":{"$ref":"#/components/schemas/CSSColor"},"sm-state-warning":{"$ref":"#/components/schemas/CSSColor"},"sm-state-warning-background":{"$ref":"#/components/schemas/CSSColor"},"sm-state-warning-fg-deep":{"$ref":"#/components/schemas/CSSColor"},"sm-state-info":{"$ref":"#/components/schemas/CSSColor"},"sm-state-info-background":{"$ref":"#/components/schemas/CSSColor"},"sm-state-info-fg-deep":{"$ref":"#/components/schemas/CSSColor"},"sm-state-error":{"$ref":"#/components/schemas/CSSColor"},"sm-state-error-background":{"$ref":"#/components/schemas/CSSColor"},"sm-graphics-primary":{"$ref":"#/components/schemas/CSSColor"},"sm-graphics-secondary":{"$ref":"#/components/schemas/CSSColor"},"sm-graphics-tertiary":{"$ref":"#/components/schemas/CSSColor"},"sm-graphics-quaternary":{"$ref":"#/components/schemas/CSSColor"},"sm-colored-shadow":{"$ref":"#/components/schemas/CSSColor"},"sm-inset-shadow":{"$ref":"#/components/schemas/CSSColor"},"sm-muted":{"$ref":"#/components/schemas/CSSColor"},"sm-border":{"$ref":"#/components/schemas/CSSColor"},"sm-border-subtle":{"$ref":"#/components/schemas/CSSColor"},"sm-sidebar-gradient-start":{"$ref":"#/components/schemas/CSSColor"},"sm-sidebar-gradient-mid":{"$ref":"#/components/schemas/CSSColor"},"sm-sidebar-gradient-end":{"$ref":"#/components/schemas/CSSColor"},"radius":{"$ref":"#/components/schemas/CSSColor"}},"required":["sm-text","sm-text-strong","sm-text-default","sm-text-subtle","sm-text-disabled","sm-text-contrast","sm-accent","sm-accent-hover","sm-background-darkest","sm-background-lightest","sm-background-gradient-start","sm-background-gradient-end","sm-state-success","sm-state-success-background","sm-state-success-fg-deep","sm-state-warning","sm-state-warning-background","sm-state-warning-fg-deep","sm-state-info","sm-state-info-background","sm-state-info-fg-deep","sm-state-error","sm-state-error-background","sm-graphics-primary","sm-graphics-secondary","sm-graphics-tertiary","sm-graphics-quaternary","sm-colored-shadow","sm-inset-shadow","sm-muted","sm-border","sm-border-subtle","sm-sidebar-gradient-start","sm-sidebar-gradient-mid","sm-sidebar-gradient-end","radius"],"additionalProperties":false},"dark":{"type":"object","properties":{"sm-text":{"$ref":"#/components/schemas/CSSColor"},"sm-text-strong":{"$ref":"#/components/schemas/CSSColor"},"sm-text-default":{"$ref":"#/components/schemas/CSSColor"},"sm-text-subtle":{"$ref":"#/components/schemas/CSSColor"},"sm-text-disabled":{"$ref":"#/components/schemas/CSSColor"},"sm-text-contrast":{"$ref":"#/components/schemas/CSSColor"},"sm-accent":{"$ref":"#/components/schemas/CSSColor"},"sm-accent-hover":{"$ref":"#/components/schemas/CSSColor"},"sm-background-darkest":{"$ref":"#/components/schemas/CSSColor"},"sm-background-lightest":{"$ref":"#/components/schemas/CSSColor"},"sm-background-gradient-start":{"$ref":"#/components/schemas/CSSColor"},"sm-background-gradient-end":{"$ref":"#/components/schemas/CSSColor"},"sm-state-success":{"$ref":"#/components/schemas/CSSColor"},"sm-state-success-background":{"$ref":"#/components/schemas/CSSColor"},"sm-state-success-fg-deep":{"$ref":"#/components/schemas/CSSColor"},"sm-state-warning":{"$ref":"#/components/schemas/CSSColor"},"sm-state-warning-background":{"$ref":"#/components/schemas/CSSColor"},"sm-state-warning-fg-deep":{"$ref":"#/components/schemas/CSSColor"},"sm-state-info":{"$ref":"#/components/schemas/CSSColor"},"sm-state-info-background":{"$ref":"#/components/schemas/CSSColor"},"sm-state-info-fg-deep":{"$ref":"#/components/schemas/CSSColor"},"sm-state-error":{"$ref":"#/components/schemas/CSSColor"},"sm-state-error-background":{"$ref":"#/components/schemas/CSSColor"},"sm-graphics-primary":{"$ref":"#/components/schemas/CSSColor"},"sm-graphics-secondary":{"$ref":"#/components/schemas/CSSColor"},"sm-graphics-tertiary":{"$ref":"#/components/schemas/CSSColor"},"sm-graphics-quaternary":{"$ref":"#/components/schemas/CSSColor"},"sm-colored-shadow":{"$ref":"#/components/schemas/CSSColor"},"sm-inset-shadow":{"$ref":"#/components/schemas/CSSColor"},"sm-muted":{"$ref":"#/components/schemas/CSSColor"},"sm-border":{"$ref":"#/components/schemas/CSSColor"},"sm-border-subtle":{"$ref":"#/components/schemas/CSSColor"},"sm-sidebar-gradient-start":{"$ref":"#/components/schemas/CSSColor"},"sm-sidebar-gradient-mid":{"$ref":"#/components/schemas/CSSColor"},"sm-sidebar-gradient-end":{"$ref":"#/components/schemas/CSSColor"},"radius":{"$ref":"#/components/schemas/CSSColor"}},"required":["sm-text","sm-text-strong","sm-text-default","sm-text-subtle","sm-text-disabled","sm-text-contrast","sm-accent","sm-accent-hover","sm-background-darkest","sm-background-lightest","sm-background-gradient-start","sm-background-gradient-end","sm-state-success","sm-state-success-background","sm-state-success-fg-deep","sm-state-warning","sm-state-warning-background","sm-state-warning-fg-deep","sm-state-info","sm-state-info-background","sm-state-info-fg-deep","sm-state-error","sm-state-error-background","sm-graphics-primary","sm-graphics-secondary","sm-graphics-tertiary","sm-graphics-quaternary","sm-colored-shadow","sm-inset-shadow","sm-muted","sm-border","sm-border-subtle","sm-sidebar-gradient-start","sm-sidebar-gradient-mid","sm-sidebar-gradient-end","radius"],"additionalProperties":false}},"required":["light","dark"],"additionalProperties":false},"documents":{"type":"object","properties":{"legalName":{"type":"string","maxLength":200},"details":{"type":"string","maxLength":1000},"disclaimer":{"type":"string","maxLength":4000}},"required":["legalName","details","disclaimer"],"additionalProperties":false},"metadata":{"type":"object","properties":{"version":{"type":"integer","minimum":1},"updatedBy":{"type":"string","minLength":1},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"},"previewHash":{"type":"string"}},"required":["version","updatedBy","updatedAt"],"additionalProperties":false}},"required":["logo","images","fonts","cssVars","metadata"],"additionalProperties":false},"expiresAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["theme","expiresAt"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"theme":{"logo":{"lightUrl":"/logos/northwind-logo-h-lm.svg","darkUrl":"/logos/northwind-logo-h-dm.svg","lightIconUrl":"/logos/settlemint-logo-i-lm.svg","darkIconUrl":"/logos/settlemint-logo-i-dm.svg","alt":"Northwind Coffee"},"images":{"backgroundLightUrl":"/backgrounds/background-lm.svg","backgroundDarkUrl":"/backgrounds/background-dm.svg","faviconUrl":"/favicon.ico","appleTouchIconUrl":"/apple-touch-icon.png","favicon96Url":"/favicon-96x96.png","faviconSvgUrl":"/favicon.svg"},"fonts":{"sans":{"family":"Figtree Variable","source":"fontsource","preload":true},"mono":{"family":"Red Hat Mono Variable","source":"fontsource","preload":true}},"cssVars":{"light":{"sm-text":"oklch(0.2264 0 87)","sm-text-strong":"oklch(0.205 0 0)","sm-text-default":"oklch(0.269 0 0)","sm-text-subtle":"oklch(0.442 0 0)","sm-text-disabled":"oklch(0.553 0 0)","sm-text-contrast":"oklch(1 0 87)","sm-accent":"oklch(0.55 0.2028 263.15)","sm-accent-hover":"oklch(0.55 0.2028 263.15 / 0.2)","sm-background-darkest":"oklch(0.9359 0.0275 265.45)","sm-background-lightest":"oklch(0.967 0.014 268.49)","sm-background-gradient-start":"oklch(0.9886 0.0026 286.35)","sm-background-gradient-end":"oklch(0.9691 0.0103 261.79)","sm-state-success":"oklch(0.2264 0 87)","sm-state-success-background":"oklch(0.812 0.1064 153.89)","sm-state-success-fg-deep":"hsl(140, 100%, 27%)","sm-state-warning":"oklch(0.2264 0 87)","sm-state-warning-background":"oklch(0.8354 0.1274 72.2)","sm-state-warning-fg-deep":"hsl(35, 92%, 33%)","sm-state-info":"oklch(0.2264 0 87)","sm-state-info-background":"oklch(0.6396 0.145 248.18)","sm-state-info-fg-deep":"hsl(210, 92%, 33%)","sm-state-error":"oklch(0.2264 0 87)","sm-state-error-background":"oklch(0.7044 0.1872 23.19)","sm-graphics-primary":"oklch(0.7675 0.0982 182.83)","sm-graphics-secondary":"oklch(0.7284 0.1133 210.64)","sm-graphics-tertiary":"oklch(0.6396 0.145 248.18)","sm-graphics-quaternary":"oklch(0.6296 0.2209 300.47)","sm-colored-shadow":"oklch(0.55 0.2028 263.15 / 0.12)","sm-inset-shadow":"rgba(0, 0, 0, 0.21)","sm-muted":"oklch(0.2264 0 87 / 32%)","sm-border":"oklch(0.2264 0 87 / 12%)","sm-border-subtle":"oklch(0.922 0 0)","sm-sidebar-gradient-start":"oklch(0.54 0.12 210.64)","sm-sidebar-gradient-mid":"oklch(0.56 0.15 248.18)","sm-sidebar-gradient-end":"oklch(0.55 0.1 182.83)","radius":"0.625rem"},"dark":{"sm-text":"oklch(1 0 87)","sm-text-strong":"oklch(0.985 0 0)","sm-text-default":"oklch(0.922 0 0)","sm-text-subtle":"oklch(0.72 0 0)","sm-text-disabled":"oklch(0.442 0 0)","sm-text-contrast":"oklch(0.2264 0 87)","sm-accent":"oklch(0.72 0.14 263.65)","sm-accent-hover":"oklch(0.72 0.14 263.65 / 0.2)","sm-background-darkest":"oklch(0.2264 0 0)","sm-background-lightest":"oklch(0.2809 0 0)","sm-background-gradient-start":"oklch(0.3368 0 0)","sm-background-gradient-end":"oklch(0.3092 0 0)","sm-state-success":"oklch(1 0 87)","sm-state-success-background":"oklch(0.812 0.1064 153.89)","sm-state-success-fg-deep":"hsl(140, 80%, 65%)","sm-state-warning":"oklch(1 0 87)","sm-state-warning-background":"oklch(0.8354 0.1274 72.2)","sm-state-warning-fg-deep":"hsl(35, 80%, 65%)","sm-state-info":"oklch(1 0 87)","sm-state-info-background":"oklch(0.6396 0.145 248.18)","sm-state-info-fg-deep":"hsl(210, 80%, 65%)","sm-state-error":"oklch(0.2264 0 87)","sm-state-error-background":"oklch(0.7044 0.1872 23.19)","sm-graphics-primary":"oklch(0.7675 0.0982 182.83)","sm-graphics-secondary":"oklch(0.7284 0.1133 210.64)","sm-graphics-tertiary":"oklch(0.6396 0.145 248.18)","sm-graphics-quaternary":"oklch(0.6296 0.2209 300.47)","sm-colored-shadow":"oklch(0.2264 0 0)","sm-inset-shadow":"rgba(0, 0, 0, 0.21)","sm-muted":"oklch(1 0 87 / 32%)","sm-border":"oklch(1 0 87 / 12%)","sm-border-subtle":"oklch(0.269 0 0)","sm-sidebar-gradient-start":"oklch(0.54 0.12 210.64)","sm-sidebar-gradient-mid":"oklch(0.56 0.15 248.18)","sm-sidebar-gradient-end":"oklch(0.55 0.1 182.83)","radius":"0.625rem"}},"metadata":{"version":4,"updatedBy":"user_northwind_owner","updatedAt":"2026-04-12T09:30:00.000Z"}},"expiresAt":1744447800},"links":{"self":"/v2/settings/theme-previews"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Builds a temporary theme from the stored theme plus an optional diff, without writing it. ttlSeconds defaults to the platform preview lifetime and accepts at most 300. baseVersion must match the stored theme version or the platform returns 409. The preview expires at the returned Unix timestamp. Repeating the call creates a new preview.","summary":"Preview an organization theme change","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"diff":{"anyOf":[{"type":"object","properties":{"logo":{"anyOf":[{"type":"object","properties":{"lightUrl":{"anyOf":[{"type":"string","maxLength":2048},{"type":"null"}]},"darkUrl":{"anyOf":[{"type":"string","maxLength":2048},{"type":"null"}]},"lightIconUrl":{"anyOf":[{"type":"string","maxLength":2048},{"type":"null"}]},"darkIconUrl":{"anyOf":[{"type":"string","maxLength":2048},{"type":"null"}]},"authLightUrl":{"anyOf":[{"type":"string","maxLength":2048},{"type":"null"}]},"authDarkUrl":{"anyOf":[{"type":"string","maxLength":2048},{"type":"null"}]},"alt":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"width":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"height":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"etag":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"images":{"anyOf":[{"type":"object","properties":{"authOverlayLightUrl":{"anyOf":[{"type":"string","maxLength":2048},{"type":"null"}]},"authOverlayDarkUrl":{"anyOf":[{"type":"string","maxLength":2048},{"type":"null"}]},"backgroundLightUrl":{"anyOf":[{"type":"string","maxLength":2048},{"type":"null"}]},"backgroundDarkUrl":{"anyOf":[{"type":"string","maxLength":2048},{"type":"null"}]},"faviconUrl":{"anyOf":[{"type":"string","maxLength":2048},{"type":"null"}]},"appleTouchIconUrl":{"anyOf":[{"type":"string","maxLength":2048},{"type":"null"}]},"favicon96Url":{"anyOf":[{"type":"string","maxLength":2048},{"type":"null"}]},"faviconSvgUrl":{"anyOf":[{"type":"string","maxLength":2048},{"type":"null"}]},"etag":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"fonts":{"anyOf":[{"type":"object","properties":{"sans":{"anyOf":[{"type":"object","properties":{"family":{"anyOf":[{"type":"string","minLength":1,"maxLength":100},{"type":"null"}]},"source":{"anyOf":[{"type":"string","enum":["fontsource","google","custom"]},{"type":"null"}]},"weights":{"anyOf":[{"type":"array","items":{"type":"integer","minimum":100,"maximum":900}},{"type":"null"}]},"preload":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"url":{"anyOf":[{"$ref":"#/components/schemas/HTTPURL"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"mono":{"anyOf":[{"type":"object","properties":{"family":{"anyOf":[{"type":"string","minLength":1,"maxLength":100},{"type":"null"}]},"source":{"anyOf":[{"type":"string","enum":["fontsource","google","custom"]},{"type":"null"}]},"weights":{"anyOf":[{"type":"array","items":{"type":"integer","minimum":100,"maximum":900}},{"type":"null"}]},"preload":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"url":{"anyOf":[{"$ref":"#/components/schemas/HTTPURL"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"cssVars":{"anyOf":[{"type":"object","properties":{"light":{"anyOf":[{"type":"object","properties":{"sm-text":{"$ref":"#/components/schemas/CSSColor"},"sm-text-strong":{"$ref":"#/components/schemas/CSSColor"},"sm-text-default":{"$ref":"#/components/schemas/CSSColor"},"sm-text-subtle":{"$ref":"#/components/schemas/CSSColor"},"sm-text-disabled":{"$ref":"#/components/schemas/CSSColor"},"sm-text-contrast":{"$ref":"#/components/schemas/CSSColor"},"sm-accent":{"$ref":"#/components/schemas/CSSColor"},"sm-accent-hover":{"$ref":"#/components/schemas/CSSColor"},"sm-background-darkest":{"$ref":"#/components/schemas/CSSColor"},"sm-background-lightest":{"$ref":"#/components/schemas/CSSColor"},"sm-background-gradient-start":{"$ref":"#/components/schemas/CSSColor"},"sm-background-gradient-end":{"$ref":"#/components/schemas/CSSColor"},"sm-state-success":{"$ref":"#/components/schemas/CSSColor"},"sm-state-success-background":{"$ref":"#/components/schemas/CSSColor"},"sm-state-success-fg-deep":{"$ref":"#/components/schemas/CSSColor"},"sm-state-warning":{"$ref":"#/components/schemas/CSSColor"},"sm-state-warning-background":{"$ref":"#/components/schemas/CSSColor"},"sm-state-warning-fg-deep":{"$ref":"#/components/schemas/CSSColor"},"sm-state-info":{"$ref":"#/components/schemas/CSSColor"},"sm-state-info-background":{"$ref":"#/components/schemas/CSSColor"},"sm-state-info-fg-deep":{"$ref":"#/components/schemas/CSSColor"},"sm-state-error":{"$ref":"#/components/schemas/CSSColor"},"sm-state-error-background":{"$ref":"#/components/schemas/CSSColor"},"sm-graphics-primary":{"$ref":"#/components/schemas/CSSColor"},"sm-graphics-secondary":{"$ref":"#/components/schemas/CSSColor"},"sm-graphics-tertiary":{"$ref":"#/components/schemas/CSSColor"},"sm-graphics-quaternary":{"$ref":"#/components/schemas/CSSColor"},"sm-colored-shadow":{"$ref":"#/components/schemas/CSSColor"},"sm-inset-shadow":{"$ref":"#/components/schemas/CSSColor"},"sm-muted":{"$ref":"#/components/schemas/CSSColor"},"sm-border":{"$ref":"#/components/schemas/CSSColor"},"sm-border-subtle":{"$ref":"#/components/schemas/CSSColor"},"sm-sidebar-gradient-start":{"$ref":"#/components/schemas/CSSColor"},"sm-sidebar-gradient-mid":{"$ref":"#/components/schemas/CSSColor"},"sm-sidebar-gradient-end":{"$ref":"#/components/schemas/CSSColor"},"radius":{"$ref":"#/components/schemas/CSSColor"}},"additionalProperties":false},{"type":"null"}]},"dark":{"anyOf":[{"type":"object","properties":{"sm-text":{"$ref":"#/components/schemas/CSSColor"},"sm-text-strong":{"$ref":"#/components/schemas/CSSColor"},"sm-text-default":{"$ref":"#/components/schemas/CSSColor"},"sm-text-subtle":{"$ref":"#/components/schemas/CSSColor"},"sm-text-disabled":{"$ref":"#/components/schemas/CSSColor"},"sm-text-contrast":{"$ref":"#/components/schemas/CSSColor"},"sm-accent":{"$ref":"#/components/schemas/CSSColor"},"sm-accent-hover":{"$ref":"#/components/schemas/CSSColor"},"sm-background-darkest":{"$ref":"#/components/schemas/CSSColor"},"sm-background-lightest":{"$ref":"#/components/schemas/CSSColor"},"sm-background-gradient-start":{"$ref":"#/components/schemas/CSSColor"},"sm-background-gradient-end":{"$ref":"#/components/schemas/CSSColor"},"sm-state-success":{"$ref":"#/components/schemas/CSSColor"},"sm-state-success-background":{"$ref":"#/components/schemas/CSSColor"},"sm-state-success-fg-deep":{"$ref":"#/components/schemas/CSSColor"},"sm-state-warning":{"$ref":"#/components/schemas/CSSColor"},"sm-state-warning-background":{"$ref":"#/components/schemas/CSSColor"},"sm-state-warning-fg-deep":{"$ref":"#/components/schemas/CSSColor"},"sm-state-info":{"$ref":"#/components/schemas/CSSColor"},"sm-state-info-background":{"$ref":"#/components/schemas/CSSColor"},"sm-state-info-fg-deep":{"$ref":"#/components/schemas/CSSColor"},"sm-state-error":{"$ref":"#/components/schemas/CSSColor"},"sm-state-error-background":{"$ref":"#/components/schemas/CSSColor"},"sm-graphics-primary":{"$ref":"#/components/schemas/CSSColor"},"sm-graphics-secondary":{"$ref":"#/components/schemas/CSSColor"},"sm-graphics-tertiary":{"$ref":"#/components/schemas/CSSColor"},"sm-graphics-quaternary":{"$ref":"#/components/schemas/CSSColor"},"sm-colored-shadow":{"$ref":"#/components/schemas/CSSColor"},"sm-inset-shadow":{"$ref":"#/components/schemas/CSSColor"},"sm-muted":{"$ref":"#/components/schemas/CSSColor"},"sm-border":{"$ref":"#/components/schemas/CSSColor"},"sm-border-subtle":{"$ref":"#/components/schemas/CSSColor"},"sm-sidebar-gradient-start":{"$ref":"#/components/schemas/CSSColor"},"sm-sidebar-gradient-mid":{"$ref":"#/components/schemas/CSSColor"},"sm-sidebar-gradient-end":{"$ref":"#/components/schemas/CSSColor"},"radius":{"$ref":"#/components/schemas/CSSColor"}},"additionalProperties":false},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"documents":{"anyOf":[{"type":"object","properties":{"legalName":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"details":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"disclaimer":{"anyOf":[{"type":"string","maxLength":4000},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"metadata":{"anyOf":[{"type":"object","properties":{"version":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}]},"updatedBy":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"updatedAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"previewHash":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]},"ttlSeconds":{"anyOf":[{"type":"integer","minimum":1,"maximum":300},{"type":"null"}]},"baseVersion":{"type":"integer","minimum":1}},"required":["baseVersion"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/settings/theme-logo-uploads":{"post":{"tags":["Platform settings"],"operationId":"platform.settings.settingsThemeUploadLogo","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Upload target for one logo slot. PUT the file bytes to `data.uploadUrl`. `data.publicUrl` is where the object will be readable after the upload.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"mode":{"type":"string","enum":["light","dark","lightIcon","darkIcon","authLight","authDark","authOverlayLight","authOverlayDark","backgroundLight","backgroundDark","favicon","appleTouchIcon","favicon96","faviconSvg"]},"bucket":{"type":"string"},"objectKey":{"type":"string"},"publicUrl":{"type":"string"},"uploadUrl":{"$ref":"#/components/schemas/HTTPURL"},"method":{"type":"string","enum":["PUT"]},"headers":{"type":"object","additionalProperties":{"type":"string"}},"expiresAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["mode","bucket","objectKey","publicUrl","uploadUrl","method"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"mode":"light","bucket":"dalp-public","objectKey":"logos/northwind-coffee/light.png","publicUrl":"https://assets.northwind.example/logos/northwind-coffee/light.png","uploadUrl":"https://assets.northwind.example/upload/logos/northwind-coffee/light.png","method":"PUT"},"links":{"self":"/v2/settings/theme-logo-uploads"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns a short-lived PUT URL for one logo or image slot on the authenticated organization. fileSize must be between 1 byte and 5 MiB. The platform does not store the file on this call; you PUT the bytes to uploadUrl. Repeating the call issues a new URL.","summary":"Request an organization theme logo upload","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"mode":{"type":"string","enum":["light","dark","lightIcon","darkIcon","authLight","authDark","authOverlayLight","authOverlayDark","backgroundLight","backgroundDark","favicon","appleTouchIcon","favicon96","faviconSvg"]},"fileName":{"type":"string","minLength":1,"maxLength":255},"contentType":{"type":"string","enum":["image/svg+xml","image/png","image/jpeg","image/webp","image/x-icon","image/vnd.microsoft.icon"]},"fileSize":{"type":"integer","minimum":1,"maximum":5242880},"previousUrl":{"type":"string"}},"required":["mode","fileName","contentType","fileSize"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/settings/theme-logo-proxy-uploads":{"post":{"tags":["Platform settings"],"operationId":"platform.settings.settingsThemeProxyUploadLogo","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Stored logo after a proxy upload. `data.publicUrl` is the object the theme can reference.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"mode":{"type":"string","enum":["light","dark","lightIcon","darkIcon","authLight","authDark","authOverlayLight","authOverlayDark","backgroundLight","backgroundDark","favicon","appleTouchIcon","favicon96","faviconSvg"]},"objectKey":{"type":"string"},"publicUrl":{"type":"string"},"etag":{"type":"string"}},"required":["mode","objectKey","publicUrl"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"mode":"light","objectKey":"logos/northwind-coffee/light.png","publicUrl":"https://assets.northwind.example/logos/northwind-coffee/light.png"},"links":{"self":"/v2/settings/theme-logo-proxy-uploads"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Stores one logo or image slot from base64 fileData and returns the public object URL. Use this when the browser cannot PUT directly to object storage. Encoded data must stay within 7 MiB. Repeating the call stores a new object.","summary":"Upload an organization theme logo through the platform","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"mode":{"type":"string","enum":["light","dark","lightIcon","darkIcon","authLight","authDark","authOverlayLight","authOverlayDark","backgroundLight","backgroundDark","favicon","appleTouchIcon","favicon96","faviconSvg"]},"fileName":{"type":"string","minLength":1,"maxLength":255},"contentType":{"type":"string","enum":["image/svg+xml","image/png","image/jpeg","image/webp","image/x-icon","image/vnd.microsoft.icon"]},"fileData":{"type":"string","minLength":1,"maxLength":7340032},"previousUrl":{"type":"string"}},"required":["mode","fileName","contentType","fileData"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/settings/global-theme":{"get":{"tags":["Platform settings"],"operationId":"platform.settings.settingsGlobalThemeGet","parameters":[],"responses":{"200":{"description":"Organization whose theme every tenant inherits. Both fields are null when global theming is off.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"orgId":{"anyOf":[{"$ref":"#/components/schemas/OrganizationId"},{"type":"null"}]},"orgName":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["orgId","orgName"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"orgId":"org_northwind_coffee","orgName":"Northwind Coffee"},"links":{"self":"/v2/settings/global-theme"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the organization whose theme every tenant inherits, or null fields when global theming is off. The call is a stored read and is safe to retry.","summary":"Read the global theme source","x-dalp-auth":"session-or-api-key"},"patch":{"tags":["Platform settings"],"operationId":"platform.settings.settingsGlobalThemeSet","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Whether the platform stored the global theme source.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"success":{"type":"boolean"}},"required":["success"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"success":true},"links":{"self":"/v2/settings/global-theme"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Selects the organization whose theme every tenant inherits, or disables global theming when orgId is null. Only a platform administrator can write this. An unknown organization returns 404. The write waits until the stored source is updated. Repeating the same orgId stores the same source again.","summary":"Set the global theme source organization","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"orgId":{"anyOf":[{"$ref":"#/components/schemas/OrganizationId"},{"type":"null"}]}},"required":["orgId"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/settings/asset-class-definitions":{"get":{"tags":["Asset design"],"operationId":"platform.settings.assetClassDefinitionsList","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000}},"allOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"object","properties":{"eq":{"anyOf":[{"type":"string"},{"type":"number"}]},"ne":{"anyOf":[{"type":"string"},{"type":"number"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]}},"additionalProperties":false}]}}]},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"One page of asset class definitions visible to the active organization. `meta.total` counts every matching definition rather than the rows on this page.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1,"maxLength":255},"slug":{"type":"string","minLength":1,"maxLength":255,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},"description":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"isSystem":{"type":"boolean"},"isHidden":{"type":"boolean"},"organizationId":{"anyOf":[{"$ref":"#/components/schemas/OrganizationId"},{"type":"null"}]},"createdBy":{"anyOf":[{"$ref":"#/components/schemas/UserId"},{"type":"null"}]},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["id","name","slug","description","isSystem","isHidden","organizationId","createdBy","createdAt","updatedAt"],"additionalProperties":false}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"acd_northwind_equity","name":"Equity","description":"Shares in Northwind Coffee operating companies","slug":"equity","isSystem":false,"isHidden":false,"organizationId":"org_northwind_coffee","createdBy":"user_northwind_owner","createdAt":"2026-03-04T09:12:41.000Z","updatedAt":"2026-04-12T09:30:00.000Z"}],"meta":{"total":1},"links":{"self":"/v2/settings/asset-class-definitions?sort=name&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/settings/asset-class-definitions?sort=name&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/settings/asset-class-definitions?sort=name&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of asset class definitions visible to the active organization, including system classes unless filtered out. Default sort is name. Filter with filter[name], filter[isSystem], filter[isHidden], filter[createdAt], filter[updatedAt], or filter[q]. The page is stored settings data. Repeating the read is safe.","summary":"Page through asset class definitions","x-dalp-auth":"session-or-api-key"},"post":{"tags":["Asset design"],"operationId":"platform.settings.assetClassDefinitionsCreate","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The stored asset class. Reuse `data.id` for later read, update, or delete.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1,"maxLength":255},"slug":{"type":"string","minLength":1,"maxLength":255,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},"description":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"isSystem":{"type":"boolean"},"isHidden":{"type":"boolean"},"organizationId":{"anyOf":[{"$ref":"#/components/schemas/OrganizationId"},{"type":"null"}]},"createdBy":{"anyOf":[{"$ref":"#/components/schemas/UserId"},{"type":"null"}]},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["id","name","slug","description","isSystem","isHidden","organizationId","createdBy","createdAt","updatedAt"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"acd_northwind_equity","name":"Equity","description":"Shares in Northwind Coffee operating companies","slug":"equity","isSystem":false,"isHidden":false,"organizationId":"org_northwind_coffee","createdBy":"user_northwind_owner","createdAt":"2026-03-04T09:12:41.000Z","updatedAt":"2026-04-12T09:30:00.000Z"},"links":{"self":"/v2/settings/asset-class-definitions/acd_northwind_equity"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","SETTINGS_TEMPLATE_NAME_ALREADY_EXISTS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Creates an asset class in the active organization. name is required. slug is kebab-case and is derived from the name when omitted. The write waits until the row is stored and is not queued. A second call with the same name or slug fails uniqueness.","summary":"Create an asset class definition","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255},"description":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"slug":{"type":"string","minLength":1,"maxLength":255,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"}},"required":["name"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/settings/asset-class-definitions/{id}":{"get":{"tags":["Asset design"],"operationId":"platform.settings.assetClassDefinitionsRead","parameters":[{"name":"id","in":"path","schema":{"type":"string","minLength":1},"required":true}],"responses":{"200":{"description":"The stored asset class. Reuse `data.id` for later read, update, or delete.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1,"maxLength":255},"slug":{"type":"string","minLength":1,"maxLength":255,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},"description":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"isSystem":{"type":"boolean"},"isHidden":{"type":"boolean"},"organizationId":{"anyOf":[{"$ref":"#/components/schemas/OrganizationId"},{"type":"null"}]},"createdBy":{"anyOf":[{"$ref":"#/components/schemas/UserId"},{"type":"null"}]},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["id","name","slug","description","isSystem","isHidden","organizationId","createdBy","createdAt","updatedAt"],"additionalProperties":false},{"type":"null"}]},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"acd_northwind_equity","name":"Equity","description":"Shares in Northwind Coffee operating companies","slug":"equity","isSystem":false,"isHidden":false,"organizationId":"org_northwind_coffee","createdBy":"user_northwind_owner","createdAt":"2026-03-04T09:12:41.000Z","updatedAt":"2026-04-12T09:30:00.000Z"},"links":{"self":"/v2/settings/asset-class-definitions/acd_northwind_equity"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the asset class named by the id path parameter. The id is the identifier the platform assigned at create time. A missing or other-organization identifier returns an error. The call is a stored read and is safe to retry.","summary":"Read an asset class definition","x-dalp-auth":"session-or-api-key"},"put":{"tags":["Asset design"],"operationId":"platform.settings.assetClassDefinitionsUpdate","parameters":[{"name":"id","in":"path","schema":{"type":"string","minLength":1},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The stored asset class. Reuse `data.id` for later read, update, or delete.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1,"maxLength":255},"slug":{"type":"string","minLength":1,"maxLength":255,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},"description":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"isSystem":{"type":"boolean"},"isHidden":{"type":"boolean"},"organizationId":{"anyOf":[{"$ref":"#/components/schemas/OrganizationId"},{"type":"null"}]},"createdBy":{"anyOf":[{"$ref":"#/components/schemas/UserId"},{"type":"null"}]},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["id","name","slug","description","isSystem","isHidden","organizationId","createdBy","createdAt","updatedAt"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"acd_northwind_equity","name":"Equity","description":"Shares in Northwind Coffee operating companies","slug":"equity","isSystem":false,"isHidden":false,"organizationId":"org_northwind_coffee","createdBy":"user_northwind_owner","createdAt":"2026-03-04T09:12:41.000Z","updatedAt":"2026-04-12T09:30:00.000Z"},"links":{"self":"/v2/settings/asset-class-definitions/acd_northwind_equity"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","SETTINGS_TEMPLATE_NAME_ALREADY_EXISTS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Updates the named asset class in the active organization. Every body field is optional and omitted fields stay unchanged. isHidden hides or shows the class for this organization. The write waits until the row is stored. Repeating an identical body stores the same fields again.","summary":"Update an asset class definition","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255},"description":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"slug":{"type":"string","minLength":1,"maxLength":255,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},"isHidden":{"type":"boolean"}},"additionalProperties":false}}},"required":false},"x-dalp-auth":"session-or-api-key"},"delete":{"tags":["Asset design"],"operationId":"platform.settings.assetClassDefinitionsDelete","parameters":[{"name":"id","in":"path","schema":{"type":"string","minLength":1},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The named asset class is gone from the active organization. data is null because no replacement row remains. Treat HTTP 200 plus this body as confirmation, then refresh the asset-class list. A later delete of the same id returns an error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteResponse"},"examples":{"example-1":{"value":{"data":null}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Removes the asset class named by the id path parameter from the active organization. System classes cannot be deleted. A missing identifier returns an error. The delete waits until the row is gone. Repeating the call after a successful delete returns an error.","summary":"Delete an asset class definition","x-dalp-auth":"session-or-api-key"}},"/api/v2/settings/asset-type-templates":{"get":{"tags":["Asset design"],"operationId":"platform.settings.assetTypeTemplatesList","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000}},"allOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"object","properties":{"eq":{"anyOf":[{"type":"string"},{"type":"number"}]},"ne":{"anyOf":[{"type":"string"},{"type":"number"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]}},"additionalProperties":false}]}}]},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"One page of asset type templates visible to the active organization. Each row's `isPublished` says whether the active organization offers that template for issuance. `meta.total` counts every matching template rather than the rows on this page.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1,"maxLength":255},"slug":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"assetClass":{"type":"string","minLength":1},"typeId":{"type":"string","minLength":1},"baseAssetType":{"$ref":"#/components/schemas/AssetType"},"isSystem":{"type":"boolean"},"isDraft":{"type":"boolean"},"isHidden":{"type":"boolean"},"organizationId":{"anyOf":[{"$ref":"#/components/schemas/OrganizationId"},{"type":"null"}]},"version":{"type":"integer","minimum":0},"requiredFeatures":{"type":"array","items":{"$ref":"#/components/schemas/TokenFeatureId"}},"capabilities":{"type":"array","items":{"$ref":"#/components/schemas/InstrumentCapability"}},"metadataSchema":{"anyOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["string"]},"minLength":{"type":"integer","minimum":0},"maxLength":{"type":"integer","exclusiveMinimum":0}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["number"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["date"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["enum"]},"options":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["isin"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["address"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["bps"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["percentage"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["currency-code"]},"options":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["country-code"]},"options":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["lei"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["cusip"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["figi"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["decimal-money"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["url"]}},"required":["mutability","label","type"],"additionalProperties":false}]}},{"type":"null"}]},"featureConfig":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"configuration":{"type":"object","properties":{"definitionId":{"type":"string","minLength":1,"maxLength":128},"definitionRevision":{"type":"integer","minimum":1},"fields":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureTemplateConfigurationNode"}}},"required":["definitionId","definitionRevision","fields"],"additionalProperties":false},"policy":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureFieldPolicy"}},"instanceId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"}},"required":["configuration"],"additionalProperties":false},"maxItems":128},{"type":"null"}]},"hiddenFromSidebar":{"type":"boolean"},"feedMaxStalenessSeconds":{"anyOf":[{"type":"string","pattern":"^(?:0|[1-9]\\d*)$","maxLength":78},{"type":"null"}]},"assetClassId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"complianceTemplateId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"structure":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"isSystem":{"type":"boolean"},"revision":{"type":"integer","minimum":1},"role":{"type":"string","pattern":"^[a-z][a-z0-9-]{1,31}$"},"members":{"type":"array","items":{"type":"object","properties":{"memberId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"},"label":{"type":"string","minLength":1,"maxLength":64},"features":{"type":"array","items":{"type":"object","properties":{"configuration":{"type":"object","properties":{"definitionId":{"type":"string","minLength":1,"maxLength":128},"definitionRevision":{"type":"integer","minimum":1},"fields":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureTemplateConfigurationNode"}}},"required":["definitionId","definitionRevision","fields"],"additionalProperties":false},"policy":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureFieldPolicy"}},"instanceId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"}},"required":["configuration"],"additionalProperties":false},"maxItems":128},"templateId":{"type":"string","minLength":1,"maxLength":255},"role":{"type":"string","pattern":"^[a-z][a-z0-9-]{1,31}$"},"name":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1}},"required":["memberId","label","features","templateId","role","name","slug"],"additionalProperties":false}}},"required":["id","slug","name","description","isSystem","revision","role","members"],"additionalProperties":false},{"type":"null"}]},"structures":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"isSystem":{"type":"boolean"},"revision":{"type":"integer","minimum":1},"role":{"type":"string","pattern":"^[a-z][a-z0-9-]{1,31}$"},"members":{"type":"array","items":{"type":"object","properties":{"memberId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"},"label":{"type":"string","minLength":1,"maxLength":64},"features":{"type":"array","items":{"type":"object","properties":{"configuration":{"type":"object","properties":{"definitionId":{"type":"string","minLength":1,"maxLength":128},"definitionRevision":{"type":"integer","minimum":1},"fields":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureTemplateConfigurationNode"}}},"required":["definitionId","definitionRevision","fields"],"additionalProperties":false},"policy":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureFieldPolicy"}},"instanceId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"}},"required":["configuration"],"additionalProperties":false},"maxItems":128},"templateId":{"type":"string","minLength":1,"maxLength":255},"role":{"type":"string","pattern":"^[a-z][a-z0-9-]{1,31}$"},"name":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1}},"required":["memberId","label","features","templateId","role","name","slug"],"additionalProperties":false}}},"required":["id","slug","name","description","isSystem","revision","role","members"],"additionalProperties":false}},"createdBy":{"anyOf":[{"$ref":"#/components/schemas/UserId"},{"type":"null"}]},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"},"isPublished":{"type":"boolean"},"publishedStructures":{"type":"array","items":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/AssetTypeTemplateStructureId"},"name":{"type":"string","minLength":1,"maxLength":255}},"required":["id","name"],"additionalProperties":false},"description":"The instrument structures published for the organisation that use this template. While any is listed, the template cannot be unpublished."}},"required":["id","name","slug","description","assetClass","typeId","baseAssetType","isSystem","isDraft","isHidden","organizationId","version","requiredFeatures","metadataSchema","featureConfig","createdBy","createdAt","updatedAt","isPublished","publishedStructures"],"additionalProperties":false}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"att_northwind_registered_bond","name":"Registered bond","slug":"registered-bond","description":"EUR registered bond issued by Northwind Coffee","assetClass":"fixed-income","typeId":"bond","baseAssetType":"bond","isSystem":false,"isDraft":false,"isHidden":false,"organizationId":"org_northwind_coffee","version":1,"requiredFeatures":["historical-balances"],"capabilities":["share-capital"],"metadataSchema":null,"featureConfig":null,"hiddenFromSidebar":false,"feedMaxStalenessSeconds":"1","assetClassId":"acd_northwind_equity","complianceTemplateId":null,"structure":{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","slug":"northwind-coffee","name":"Core holdings","description":"Quarterly reserve and holder position report for an asset-referenced token issuer.","isSystem":false,"revision":1,"role":"member","members":[{"memberId":"01990000-0000-7000-8000-000000000001","label":"Pay in USDC","features":[],"templateId":"att_northwind_founder_shares","role":"member","name":"Core holdings","slug":"northwind-coffee"}]},"structures":[{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","slug":"northwind-coffee","name":"Core holdings","description":"Quarterly reserve and holder position report for an asset-referenced token issuer.","isSystem":false,"revision":1,"role":"member","members":[{"memberId":"01990000-0000-7000-8000-000000000001","label":"Pay in USDC","features":[],"templateId":"att_northwind_founder_shares","role":"member","name":"Core holdings","slug":"northwind-coffee"}]}],"createdBy":"user_northwind_owner","createdAt":"2026-03-04T09:12:41.000Z","updatedAt":"2026-04-12T09:30:00.000Z","isPublished":true,"publishedStructures":[{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","name":"Core holdings"}]}],"meta":{"total":1,"facets":{}},"links":{"self":"/v2/settings/asset-type-templates?sort=name&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/settings/asset-type-templates?sort=name&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/settings/asset-type-templates?sort=name&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of asset type templates visible to the active organization, including system templates unless filtered out. Default sort is name. Filter with filter[name], filter[slug], filter[assetClass], filter[typeId], filter[isDraft], filter[isSystem], filter[isHidden], filter[isPublished], filter[containsFeature], or filter[q]. The page is stored settings data. Repeating the read is safe.","summary":"Page through asset type templates","x-dalp-auth":"session-or-api-key"},"post":{"tags":["Asset design"],"operationId":"platform.settings.assetTypeTemplatesCreate","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The stored asset type template. Reuse `data.id` for later read, update, publish, or delete.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1,"maxLength":255},"slug":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"assetClass":{"type":"string","minLength":1},"typeId":{"type":"string","minLength":1},"baseAssetType":{"$ref":"#/components/schemas/AssetType"},"isSystem":{"type":"boolean"},"isDraft":{"type":"boolean"},"isHidden":{"type":"boolean"},"organizationId":{"anyOf":[{"$ref":"#/components/schemas/OrganizationId"},{"type":"null"}]},"version":{"type":"integer","minimum":0},"requiredFeatures":{"type":"array","items":{"$ref":"#/components/schemas/TokenFeatureId"}},"capabilities":{"type":"array","items":{"$ref":"#/components/schemas/InstrumentCapability"}},"metadataSchema":{"anyOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["string"]},"minLength":{"type":"integer","minimum":0},"maxLength":{"type":"integer","exclusiveMinimum":0}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["number"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["date"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["enum"]},"options":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["isin"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["address"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["bps"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["percentage"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["currency-code"]},"options":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["country-code"]},"options":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["lei"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["cusip"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["figi"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["decimal-money"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["url"]}},"required":["mutability","label","type"],"additionalProperties":false}]}},{"type":"null"}]},"featureConfig":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"configuration":{"type":"object","properties":{"definitionId":{"type":"string","minLength":1,"maxLength":128},"definitionRevision":{"type":"integer","minimum":1},"fields":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureTemplateConfigurationNode"}}},"required":["definitionId","definitionRevision","fields"],"additionalProperties":false},"policy":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureFieldPolicy"}},"instanceId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"}},"required":["configuration"],"additionalProperties":false},"maxItems":128},{"type":"null"}]},"hiddenFromSidebar":{"type":"boolean"},"feedMaxStalenessSeconds":{"anyOf":[{"type":"string","pattern":"^(?:0|[1-9]\\d*)$","maxLength":78},{"type":"null"}]},"assetClassId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"complianceTemplateId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"structure":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"isSystem":{"type":"boolean"},"revision":{"type":"integer","minimum":1},"role":{"type":"string","pattern":"^[a-z][a-z0-9-]{1,31}$"},"members":{"type":"array","items":{"type":"object","properties":{"memberId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"},"label":{"type":"string","minLength":1,"maxLength":64},"features":{"type":"array","items":{"type":"object","properties":{"configuration":{"type":"object","properties":{"definitionId":{"type":"string","minLength":1,"maxLength":128},"definitionRevision":{"type":"integer","minimum":1},"fields":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureTemplateConfigurationNode"}}},"required":["definitionId","definitionRevision","fields"],"additionalProperties":false},"policy":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureFieldPolicy"}},"instanceId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"}},"required":["configuration"],"additionalProperties":false},"maxItems":128},"templateId":{"type":"string","minLength":1,"maxLength":255},"role":{"type":"string","pattern":"^[a-z][a-z0-9-]{1,31}$"},"name":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1}},"required":["memberId","label","features","templateId","role","name","slug"],"additionalProperties":false}}},"required":["id","slug","name","description","isSystem","revision","role","members"],"additionalProperties":false},{"type":"null"}]},"structures":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"isSystem":{"type":"boolean"},"revision":{"type":"integer","minimum":1},"role":{"type":"string","pattern":"^[a-z][a-z0-9-]{1,31}$"},"members":{"type":"array","items":{"type":"object","properties":{"memberId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"},"label":{"type":"string","minLength":1,"maxLength":64},"features":{"type":"array","items":{"type":"object","properties":{"configuration":{"type":"object","properties":{"definitionId":{"type":"string","minLength":1,"maxLength":128},"definitionRevision":{"type":"integer","minimum":1},"fields":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureTemplateConfigurationNode"}}},"required":["definitionId","definitionRevision","fields"],"additionalProperties":false},"policy":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureFieldPolicy"}},"instanceId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"}},"required":["configuration"],"additionalProperties":false},"maxItems":128},"templateId":{"type":"string","minLength":1,"maxLength":255},"role":{"type":"string","pattern":"^[a-z][a-z0-9-]{1,31}$"},"name":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1}},"required":["memberId","label","features","templateId","role","name","slug"],"additionalProperties":false}}},"required":["id","slug","name","description","isSystem","revision","role","members"],"additionalProperties":false}},"createdBy":{"anyOf":[{"$ref":"#/components/schemas/UserId"},{"type":"null"}]},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"},"isPublished":{"type":"boolean"},"publishedStructures":{"type":"array","items":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/AssetTypeTemplateStructureId"},"name":{"type":"string","minLength":1,"maxLength":255}},"required":["id","name"],"additionalProperties":false},"description":"The instrument structures published for the organisation that use this template. While any is listed, the template cannot be unpublished."}},"required":["id","name","slug","description","assetClass","typeId","baseAssetType","isSystem","isDraft","isHidden","organizationId","version","requiredFeatures","metadataSchema","featureConfig","createdBy","createdAt","updatedAt","isPublished","publishedStructures"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"att_northwind_registered_bond","name":"Registered bond","slug":"registered-bond","description":"EUR registered bond issued by Northwind Coffee","assetClass":"fixed-income","typeId":"bond","baseAssetType":"bond","isSystem":false,"isDraft":false,"isHidden":false,"organizationId":"org_northwind_coffee","version":1,"requiredFeatures":["historical-balances"],"capabilities":["share-capital"],"metadataSchema":null,"featureConfig":null,"hiddenFromSidebar":false,"feedMaxStalenessSeconds":"1","assetClassId":"acd_northwind_equity","complianceTemplateId":null,"structure":{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","slug":"northwind-coffee","name":"Core holdings","description":"Quarterly reserve and holder position report for an asset-referenced token issuer.","isSystem":false,"revision":1,"role":"member","members":[{"memberId":"01990000-0000-7000-8000-000000000001","label":"Pay in USDC","features":[],"templateId":"att_northwind_founder_shares","role":"member","name":"Core holdings","slug":"northwind-coffee"}]},"structures":[{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","slug":"northwind-coffee","name":"Core holdings","description":"Quarterly reserve and holder position report for an asset-referenced token issuer.","isSystem":false,"revision":1,"role":"member","members":[{"memberId":"01990000-0000-7000-8000-000000000001","label":"Pay in USDC","features":[],"templateId":"att_northwind_founder_shares","role":"member","name":"Core holdings","slug":"northwind-coffee"}]}],"createdBy":"user_northwind_owner","createdAt":"2026-03-04T09:12:41.000Z","updatedAt":"2026-04-12T09:30:00.000Z","isPublished":true,"publishedStructures":[{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","name":"Core holdings"}]},"links":{"self":"/v2/settings/asset-type-templates/att_northwind_registered_bond"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","SETTINGS_TEMPLATE_NAME_ALREADY_EXISTS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Creates a draft asset type template in the active organization. baseAssetType is the deployable type that sets pricing fields. Optional assetClassId and complianceTemplateId link the template to those settings. The write waits until the row is stored and is not queued. Name must be unique in the organization.","summary":"Create an asset type template","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255},"description":{"type":"string"},"typeId":{"type":"string","minLength":1},"baseAssetType":{"$ref":"#/components/schemas/AssetType"},"assetClassId":{"type":"string","minLength":1},"complianceTemplateId":{"type":"string","minLength":1},"requiredFeatures":{"type":"array","items":{"$ref":"#/components/schemas/TokenFeatureId"}},"capabilities":{"type":"array","items":{"$ref":"#/components/schemas/InstrumentCapability"}},"metadataSchema":{"type":"object","additionalProperties":{"anyOf":[{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["string"]},"minLength":{"type":"integer","minimum":0},"maxLength":{"type":"integer","exclusiveMinimum":0}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["number"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["date"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["enum"]},"options":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["isin"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["address"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["bps"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["percentage"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["currency-code"]},"options":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["country-code"]},"options":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["lei"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["cusip"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["figi"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["decimal-money"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["url"]}},"required":["mutability","label","type"],"additionalProperties":false}]}},"featureConfig":{"type":"array","items":{"type":"object","properties":{"configuration":{"type":"object","properties":{"definitionId":{"type":"string","minLength":1,"maxLength":128},"definitionRevision":{"type":"integer","minimum":1},"fields":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureTemplateConfigurationNode"}}},"required":["definitionId","definitionRevision","fields"],"additionalProperties":false},"policy":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureFieldPolicy"}},"instanceId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"}},"required":["configuration"],"additionalProperties":false},"maxItems":128}},"required":["name","typeId","baseAssetType"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/settings/asset-type-templates/{id}":{"get":{"tags":["Asset design"],"operationId":"platform.settings.assetTypeTemplatesRead","parameters":[{"name":"id","in":"path","schema":{"type":"string","minLength":1},"required":true}],"responses":{"200":{"description":"The stored asset type template. Reuse `data.id` for later read, update, publish, or delete.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1,"maxLength":255},"slug":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"assetClass":{"type":"string","minLength":1},"typeId":{"type":"string","minLength":1},"baseAssetType":{"$ref":"#/components/schemas/AssetType"},"isSystem":{"type":"boolean"},"isDraft":{"type":"boolean"},"isHidden":{"type":"boolean"},"organizationId":{"anyOf":[{"$ref":"#/components/schemas/OrganizationId"},{"type":"null"}]},"version":{"type":"integer","minimum":0},"requiredFeatures":{"type":"array","items":{"$ref":"#/components/schemas/TokenFeatureId"}},"capabilities":{"type":"array","items":{"$ref":"#/components/schemas/InstrumentCapability"}},"metadataSchema":{"anyOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["string"]},"minLength":{"type":"integer","minimum":0},"maxLength":{"type":"integer","exclusiveMinimum":0}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["number"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["date"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["enum"]},"options":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["isin"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["address"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["bps"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["percentage"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["currency-code"]},"options":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["country-code"]},"options":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["lei"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["cusip"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["figi"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["decimal-money"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["url"]}},"required":["mutability","label","type"],"additionalProperties":false}]}},{"type":"null"}]},"featureConfig":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"configuration":{"type":"object","properties":{"definitionId":{"type":"string","minLength":1,"maxLength":128},"definitionRevision":{"type":"integer","minimum":1},"fields":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureTemplateConfigurationNode"}}},"required":["definitionId","definitionRevision","fields"],"additionalProperties":false},"policy":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureFieldPolicy"}},"instanceId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"}},"required":["configuration"],"additionalProperties":false},"maxItems":128},{"type":"null"}]},"hiddenFromSidebar":{"type":"boolean"},"feedMaxStalenessSeconds":{"anyOf":[{"type":"string","pattern":"^(?:0|[1-9]\\d*)$","maxLength":78},{"type":"null"}]},"assetClassId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"complianceTemplateId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"structure":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"isSystem":{"type":"boolean"},"revision":{"type":"integer","minimum":1},"role":{"type":"string","pattern":"^[a-z][a-z0-9-]{1,31}$"},"members":{"type":"array","items":{"type":"object","properties":{"memberId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"},"label":{"type":"string","minLength":1,"maxLength":64},"features":{"type":"array","items":{"type":"object","properties":{"configuration":{"type":"object","properties":{"definitionId":{"type":"string","minLength":1,"maxLength":128},"definitionRevision":{"type":"integer","minimum":1},"fields":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureTemplateConfigurationNode"}}},"required":["definitionId","definitionRevision","fields"],"additionalProperties":false},"policy":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureFieldPolicy"}},"instanceId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"}},"required":["configuration"],"additionalProperties":false},"maxItems":128},"templateId":{"type":"string","minLength":1,"maxLength":255},"role":{"type":"string","pattern":"^[a-z][a-z0-9-]{1,31}$"},"name":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1}},"required":["memberId","label","features","templateId","role","name","slug"],"additionalProperties":false}}},"required":["id","slug","name","description","isSystem","revision","role","members"],"additionalProperties":false},{"type":"null"}]},"structures":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"isSystem":{"type":"boolean"},"revision":{"type":"integer","minimum":1},"role":{"type":"string","pattern":"^[a-z][a-z0-9-]{1,31}$"},"members":{"type":"array","items":{"type":"object","properties":{"memberId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"},"label":{"type":"string","minLength":1,"maxLength":64},"features":{"type":"array","items":{"type":"object","properties":{"configuration":{"type":"object","properties":{"definitionId":{"type":"string","minLength":1,"maxLength":128},"definitionRevision":{"type":"integer","minimum":1},"fields":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureTemplateConfigurationNode"}}},"required":["definitionId","definitionRevision","fields"],"additionalProperties":false},"policy":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureFieldPolicy"}},"instanceId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"}},"required":["configuration"],"additionalProperties":false},"maxItems":128},"templateId":{"type":"string","minLength":1,"maxLength":255},"role":{"type":"string","pattern":"^[a-z][a-z0-9-]{1,31}$"},"name":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1}},"required":["memberId","label","features","templateId","role","name","slug"],"additionalProperties":false}}},"required":["id","slug","name","description","isSystem","revision","role","members"],"additionalProperties":false}},"createdBy":{"anyOf":[{"$ref":"#/components/schemas/UserId"},{"type":"null"}]},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"},"isPublished":{"type":"boolean"},"publishedStructures":{"type":"array","items":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/AssetTypeTemplateStructureId"},"name":{"type":"string","minLength":1,"maxLength":255}},"required":["id","name"],"additionalProperties":false},"description":"The instrument structures published for the organisation that use this template. While any is listed, the template cannot be unpublished."}},"required":["id","name","slug","description","assetClass","typeId","baseAssetType","isSystem","isDraft","isHidden","organizationId","version","requiredFeatures","metadataSchema","featureConfig","createdBy","createdAt","updatedAt","isPublished","publishedStructures"],"additionalProperties":false},{"type":"null"}]},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"att_northwind_registered_bond","name":"Registered bond","slug":"registered-bond","description":"EUR registered bond issued by Northwind Coffee","assetClass":"fixed-income","typeId":"bond","baseAssetType":"bond","isSystem":false,"isDraft":false,"isHidden":false,"organizationId":"org_northwind_coffee","version":1,"requiredFeatures":["historical-balances"],"capabilities":["share-capital"],"metadataSchema":null,"featureConfig":null,"hiddenFromSidebar":false,"feedMaxStalenessSeconds":"1","assetClassId":"acd_northwind_equity","complianceTemplateId":null,"structure":{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","slug":"northwind-coffee","name":"Core holdings","description":"Quarterly reserve and holder position report for an asset-referenced token issuer.","isSystem":false,"revision":1,"role":"member","members":[{"memberId":"01990000-0000-7000-8000-000000000001","label":"Pay in USDC","features":[],"templateId":"att_northwind_founder_shares","role":"member","name":"Core holdings","slug":"northwind-coffee"}]},"structures":[{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","slug":"northwind-coffee","name":"Core holdings","description":"Quarterly reserve and holder position report for an asset-referenced token issuer.","isSystem":false,"revision":1,"role":"member","members":[{"memberId":"01990000-0000-7000-8000-000000000001","label":"Pay in USDC","features":[],"templateId":"att_northwind_founder_shares","role":"member","name":"Core holdings","slug":"northwind-coffee"}]}],"createdBy":"user_northwind_owner","createdAt":"2026-03-04T09:12:41.000Z","updatedAt":"2026-04-12T09:30:00.000Z","isPublished":true,"publishedStructures":[{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","name":"Core holdings"}]},"links":{"self":"/v2/settings/asset-type-templates/att_northwind_registered_bond"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the asset type template named by the id path parameter. The id is the identifier the platform assigned at create time. A missing or other-organization identifier returns an error. The call is a stored read and is safe to retry.","summary":"Read an asset type template","x-dalp-auth":"session-or-api-key"},"put":{"tags":["Asset design"],"operationId":"platform.settings.assetTypeTemplatesUpdate","parameters":[{"name":"id","in":"path","schema":{"type":"string","minLength":1},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The stored asset type template. Reuse `data.id` for later read, update, publish, or delete.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1,"maxLength":255},"slug":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"assetClass":{"type":"string","minLength":1},"typeId":{"type":"string","minLength":1},"baseAssetType":{"$ref":"#/components/schemas/AssetType"},"isSystem":{"type":"boolean"},"isDraft":{"type":"boolean"},"isHidden":{"type":"boolean"},"organizationId":{"anyOf":[{"$ref":"#/components/schemas/OrganizationId"},{"type":"null"}]},"version":{"type":"integer","minimum":0},"requiredFeatures":{"type":"array","items":{"$ref":"#/components/schemas/TokenFeatureId"}},"capabilities":{"type":"array","items":{"$ref":"#/components/schemas/InstrumentCapability"}},"metadataSchema":{"anyOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["string"]},"minLength":{"type":"integer","minimum":0},"maxLength":{"type":"integer","exclusiveMinimum":0}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["number"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["date"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["enum"]},"options":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["isin"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["address"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["bps"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["percentage"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["currency-code"]},"options":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["country-code"]},"options":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["lei"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["cusip"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["figi"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["decimal-money"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["url"]}},"required":["mutability","label","type"],"additionalProperties":false}]}},{"type":"null"}]},"featureConfig":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"configuration":{"type":"object","properties":{"definitionId":{"type":"string","minLength":1,"maxLength":128},"definitionRevision":{"type":"integer","minimum":1},"fields":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureTemplateConfigurationNode"}}},"required":["definitionId","definitionRevision","fields"],"additionalProperties":false},"policy":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureFieldPolicy"}},"instanceId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"}},"required":["configuration"],"additionalProperties":false},"maxItems":128},{"type":"null"}]},"hiddenFromSidebar":{"type":"boolean"},"feedMaxStalenessSeconds":{"anyOf":[{"type":"string","pattern":"^(?:0|[1-9]\\d*)$","maxLength":78},{"type":"null"}]},"assetClassId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"complianceTemplateId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"structure":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"isSystem":{"type":"boolean"},"revision":{"type":"integer","minimum":1},"role":{"type":"string","pattern":"^[a-z][a-z0-9-]{1,31}$"},"members":{"type":"array","items":{"type":"object","properties":{"memberId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"},"label":{"type":"string","minLength":1,"maxLength":64},"features":{"type":"array","items":{"type":"object","properties":{"configuration":{"type":"object","properties":{"definitionId":{"type":"string","minLength":1,"maxLength":128},"definitionRevision":{"type":"integer","minimum":1},"fields":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureTemplateConfigurationNode"}}},"required":["definitionId","definitionRevision","fields"],"additionalProperties":false},"policy":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureFieldPolicy"}},"instanceId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"}},"required":["configuration"],"additionalProperties":false},"maxItems":128},"templateId":{"type":"string","minLength":1,"maxLength":255},"role":{"type":"string","pattern":"^[a-z][a-z0-9-]{1,31}$"},"name":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1}},"required":["memberId","label","features","templateId","role","name","slug"],"additionalProperties":false}}},"required":["id","slug","name","description","isSystem","revision","role","members"],"additionalProperties":false},{"type":"null"}]},"structures":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"isSystem":{"type":"boolean"},"revision":{"type":"integer","minimum":1},"role":{"type":"string","pattern":"^[a-z][a-z0-9-]{1,31}$"},"members":{"type":"array","items":{"type":"object","properties":{"memberId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"},"label":{"type":"string","minLength":1,"maxLength":64},"features":{"type":"array","items":{"type":"object","properties":{"configuration":{"type":"object","properties":{"definitionId":{"type":"string","minLength":1,"maxLength":128},"definitionRevision":{"type":"integer","minimum":1},"fields":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureTemplateConfigurationNode"}}},"required":["definitionId","definitionRevision","fields"],"additionalProperties":false},"policy":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureFieldPolicy"}},"instanceId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"}},"required":["configuration"],"additionalProperties":false},"maxItems":128},"templateId":{"type":"string","minLength":1,"maxLength":255},"role":{"type":"string","pattern":"^[a-z][a-z0-9-]{1,31}$"},"name":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1}},"required":["memberId","label","features","templateId","role","name","slug"],"additionalProperties":false}}},"required":["id","slug","name","description","isSystem","revision","role","members"],"additionalProperties":false}},"createdBy":{"anyOf":[{"$ref":"#/components/schemas/UserId"},{"type":"null"}]},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"},"isPublished":{"type":"boolean"},"publishedStructures":{"type":"array","items":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/AssetTypeTemplateStructureId"},"name":{"type":"string","minLength":1,"maxLength":255}},"required":["id","name"],"additionalProperties":false},"description":"The instrument structures published for the organisation that use this template. While any is listed, the template cannot be unpublished."}},"required":["id","name","slug","description","assetClass","typeId","baseAssetType","isSystem","isDraft","isHidden","organizationId","version","requiredFeatures","metadataSchema","featureConfig","createdBy","createdAt","updatedAt","isPublished","publishedStructures"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"att_northwind_registered_bond","name":"Registered bond","slug":"registered-bond","description":"EUR registered bond issued by Northwind Coffee","assetClass":"fixed-income","typeId":"bond","baseAssetType":"bond","isSystem":false,"isDraft":false,"isHidden":false,"organizationId":"org_northwind_coffee","version":1,"requiredFeatures":["historical-balances"],"capabilities":["share-capital"],"metadataSchema":null,"featureConfig":null,"hiddenFromSidebar":false,"feedMaxStalenessSeconds":"1","assetClassId":"acd_northwind_equity","complianceTemplateId":null,"structure":{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","slug":"northwind-coffee","name":"Core holdings","description":"Quarterly reserve and holder position report for an asset-referenced token issuer.","isSystem":false,"revision":1,"role":"member","members":[{"memberId":"01990000-0000-7000-8000-000000000001","label":"Pay in USDC","features":[],"templateId":"att_northwind_founder_shares","role":"member","name":"Core holdings","slug":"northwind-coffee"}]},"structures":[{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","slug":"northwind-coffee","name":"Core holdings","description":"Quarterly reserve and holder position report for an asset-referenced token issuer.","isSystem":false,"revision":1,"role":"member","members":[{"memberId":"01990000-0000-7000-8000-000000000001","label":"Pay in USDC","features":[],"templateId":"att_northwind_founder_shares","role":"member","name":"Core holdings","slug":"northwind-coffee"}]}],"createdBy":"user_northwind_owner","createdAt":"2026-03-04T09:12:41.000Z","updatedAt":"2026-04-12T09:30:00.000Z","isPublished":true,"publishedStructures":[{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","name":"Core holdings"}]},"links":{"self":"/v2/settings/asset-type-templates/att_northwind_registered_bond"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_TYPE_TEMPLATE_STORAGE_LOCKED","CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","SETTINGS_TEMPLATE_NAME_ALREADY_EXISTS"]}},"required":["code"]}],"examples":[{"code":"ASSET_TYPE_TEMPLATE_STORAGE_LOCKED","status":409,"message":"The storage or mutability of a metadata field cannot change while deployed tokens use the template","data":{"id":"DALP-12114","why":"Tokens deployed from the template already carry metadata under its keys; moving a field between on-chain and off-chain storage would leave one key in both stores, removing an immutable field would orphan a value that cannot change, and loosening an immutable field would let a later write replace a value that was immutable when it was written. `data.keys` lists the locked fields.","fix":"Keep the storage and mutability of those fields as they are, or add a new field under a key no deployed token holds.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Updates the named draft or published template in the active organization. Every body field is optional and omitted fields stay unchanged. baseAssetType cannot change after publish. isHidden hides or shows the template for this organization. The write waits until the row is stored. Repeating an identical body stores the same fields again.","summary":"Update an asset type template","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"typeId":{"type":"string","minLength":1},"baseAssetType":{"$ref":"#/components/schemas/AssetType"},"assetClassId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"complianceTemplateId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"requiredFeatures":{"type":"array","items":{"$ref":"#/components/schemas/TokenFeatureId"}},"capabilities":{"type":"array","items":{"$ref":"#/components/schemas/InstrumentCapability"}},"metadataSchema":{"anyOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["string"]},"minLength":{"type":"integer","minimum":0},"maxLength":{"type":"integer","exclusiveMinimum":0}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["number"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["date"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["enum"]},"options":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["isin"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["address"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["bps"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["percentage"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["currency-code"]},"options":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["country-code"]},"options":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["lei"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["cusip"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["figi"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["decimal-money"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["url"]}},"required":["mutability","label","type"],"additionalProperties":false}]}},{"type":"null"}]},"featureConfig":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"configuration":{"type":"object","properties":{"definitionId":{"type":"string","minLength":1,"maxLength":128},"definitionRevision":{"type":"integer","minimum":1},"fields":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureTemplateConfigurationNode"}}},"required":["definitionId","definitionRevision","fields"],"additionalProperties":false},"policy":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureFieldPolicy"}},"instanceId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"}},"required":["configuration"],"additionalProperties":false},"maxItems":128},{"type":"null"}]},"hiddenFromSidebar":{"type":"boolean"},"isHidden":{"type":"boolean"}},"additionalProperties":false}}},"required":false},"x-dalp-auth":"session-or-api-key"},"delete":{"tags":["Asset design"],"operationId":"platform.settings.assetTypeTemplatesDelete","parameters":[{"name":"id","in":"path","schema":{"type":"string","minLength":1},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The named asset type template is gone from the active organization. data is null because no replacement row remains. Treat HTTP 200 plus this body as confirmation, then refresh the template list. A later delete of the same id returns an error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteResponse"},"examples":{"example-1":{"value":{"data":null}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Removes the asset type template named by the id path parameter from the active organization. System templates cannot be deleted. A missing identifier returns an error. The delete waits until the row is gone. Repeating the call after a successful delete returns an error.","summary":"Delete an asset type template","x-dalp-auth":"session-or-api-key"}},"/api/v2/settings/asset-type-templates/{id}/publish":{"put":{"tags":["Asset design"],"operationId":"platform.settings.assetTypeTemplatesPublish","parameters":[{"name":"id","in":"path","schema":{"type":"string","minLength":1},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The stored asset type template with `isPublished` true. Reuse `data.id` for later read, update, unpublish, or delete.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1,"maxLength":255},"slug":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"assetClass":{"type":"string","minLength":1},"typeId":{"type":"string","minLength":1},"baseAssetType":{"$ref":"#/components/schemas/AssetType"},"isSystem":{"type":"boolean"},"isDraft":{"type":"boolean"},"isHidden":{"type":"boolean"},"organizationId":{"anyOf":[{"$ref":"#/components/schemas/OrganizationId"},{"type":"null"}]},"version":{"type":"integer","minimum":0},"requiredFeatures":{"type":"array","items":{"$ref":"#/components/schemas/TokenFeatureId"}},"capabilities":{"type":"array","items":{"$ref":"#/components/schemas/InstrumentCapability"}},"metadataSchema":{"anyOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["string"]},"minLength":{"type":"integer","minimum":0},"maxLength":{"type":"integer","exclusiveMinimum":0}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["number"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["date"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["enum"]},"options":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["isin"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["address"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["bps"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["percentage"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["currency-code"]},"options":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["country-code"]},"options":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["lei"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["cusip"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["figi"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["decimal-money"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["url"]}},"required":["mutability","label","type"],"additionalProperties":false}]}},{"type":"null"}]},"featureConfig":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"configuration":{"type":"object","properties":{"definitionId":{"type":"string","minLength":1,"maxLength":128},"definitionRevision":{"type":"integer","minimum":1},"fields":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureTemplateConfigurationNode"}}},"required":["definitionId","definitionRevision","fields"],"additionalProperties":false},"policy":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureFieldPolicy"}},"instanceId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"}},"required":["configuration"],"additionalProperties":false},"maxItems":128},{"type":"null"}]},"hiddenFromSidebar":{"type":"boolean"},"feedMaxStalenessSeconds":{"anyOf":[{"type":"string","pattern":"^(?:0|[1-9]\\d*)$","maxLength":78},{"type":"null"}]},"assetClassId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"complianceTemplateId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"structure":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"isSystem":{"type":"boolean"},"revision":{"type":"integer","minimum":1},"role":{"type":"string","pattern":"^[a-z][a-z0-9-]{1,31}$"},"members":{"type":"array","items":{"type":"object","properties":{"memberId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"},"label":{"type":"string","minLength":1,"maxLength":64},"features":{"type":"array","items":{"type":"object","properties":{"configuration":{"type":"object","properties":{"definitionId":{"type":"string","minLength":1,"maxLength":128},"definitionRevision":{"type":"integer","minimum":1},"fields":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureTemplateConfigurationNode"}}},"required":["definitionId","definitionRevision","fields"],"additionalProperties":false},"policy":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureFieldPolicy"}},"instanceId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"}},"required":["configuration"],"additionalProperties":false},"maxItems":128},"templateId":{"type":"string","minLength":1,"maxLength":255},"role":{"type":"string","pattern":"^[a-z][a-z0-9-]{1,31}$"},"name":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1}},"required":["memberId","label","features","templateId","role","name","slug"],"additionalProperties":false}}},"required":["id","slug","name","description","isSystem","revision","role","members"],"additionalProperties":false},{"type":"null"}]},"structures":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"isSystem":{"type":"boolean"},"revision":{"type":"integer","minimum":1},"role":{"type":"string","pattern":"^[a-z][a-z0-9-]{1,31}$"},"members":{"type":"array","items":{"type":"object","properties":{"memberId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"},"label":{"type":"string","minLength":1,"maxLength":64},"features":{"type":"array","items":{"type":"object","properties":{"configuration":{"type":"object","properties":{"definitionId":{"type":"string","minLength":1,"maxLength":128},"definitionRevision":{"type":"integer","minimum":1},"fields":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureTemplateConfigurationNode"}}},"required":["definitionId","definitionRevision","fields"],"additionalProperties":false},"policy":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureFieldPolicy"}},"instanceId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"}},"required":["configuration"],"additionalProperties":false},"maxItems":128},"templateId":{"type":"string","minLength":1,"maxLength":255},"role":{"type":"string","pattern":"^[a-z][a-z0-9-]{1,31}$"},"name":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1}},"required":["memberId","label","features","templateId","role","name","slug"],"additionalProperties":false}}},"required":["id","slug","name","description","isSystem","revision","role","members"],"additionalProperties":false}},"createdBy":{"anyOf":[{"$ref":"#/components/schemas/UserId"},{"type":"null"}]},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"},"isPublished":{"type":"boolean"},"publishedStructures":{"type":"array","items":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/AssetTypeTemplateStructureId"},"name":{"type":"string","minLength":1,"maxLength":255}},"required":["id","name"],"additionalProperties":false},"description":"The instrument structures published for the organisation that use this template. While any is listed, the template cannot be unpublished."}},"required":["id","name","slug","description","assetClass","typeId","baseAssetType","isSystem","isDraft","isHidden","organizationId","version","requiredFeatures","metadataSchema","featureConfig","createdBy","createdAt","updatedAt","isPublished","publishedStructures"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"att_northwind_registered_bond","name":"Registered bond","slug":"registered-bond","description":"EUR registered bond issued by Northwind Coffee","assetClass":"fixed-income","typeId":"bond","baseAssetType":"bond","isSystem":false,"isDraft":false,"isHidden":false,"organizationId":"org_northwind_coffee","version":1,"requiredFeatures":["historical-balances"],"capabilities":["share-capital"],"metadataSchema":null,"featureConfig":null,"hiddenFromSidebar":false,"feedMaxStalenessSeconds":"1","assetClassId":"acd_northwind_equity","complianceTemplateId":null,"structure":{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","slug":"northwind-coffee","name":"Core holdings","description":"Quarterly reserve and holder position report for an asset-referenced token issuer.","isSystem":false,"revision":1,"role":"member","members":[{"memberId":"01990000-0000-7000-8000-000000000001","label":"Pay in USDC","features":[],"templateId":"att_northwind_founder_shares","role":"member","name":"Core holdings","slug":"northwind-coffee"}]},"structures":[{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","slug":"northwind-coffee","name":"Core holdings","description":"Quarterly reserve and holder position report for an asset-referenced token issuer.","isSystem":false,"revision":1,"role":"member","members":[{"memberId":"01990000-0000-7000-8000-000000000001","label":"Pay in USDC","features":[],"templateId":"att_northwind_founder_shares","role":"member","name":"Core holdings","slug":"northwind-coffee"}]}],"createdBy":"user_northwind_owner","createdAt":"2026-03-04T09:12:41.000Z","updatedAt":"2026-04-12T09:30:00.000Z","isPublished":true,"publishedStructures":[{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","name":"Core holdings"}]},"links":{"self":"/v2/settings/asset-type-templates/att_northwind_registered_bond"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Publishes the named template for the active organization so new assets can start from it, and returns the stored record. A draft the organization owns must pass its readiness check once and then leaves draft for good. A DALP Library template, or a template the organization unpublished earlier, is published for this organization only; no other organization's choice changes. A template the organization already has published returns 409. A missing identifier returns an error. The write waits until the publication is stored.","summary":"Publish an asset type template","x-dalp-auth":"session-or-api-key"}},"/api/v2/settings/asset-type-templates/{id}/unpublish":{"put":{"tags":["Asset design"],"operationId":"platform.settings.assetTypeTemplatesUnpublish","parameters":[{"name":"id","in":"path","schema":{"type":"string","minLength":1},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The stored asset type template with `isPublished` false. Reuse `data.id` for later read, update, publish, or delete.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1,"maxLength":255},"slug":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"assetClass":{"type":"string","minLength":1},"typeId":{"type":"string","minLength":1},"baseAssetType":{"$ref":"#/components/schemas/AssetType"},"isSystem":{"type":"boolean"},"isDraft":{"type":"boolean"},"isHidden":{"type":"boolean"},"organizationId":{"anyOf":[{"$ref":"#/components/schemas/OrganizationId"},{"type":"null"}]},"version":{"type":"integer","minimum":0},"requiredFeatures":{"type":"array","items":{"$ref":"#/components/schemas/TokenFeatureId"}},"capabilities":{"type":"array","items":{"$ref":"#/components/schemas/InstrumentCapability"}},"metadataSchema":{"anyOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["string"]},"minLength":{"type":"integer","minimum":0},"maxLength":{"type":"integer","exclusiveMinimum":0}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["number"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["date"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["enum"]},"options":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["isin"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["address"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["bps"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["percentage"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["currency-code"]},"options":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["country-code"]},"options":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["lei"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["cusip"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["figi"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["decimal-money"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["url"]}},"required":["mutability","label","type"],"additionalProperties":false}]}},{"type":"null"}]},"featureConfig":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"configuration":{"type":"object","properties":{"definitionId":{"type":"string","minLength":1,"maxLength":128},"definitionRevision":{"type":"integer","minimum":1},"fields":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureTemplateConfigurationNode"}}},"required":["definitionId","definitionRevision","fields"],"additionalProperties":false},"policy":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureFieldPolicy"}},"instanceId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"}},"required":["configuration"],"additionalProperties":false},"maxItems":128},{"type":"null"}]},"hiddenFromSidebar":{"type":"boolean"},"feedMaxStalenessSeconds":{"anyOf":[{"type":"string","pattern":"^(?:0|[1-9]\\d*)$","maxLength":78},{"type":"null"}]},"assetClassId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"complianceTemplateId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"structure":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"isSystem":{"type":"boolean"},"revision":{"type":"integer","minimum":1},"role":{"type":"string","pattern":"^[a-z][a-z0-9-]{1,31}$"},"members":{"type":"array","items":{"type":"object","properties":{"memberId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"},"label":{"type":"string","minLength":1,"maxLength":64},"features":{"type":"array","items":{"type":"object","properties":{"configuration":{"type":"object","properties":{"definitionId":{"type":"string","minLength":1,"maxLength":128},"definitionRevision":{"type":"integer","minimum":1},"fields":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureTemplateConfigurationNode"}}},"required":["definitionId","definitionRevision","fields"],"additionalProperties":false},"policy":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureFieldPolicy"}},"instanceId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"}},"required":["configuration"],"additionalProperties":false},"maxItems":128},"templateId":{"type":"string","minLength":1,"maxLength":255},"role":{"type":"string","pattern":"^[a-z][a-z0-9-]{1,31}$"},"name":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1}},"required":["memberId","label","features","templateId","role","name","slug"],"additionalProperties":false}}},"required":["id","slug","name","description","isSystem","revision","role","members"],"additionalProperties":false},{"type":"null"}]},"structures":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"isSystem":{"type":"boolean"},"revision":{"type":"integer","minimum":1},"role":{"type":"string","pattern":"^[a-z][a-z0-9-]{1,31}$"},"members":{"type":"array","items":{"type":"object","properties":{"memberId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"},"label":{"type":"string","minLength":1,"maxLength":64},"features":{"type":"array","items":{"type":"object","properties":{"configuration":{"type":"object","properties":{"definitionId":{"type":"string","minLength":1,"maxLength":128},"definitionRevision":{"type":"integer","minimum":1},"fields":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureTemplateConfigurationNode"}}},"required":["definitionId","definitionRevision","fields"],"additionalProperties":false},"policy":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureFieldPolicy"}},"instanceId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"}},"required":["configuration"],"additionalProperties":false},"maxItems":128},"templateId":{"type":"string","minLength":1,"maxLength":255},"role":{"type":"string","pattern":"^[a-z][a-z0-9-]{1,31}$"},"name":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1}},"required":["memberId","label","features","templateId","role","name","slug"],"additionalProperties":false}}},"required":["id","slug","name","description","isSystem","revision","role","members"],"additionalProperties":false}},"createdBy":{"anyOf":[{"$ref":"#/components/schemas/UserId"},{"type":"null"}]},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"},"isPublished":{"type":"boolean"},"publishedStructures":{"type":"array","items":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/AssetTypeTemplateStructureId"},"name":{"type":"string","minLength":1,"maxLength":255}},"required":["id","name"],"additionalProperties":false},"description":"The instrument structures published for the organisation that use this template. While any is listed, the template cannot be unpublished."}},"required":["id","name","slug","description","assetClass","typeId","baseAssetType","isSystem","isDraft","isHidden","organizationId","version","requiredFeatures","metadataSchema","featureConfig","createdBy","createdAt","updatedAt","isPublished","publishedStructures"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"att_northwind_registered_bond","name":"Registered bond","slug":"registered-bond","description":"EUR registered bond issued by Northwind Coffee","assetClass":"fixed-income","typeId":"bond","baseAssetType":"bond","isSystem":false,"isDraft":false,"isHidden":false,"organizationId":"org_northwind_coffee","version":1,"requiredFeatures":["historical-balances"],"capabilities":["share-capital"],"metadataSchema":null,"featureConfig":null,"hiddenFromSidebar":false,"feedMaxStalenessSeconds":"1","assetClassId":"acd_northwind_equity","complianceTemplateId":null,"structure":{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","slug":"northwind-coffee","name":"Core holdings","description":"Quarterly reserve and holder position report for an asset-referenced token issuer.","isSystem":false,"revision":1,"role":"member","members":[{"memberId":"01990000-0000-7000-8000-000000000001","label":"Pay in USDC","features":[],"templateId":"att_northwind_founder_shares","role":"member","name":"Core holdings","slug":"northwind-coffee"}]},"structures":[{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","slug":"northwind-coffee","name":"Core holdings","description":"Quarterly reserve and holder position report for an asset-referenced token issuer.","isSystem":false,"revision":1,"role":"member","members":[{"memberId":"01990000-0000-7000-8000-000000000001","label":"Pay in USDC","features":[],"templateId":"att_northwind_founder_shares","role":"member","name":"Core holdings","slug":"northwind-coffee"}]}],"createdBy":"user_northwind_owner","createdAt":"2026-03-04T09:12:41.000Z","updatedAt":"2026-04-12T09:30:00.000Z","isPublished":false,"publishedStructures":[{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","name":"Core holdings"}]},"links":{"self":"/v2/settings/asset-type-templates/att_northwind_registered_bond"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_TYPE_TEMPLATE_NOT_UNPUBLISHABLE","ASSET_TYPE_TEMPLATE_USED_BY_PUBLISHED_STRUCTURE","CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"ASSET_TYPE_TEMPLATE_NOT_UNPUBLISHABLE","status":409,"message":"The asset type template is not published, so it cannot be unpublished","data":{"id":"DALP-14018","why":"The template is still a draft, or your organization already has it unpublished. Unpublishing applies only to a template your organization currently offers for issuance.","fix":"Read the template and check `isDraft` and `isPublished`. Publish a draft once it is ready; leave an unpublished template as it is.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Stops the active organization from offering the named template for new assets, and returns the stored record. It applies to a DALP Library template and to a template the organization owns, changes no other organization's choice, and never returns a template to draft. Assets already issued from the template keep working. Publish the template again to offer it; no readiness check runs a second time. A draft, or a template the organization already has unpublished, returns 409. A missing identifier returns an error. The write waits until the choice is stored.","summary":"Unpublish an asset type template","x-dalp-auth":"session-or-api-key"}},"/api/v2/settings/profile-sections":{"get":{"tags":["Participants"],"operationId":"platform.settings.profileSectionsList","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000},"name":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"isSystem":{"anyOf":[{"type":"string","enum":["true","false"]},{"type":"object","properties":{"eq":{"type":"string","enum":["true","false"]},"ne":{"type":"string","enum":["true","false"]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]}},"additionalProperties":false}]},"retired":{"anyOf":[{"type":"string","enum":["true","false"]},{"type":"object","properties":{"eq":{"type":"string","enum":["true","false"]},"ne":{"type":"string","enum":["true","false"]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]}},"additionalProperties":false}]},"position":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"string"}]},{"type":"object","properties":{"eq":{"anyOf":[{"type":"number"},{"type":"string"}]},"ne":{"anyOf":[{"type":"number"},{"type":"string"}]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"anyOf":[{"type":"number"},{"type":"string"}]},"gte":{"anyOf":[{"type":"number"},{"type":"string"}]},"lt":{"anyOf":[{"type":"number"},{"type":"string"}]},"lte":{"anyOf":[{"type":"number"},{"type":"string"}]},"between":{"type":"string","maxLength":64}},"additionalProperties":false}]},"createdAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"updatedAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"One page of profile sections visible to the active organization: its own templates plus every system template. `meta.total` counts every matching template rather than the rows on this page.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"organizationId":{"anyOf":[{"$ref":"#/components/schemas/OrganizationId"},{"type":"null"}]},"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"systemAddress":{"$ref":"#/components/schemas/EvmAddress"},"name":{"type":"string"},"slug":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"metadataSchema":{"type":"object","additionalProperties":{"anyOf":[{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["string"]},"minLength":{"type":"integer","minimum":0},"maxLength":{"type":"integer","exclusiveMinimum":0}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["number"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["date"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["enum"]},"options":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["isin"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["address"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["bps"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["percentage"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["currency-code"]},"options":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["country-code"]},"options":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["lei"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["cusip"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["figi"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["decimal-money"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["url"]}},"required":["mutability","label","type"],"additionalProperties":false}]}},"isSystem":{"type":"boolean"},"retired":{"type":"boolean"},"position":{"type":"integer"},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["id","organizationId","chainId","systemAddress","name","slug","description","metadataSchema","isSystem","retired","position","createdAt","updatedAt"],"additionalProperties":false}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"019c0000-0000-7000-8000-00000000aa01","organizationId":"org_northwind_coffee","chainId":11155111,"systemAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","name":"Investor groups","slug":"investor-groups","description":"Groups investors for reporting and records the KYC tier as an on-chain claim.","metadataSchema":{"investorGroup":{"type":"enum","mutability":"restricted-mutable","storage":"offchain","label":"Investor group","options":["retail","professional","institutional"]},"kycTier":{"type":"enum","mutability":"restricted-mutable","storage":"onchain","label":"KYC tier","options":["basic","enhanced"]}},"isSystem":false,"retired":false,"position":1,"createdAt":"2026-03-04T09:12:41.000Z","updatedAt":"2026-04-12T09:30:00.000Z"}],"meta":{"total":1},"links":{"self":"/v2/settings/profile-sections?sort=name&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/settings/profile-sections?sort=name&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/settings/profile-sections?sort=name&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Lists the active organization's profile sections plus the read-only system templates, in position order, then by name, unless the query says otherwise. Filter on name, isSystem, createdAt, or updatedAt, or search across names.","summary":"Page through profile sections","x-dalp-auth":"session-or-api-key"},"post":{"tags":["Participants"],"operationId":"platform.settings.profileSectionsCreate","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The stored profile section. Reuse `data.id` for later read, update, or delete.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"organizationId":{"anyOf":[{"$ref":"#/components/schemas/OrganizationId"},{"type":"null"}]},"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"systemAddress":{"$ref":"#/components/schemas/EvmAddress"},"name":{"type":"string"},"slug":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"metadataSchema":{"type":"object","additionalProperties":{"anyOf":[{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["string"]},"minLength":{"type":"integer","minimum":0},"maxLength":{"type":"integer","exclusiveMinimum":0}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["number"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["date"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["enum"]},"options":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["isin"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["address"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["bps"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["percentage"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["currency-code"]},"options":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["country-code"]},"options":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["lei"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["cusip"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["figi"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["decimal-money"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["url"]}},"required":["mutability","label","type"],"additionalProperties":false}]}},"isSystem":{"type":"boolean"},"retired":{"type":"boolean"},"position":{"type":"integer"},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["id","organizationId","chainId","systemAddress","name","slug","description","metadataSchema","isSystem","retired","position","createdAt","updatedAt"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"019c0000-0000-7000-8000-00000000aa01","organizationId":"org_northwind_coffee","chainId":11155111,"systemAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","name":"Investor groups","slug":"investor-groups","description":"Groups investors for reporting and records the KYC tier as an on-chain claim.","metadataSchema":{"investorGroup":{"type":"enum","mutability":"restricted-mutable","storage":"offchain","label":"Investor group","options":["retail","professional","institutional"]},"kycTier":{"type":"enum","mutability":"restricted-mutable","storage":"onchain","label":"KYC tier","options":["basic","enhanced"]}},"isSystem":false,"retired":false,"position":1,"createdAt":"2026-03-04T09:12:41.000Z","updatedAt":"2026-04-12T09:30:00.000Z"},"links":{"self":"/v2/settings/profile-sections/019c0000-0000-7000-8000-00000000aa01"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","PROFILE_SECTION_SYSTEM_SLUG_TAKEN","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","SETTINGS_TEMPLATE_NAME_ALREADY_EXISTS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Stores a template owned by the active organization. Every field is stored off-chain and names its audience; an on-chain field returns 400. A duplicate name within the organization returns 409.","summary":"Create a profile section","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"metadataSchema":{"type":"object","additionalProperties":{"anyOf":[{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["string"]},"minLength":{"type":"integer","minimum":0},"maxLength":{"type":"integer","exclusiveMinimum":0}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["number"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["date"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["enum"]},"options":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["isin"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["address"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["bps"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["percentage"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["currency-code"]},"options":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["country-code"]},"options":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["lei"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["cusip"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["figi"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["decimal-money"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["url"]}},"required":["mutability","label","type"],"additionalProperties":false}]}}},"required":["name","metadataSchema"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/settings/profile-sections/{id}":{"get":{"tags":["Participants"],"operationId":"platform.settings.profileSectionsRead","parameters":[{"name":"id","in":"path","schema":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"required":true}],"responses":{"200":{"description":"The stored profile section. Reuse `data.id` for later read, update, or delete.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"organizationId":{"anyOf":[{"$ref":"#/components/schemas/OrganizationId"},{"type":"null"}]},"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"systemAddress":{"$ref":"#/components/schemas/EvmAddress"},"name":{"type":"string"},"slug":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"metadataSchema":{"type":"object","additionalProperties":{"anyOf":[{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["string"]},"minLength":{"type":"integer","minimum":0},"maxLength":{"type":"integer","exclusiveMinimum":0}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["number"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["date"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["enum"]},"options":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["isin"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["address"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["bps"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["percentage"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["currency-code"]},"options":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["country-code"]},"options":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["lei"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["cusip"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["figi"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["decimal-money"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["url"]}},"required":["mutability","label","type"],"additionalProperties":false}]}},"isSystem":{"type":"boolean"},"retired":{"type":"boolean"},"position":{"type":"integer"},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["id","organizationId","chainId","systemAddress","name","slug","description","metadataSchema","isSystem","retired","position","createdAt","updatedAt"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"019c0000-0000-7000-8000-00000000aa01","organizationId":"org_northwind_coffee","chainId":11155111,"systemAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","name":"Investor groups","slug":"investor-groups","description":"Groups investors for reporting and records the KYC tier as an on-chain claim.","metadataSchema":{"investorGroup":{"type":"enum","mutability":"restricted-mutable","storage":"offchain","label":"Investor group","options":["retail","professional","institutional"]},"kycTier":{"type":"enum","mutability":"restricted-mutable","storage":"onchain","label":"KYC tier","options":["basic","enhanced"]}},"isSystem":false,"retired":false,"position":1,"createdAt":"2026-03-04T09:12:41.000Z","updatedAt":"2026-04-12T09:30:00.000Z"},"links":{"self":"/v2/settings/profile-sections/019c0000-0000-7000-8000-00000000aa01"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","PROFILE_SECTION_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one template the active organization can see: its own or a system template. Another organization's template answers 404.","summary":"Read a profile section","x-dalp-auth":"session-or-api-key"},"put":{"tags":["Participants"],"operationId":"platform.settings.profileSectionsUpdate","parameters":[{"name":"id","in":"path","schema":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The stored profile section. Reuse `data.id` for later read, update, or delete.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"organizationId":{"anyOf":[{"$ref":"#/components/schemas/OrganizationId"},{"type":"null"}]},"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"systemAddress":{"$ref":"#/components/schemas/EvmAddress"},"name":{"type":"string"},"slug":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"metadataSchema":{"type":"object","additionalProperties":{"anyOf":[{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["string"]},"minLength":{"type":"integer","minimum":0},"maxLength":{"type":"integer","exclusiveMinimum":0}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["number"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["date"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["enum"]},"options":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["isin"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["address"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["bps"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["percentage"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["currency-code"]},"options":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["country-code"]},"options":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["lei"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["cusip"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["figi"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["decimal-money"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["url"]}},"required":["mutability","label","type"],"additionalProperties":false}]}},"isSystem":{"type":"boolean"},"retired":{"type":"boolean"},"position":{"type":"integer"},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["id","organizationId","chainId","systemAddress","name","slug","description","metadataSchema","isSystem","retired","position","createdAt","updatedAt"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"019c0000-0000-7000-8000-00000000aa01","organizationId":"org_northwind_coffee","chainId":11155111,"systemAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","name":"Investor groups","slug":"investor-groups","description":"Groups investors for reporting and records the KYC tier as an on-chain claim.","metadataSchema":{"investorGroup":{"type":"enum","mutability":"restricted-mutable","storage":"offchain","label":"Investor group","options":["retail","professional","institutional"]},"kycTier":{"type":"enum","mutability":"restricted-mutable","storage":"onchain","label":"KYC tier","options":["basic","enhanced"]}},"isSystem":false,"retired":false,"position":1,"createdAt":"2026-03-04T09:12:41.000Z","updatedAt":"2026-04-12T09:30:00.000Z"},"links":{"self":"/v2/settings/profile-sections/019c0000-0000-7000-8000-00000000aa01"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","PROFILE_SECTION_SYSTEM_READONLY","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","PROFILE_SECTION_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","PROFILE_SECTION_STORAGE_LOCKED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","SETTINGS_TEMPLATE_NAME_ALREADY_EXISTS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Changes the name, description, or metadata schema of one organization template; the slug stays the one derived at creation. Omitted fields stay unchanged. Removing a field, or changing its storage, audience, type, choices, or loosening its mutability, returns 409 naming the keys once any profile revision of the organization filled the field. A system template returns 403.","summary":"Update a profile section","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"metadataSchema":{"type":"object","additionalProperties":{"anyOf":[{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["string"]},"minLength":{"type":"integer","minimum":0},"maxLength":{"type":"integer","exclusiveMinimum":0}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["number"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["date"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["enum"]},"options":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["isin"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["address"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["bps"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["percentage"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["currency-code"]},"options":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["country-code"]},"options":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["lei"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["cusip"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["figi"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["decimal-money"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["url"]}},"required":["mutability","label","type"],"additionalProperties":false}]}}},"additionalProperties":false}}},"required":false},"x-dalp-auth":"session-or-api-key"},"delete":{"tags":["Participants"],"operationId":"platform.settings.profileSectionsDelete","parameters":[{"name":"id","in":"path","schema":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Successful delete acknowledgement. `data` is `null` because the resource no longer exists. Treat HTTP 200 plus this body as confirmation, not as a leftover item.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteResponse"},"examples":{"example-1":{"value":{"data":null}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","PROFILE_SECTION_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","PROFILE_SECTION_HOLDS_VALUES","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Deletes one section of the active organization that no profile version filled. When a version filled one of its fields, the section returns 409 and stays; retire it instead. A system section returns 403, and another organization's section returns 404.","summary":"Delete a profile section","x-dalp-auth":"session-or-api-key"}},"/api/v2/settings/profile-sections/{id}/retire":{"post":{"tags":["Participants"],"operationId":"platform.settings.profileSectionsRetire","parameters":[{"name":"id","in":"path","schema":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The stored profile section. Reuse `data.id` for later read, update, or delete.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"organizationId":{"anyOf":[{"$ref":"#/components/schemas/OrganizationId"},{"type":"null"}]},"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"systemAddress":{"$ref":"#/components/schemas/EvmAddress"},"name":{"type":"string"},"slug":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"metadataSchema":{"type":"object","additionalProperties":{"anyOf":[{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["string"]},"minLength":{"type":"integer","minimum":0},"maxLength":{"type":"integer","exclusiveMinimum":0}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["number"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["date"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["enum"]},"options":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["isin"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["address"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["bps"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["percentage"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["currency-code"]},"options":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["country-code"]},"options":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["lei"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["cusip"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["figi"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["decimal-money"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["url"]}},"required":["mutability","label","type"],"additionalProperties":false}]}},"isSystem":{"type":"boolean"},"retired":{"type":"boolean"},"position":{"type":"integer"},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["id","organizationId","chainId","systemAddress","name","slug","description","metadataSchema","isSystem","retired","position","createdAt","updatedAt"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"019c0000-0000-7000-8000-00000000aa01","organizationId":"org_northwind_coffee","chainId":11155111,"systemAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","name":"Investor groups","slug":"investor-groups","description":"Groups investors for reporting and records the KYC tier as an on-chain claim.","metadataSchema":{"investorGroup":{"type":"enum","mutability":"restricted-mutable","storage":"offchain","label":"Investor group","options":["retail","professional","institutional"]},"kycTier":{"type":"enum","mutability":"restricted-mutable","storage":"onchain","label":"KYC tier","options":["basic","enhanced"]}},"isSystem":false,"retired":false,"position":1,"createdAt":"2026-03-04T09:12:41.000Z","updatedAt":"2026-04-12T09:30:00.000Z"},"links":{"self":"/v2/settings/profile-sections/019c0000-0000-7000-8000-00000000aa01"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","PROFILE_SECTION_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Retires one section for the active organization: its own section is marked retired, and a system section is retired for this organization only. A retired section is no longer asked, shown, or required; earlier versions keep its values. Retiring twice succeeds. Another organization's section returns 404.","summary":"Retire a profile section","x-dalp-auth":"session-or-api-key"}},"/api/v2/settings/profile-sections/reorder":{"post":{"tags":["Participants"],"operationId":"platform.settings.profileSectionsReorder","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The sections the active organization still asks for, in their new order.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"organizationId":{"anyOf":[{"$ref":"#/components/schemas/OrganizationId"},{"type":"null"}]},"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"systemAddress":{"$ref":"#/components/schemas/EvmAddress"},"name":{"type":"string"},"slug":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"metadataSchema":{"type":"object","additionalProperties":{"anyOf":[{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["string"]},"minLength":{"type":"integer","minimum":0},"maxLength":{"type":"integer","exclusiveMinimum":0}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["number"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["date"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["enum"]},"options":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["isin"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["address"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["bps"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["percentage"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["currency-code"]},"options":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["country-code"]},"options":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["lei"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["cusip"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["figi"]}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["decimal-money"]},"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["mutability","label","type"],"additionalProperties":false},{"type":"object","properties":{"mutability":{"type":"string","enum":["immutable","restricted-mutable"]},"storage":{"type":"string","enum":["onchain","offchain"]},"audience":{"type":"string","enum":["user","manager"]},"position":{"type":"integer","minimum":0},"label":{"type":"string","minLength":1},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"type":{"type":"string","enum":["url"]}},"required":["mutability","label","type"],"additionalProperties":false}]}},"isSystem":{"type":"boolean"},"retired":{"type":"boolean"},"position":{"type":"integer"},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["id","organizationId","chainId","systemAddress","name","slug","description","metadataSchema","isSystem","retired","position","createdAt","updatedAt"],"additionalProperties":false}},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"019c0000-0000-7000-8000-00000000aa01","organizationId":"org_northwind_coffee","chainId":11155111,"systemAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","name":"Investor groups","slug":"investor-groups","description":"Groups investors for reporting and records the KYC tier as an on-chain claim.","metadataSchema":{"investorGroup":{"type":"enum","mutability":"restricted-mutable","storage":"offchain","label":"Investor group","options":["retail","professional","institutional"]},"kycTier":{"type":"enum","mutability":"restricted-mutable","storage":"onchain","label":"KYC tier","options":["basic","enhanced"]}},"isSystem":false,"retired":false,"position":1,"createdAt":"2026-03-04T09:12:41.000Z","updatedAt":"2026-04-12T09:30:00.000Z"}],"links":{"self":"/v2/settings/profile-sections/reorder"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","PROFILE_SECTION_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Shows the named sections of the active organization in the given order, after the system sections. An id that is not one of the organization's own sections returns 404 and changes no position. Reorder the fields of one section by saving it with new field positions.","summary":"Order the profile sections","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"sectionIds":{"type":"array","items":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"minItems":1}},"required":["sectionIds"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/settings/compliance-templates":{"get":{"tags":["Compliance rules"],"operationId":"platform.settings.complianceTemplatesList","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000}},"allOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"object","properties":{"eq":{"anyOf":[{"type":"string"},{"type":"number"}]},"ne":{"anyOf":[{"type":"string"},{"type":"number"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]}},"additionalProperties":false}]}}]},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"One page of compliance templates visible to the active organization. `meta.total` counts every matching template rather than the rows on this page.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1,"maxLength":255},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"jurisdictions":{"type":"array","items":{"type":"string","minLength":1}},"isSystem":{"type":"boolean"},"isDraft":{"type":"boolean"},"moduleSetVersion":{"type":"integer","minimum":0},"organizationId":{"anyOf":[{"$ref":"#/components/schemas/OrganizationId"},{"type":"null"}]},"version":{"type":"integer","minimum":0},"modules":{"type":"array","items":{"type":"object","properties":{"typeId":{"$ref":"#/components/schemas/ComplianceTypeId"},"values":{},"configurableInDesigner":{"type":"boolean","description":"Whether the designer may still change this entry."},"scope":{"$ref":"#/components/schemas/ModuleScope_1"}},"required":["typeId","values"],"additionalProperties":false}},"requiredControls":{"type":"array","items":{"$ref":"#/components/schemas/ComplianceTypeId"}},"createdBy":{"anyOf":[{"$ref":"#/components/schemas/UserId"},{"type":"null"}]},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["id","name","description","jurisdictions","isSystem","isDraft","moduleSetVersion","organizationId","version","modules","requiredControls","createdBy","createdAt","updatedAt"],"additionalProperties":false}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"ct_northwind_eu_transfer","name":"EU transfer restrictions","description":"Transfer restrictions for Northwind Coffee securities issued in the EU","jurisdictions":["EU"],"isSystem":false,"isDraft":false,"moduleSetVersion":2,"organizationId":"org_northwind_coffee","version":1,"modules":[],"requiredControls":[],"createdBy":"user_northwind_owner","createdAt":"2026-03-04T09:12:41.000Z","updatedAt":"2026-04-12T09:30:00.000Z"}],"meta":{"total":1},"links":{"self":"/v2/settings/compliance-templates?sort=name&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/settings/compliance-templates?sort=name&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/settings/compliance-templates?sort=name&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of compliance templates visible to the active organization, including system templates unless filtered out. Default sort is name. Filter with filter[name], filter[jurisdiction], filter[isDraft], filter[moduleSetVersion], filter[isSystem], filter[containsModule], or filter[q]. The page is stored settings data. Repeating the read is safe.","summary":"Page through compliance templates","x-dalp-auth":"session-or-api-key"},"post":{"tags":["Compliance rules"],"operationId":"platform.settings.complianceTemplatesCreate","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The stored compliance template. Reuse `data.id` for later read, update, publish, or delete.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1,"maxLength":255},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"jurisdictions":{"type":"array","items":{"type":"string","minLength":1}},"isSystem":{"type":"boolean"},"isDraft":{"type":"boolean"},"moduleSetVersion":{"type":"integer","minimum":0},"organizationId":{"anyOf":[{"$ref":"#/components/schemas/OrganizationId"},{"type":"null"}]},"version":{"type":"integer","minimum":0},"modules":{"type":"array","items":{"type":"object","properties":{"typeId":{"$ref":"#/components/schemas/ComplianceTypeId"},"values":{},"configurableInDesigner":{"type":"boolean","description":"Whether the designer may still change this entry."},"scope":{"$ref":"#/components/schemas/ModuleScope_1"}},"required":["typeId","values"],"additionalProperties":false}},"requiredControls":{"type":"array","items":{"$ref":"#/components/schemas/ComplianceTypeId"}},"createdBy":{"anyOf":[{"$ref":"#/components/schemas/UserId"},{"type":"null"}]},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["id","name","description","jurisdictions","isSystem","isDraft","moduleSetVersion","organizationId","version","modules","requiredControls","createdBy","createdAt","updatedAt"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"ct_northwind_eu_transfer","name":"EU transfer restrictions","description":"Transfer restrictions for Northwind Coffee securities issued in the EU","jurisdictions":["EU"],"isSystem":false,"isDraft":false,"moduleSetVersion":2,"organizationId":"org_northwind_coffee","version":1,"modules":[],"requiredControls":[],"createdBy":"user_northwind_owner","createdAt":"2026-03-04T09:12:41.000Z","updatedAt":"2026-04-12T09:30:00.000Z"},"links":{"self":"/v2/settings/compliance-templates/ct_northwind_eu_transfer"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","SETTINGS_TEMPLATE_NAME_ALREADY_EXISTS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","SETTINGS_COMPLIANCE_TEMPLATE_INCOMPATIBLE_MODULE_SET","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"SETTINGS_COMPLIANCE_TEMPLATE_INCOMPATIBLE_MODULE_SET","status":422,"message":"Compliance template modules and controls must match the selected module set.","data":{"id":"DALP-0462","why":"The template contains configured modules or required controls from a different compliance module generation.","fix":"Remove the incompatible controls or create a template with the matching legacy/current module set.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Creates a draft compliance template in the active organization and returns the stored record. Name is trimmed and must be unique in the organization. Omitted jurisdictions, modules, and requiredControls become empty arrays. The write waits until the row is stored. A second call with the same name creates another draft or fails uniqueness.","summary":"Create a draft compliance template","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"jurisdictions":{"anyOf":[{"$ref":"#/components/schemas/ComplianceTemplateJurisdictionsEncoded"},{"type":"null"}]},"moduleSetVersion":{"anyOf":[{"type":"number","enum":[1,2]},{"type":"null"}]},"legacy":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"modules":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"typeId":{"$ref":"#/components/schemas/ComplianceTypeId"},"values":{},"configurableInDesigner":{"type":"boolean","description":"Whether the designer may still change this entry."},"scope":{"$ref":"#/components/schemas/ModuleScope_1"}},"required":["typeId","values"],"additionalProperties":false}},{"type":"null"}]},"requiredControls":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/ComplianceTypeId"}},{"type":"null"}]}},"required":["name"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/settings/compliance-templates/{id}":{"get":{"tags":["Compliance rules"],"operationId":"platform.settings.complianceTemplatesRead","parameters":[{"name":"id","in":"path","schema":{"type":"string","minLength":1},"required":true}],"responses":{"200":{"description":"The stored compliance template. Reuse `data.id` for later read, update, publish, or delete.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1,"maxLength":255},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"jurisdictions":{"type":"array","items":{"type":"string","minLength":1}},"isSystem":{"type":"boolean"},"isDraft":{"type":"boolean"},"moduleSetVersion":{"type":"integer","minimum":0},"organizationId":{"anyOf":[{"$ref":"#/components/schemas/OrganizationId"},{"type":"null"}]},"version":{"type":"integer","minimum":0},"modules":{"type":"array","items":{"type":"object","properties":{"typeId":{"$ref":"#/components/schemas/ComplianceTypeId"},"values":{},"configurableInDesigner":{"type":"boolean","description":"Whether the designer may still change this entry."},"scope":{"$ref":"#/components/schemas/ModuleScope_1"}},"required":["typeId","values"],"additionalProperties":false}},"requiredControls":{"type":"array","items":{"$ref":"#/components/schemas/ComplianceTypeId"}},"createdBy":{"anyOf":[{"$ref":"#/components/schemas/UserId"},{"type":"null"}]},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["id","name","description","jurisdictions","isSystem","isDraft","moduleSetVersion","organizationId","version","modules","requiredControls","createdBy","createdAt","updatedAt"],"additionalProperties":false},{"type":"null"}]},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"ct_northwind_eu_transfer","name":"EU transfer restrictions","description":"Transfer restrictions for Northwind Coffee securities issued in the EU","jurisdictions":["EU"],"isSystem":false,"isDraft":false,"moduleSetVersion":2,"organizationId":"org_northwind_coffee","version":1,"modules":[],"requiredControls":[],"createdBy":"user_northwind_owner","createdAt":"2026-03-04T09:12:41.000Z","updatedAt":"2026-04-12T09:30:00.000Z"},"links":{"self":"/v2/settings/compliance-templates/ct_northwind_eu_transfer"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the compliance template named by the id path parameter. The id is the identifier the platform assigned at create time. A missing or other-organization identifier returns an error. The call is a stored read and is safe to retry.","summary":"Read one compliance template","x-dalp-auth":"session-or-api-key"},"put":{"tags":["Compliance rules"],"operationId":"platform.settings.complianceTemplatesUpdate","parameters":[{"name":"id","in":"path","schema":{"type":"string","minLength":1},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The stored compliance template. Reuse `data.id` for later read, update, publish, or delete.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1,"maxLength":255},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"jurisdictions":{"type":"array","items":{"type":"string","minLength":1}},"isSystem":{"type":"boolean"},"isDraft":{"type":"boolean"},"moduleSetVersion":{"type":"integer","minimum":0},"organizationId":{"anyOf":[{"$ref":"#/components/schemas/OrganizationId"},{"type":"null"}]},"version":{"type":"integer","minimum":0},"modules":{"type":"array","items":{"type":"object","properties":{"typeId":{"$ref":"#/components/schemas/ComplianceTypeId"},"values":{},"configurableInDesigner":{"type":"boolean","description":"Whether the designer may still change this entry."},"scope":{"$ref":"#/components/schemas/ModuleScope_1"}},"required":["typeId","values"],"additionalProperties":false}},"requiredControls":{"type":"array","items":{"$ref":"#/components/schemas/ComplianceTypeId"}},"createdBy":{"anyOf":[{"$ref":"#/components/schemas/UserId"},{"type":"null"}]},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["id","name","description","jurisdictions","isSystem","isDraft","moduleSetVersion","organizationId","version","modules","requiredControls","createdBy","createdAt","updatedAt"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"ct_northwind_eu_transfer","name":"EU transfer restrictions","description":"Transfer restrictions for Northwind Coffee securities issued in the EU","jurisdictions":["EU"],"isSystem":false,"isDraft":false,"moduleSetVersion":2,"organizationId":"org_northwind_coffee","version":1,"modules":[],"requiredControls":[],"createdBy":"user_northwind_owner","createdAt":"2026-03-04T09:12:41.000Z","updatedAt":"2026-04-12T09:30:00.000Z"},"links":{"self":"/v2/settings/compliance-templates/ct_northwind_eu_transfer"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","SETTINGS_TEMPLATE_NAME_ALREADY_EXISTS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["COMPLIANCE_TEMPLATE_NOT_READY","CONTRACT_ERROR","SETTINGS_COMPLIANCE_TEMPLATE_INCOMPATIBLE_MODULE_SET","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"COMPLIANCE_TEMPLATE_NOT_READY","status":422,"message":"Template is not ready to publish.","data":{"id":"DALP-0687","why":"The publish readiness check found at least one required control with no configured module of that type on the template; `data.gaps` names the specific controls.","fix":"Open the Controls & Rules step for each control listed in `data.gaps`, configure a compatible module for it (or remove it from required controls), save the template, and retry publish.","retryable":false,"category":"domain","gaps":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Replaces the draft fields of the compliance template named by the id path parameter and returns the stored record. Published system templates reject metadata changes. A missing identifier returns an error. The write waits until the row is stored. Repeating an identical body stores the same fields again.","summary":"Update a draft compliance template","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"anyOf":[{"type":"string","minLength":1,"maxLength":255},{"type":"null"}]},"description":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"null"}]},{"type":"null"}]},"jurisdictions":{"anyOf":[{"$ref":"#/components/schemas/ComplianceTemplateJurisdictionsEncoded"},{"type":"null"}]},"modules":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"typeId":{"$ref":"#/components/schemas/ComplianceTypeId"},"values":{},"configurableInDesigner":{"type":"boolean","description":"Whether the designer may still change this entry."},"scope":{"$ref":"#/components/schemas/ModuleScope_1"}},"required":["typeId","values"],"additionalProperties":false}},{"type":"null"}]},"requiredControls":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/ComplianceTypeId"}},{"type":"null"}]}},"additionalProperties":false}}},"required":false},"x-dalp-auth":"session-or-api-key"},"delete":{"tags":["Compliance rules"],"operationId":"platform.settings.complianceTemplatesDelete","parameters":[{"name":"id","in":"path","schema":{"type":"string","minLength":1},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The named compliance template is gone from the active organization. data is null because no replacement row remains. Treat HTTP 200 plus this body as confirmation, then refresh the compliance-template list. A later delete of the same id returns an error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteResponse"},"examples":{"example-1":{"value":{"data":null}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Removes the compliance template named by the id path parameter from the active organization. System templates cannot be deleted. A missing identifier returns an error. The delete waits until the row is gone. Repeating the call after a successful delete returns an error.","summary":"Delete one compliance template","x-dalp-auth":"session-or-api-key"}},"/api/v2/settings/compliance-templates/{id}/publish":{"put":{"tags":["Compliance rules"],"operationId":"platform.settings.complianceTemplatesPublish","parameters":[{"name":"id","in":"path","schema":{"type":"string","minLength":1},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The stored compliance template. Reuse `data.id` for later read, update, publish, or delete.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1,"maxLength":255},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"jurisdictions":{"type":"array","items":{"type":"string","minLength":1}},"isSystem":{"type":"boolean"},"isDraft":{"type":"boolean"},"moduleSetVersion":{"type":"integer","minimum":0},"organizationId":{"anyOf":[{"$ref":"#/components/schemas/OrganizationId"},{"type":"null"}]},"version":{"type":"integer","minimum":0},"modules":{"type":"array","items":{"type":"object","properties":{"typeId":{"$ref":"#/components/schemas/ComplianceTypeId"},"values":{},"configurableInDesigner":{"type":"boolean","description":"Whether the designer may still change this entry."},"scope":{"$ref":"#/components/schemas/ModuleScope_1"}},"required":["typeId","values"],"additionalProperties":false}},"requiredControls":{"type":"array","items":{"$ref":"#/components/schemas/ComplianceTypeId"}},"createdBy":{"anyOf":[{"$ref":"#/components/schemas/UserId"},{"type":"null"}]},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["id","name","description","jurisdictions","isSystem","isDraft","moduleSetVersion","organizationId","version","modules","requiredControls","createdBy","createdAt","updatedAt"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"ct_northwind_eu_transfer","name":"EU transfer restrictions","description":"Transfer restrictions for Northwind Coffee securities issued in the EU","jurisdictions":["EU"],"isSystem":false,"isDraft":false,"moduleSetVersion":2,"organizationId":"org_northwind_coffee","version":1,"modules":[],"requiredControls":[],"createdBy":"user_northwind_owner","createdAt":"2026-03-04T09:12:41.000Z","updatedAt":"2026-04-12T09:30:00.000Z"},"links":{"self":"/v2/settings/compliance-templates/ct_northwind_eu_transfer"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","SETTINGS_COMPLIANCE_TEMPLATE_INCOMPATIBLE_MODULE_SET","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"SETTINGS_COMPLIANCE_TEMPLATE_INCOMPATIBLE_MODULE_SET","status":422,"message":"Compliance template modules and controls must match the selected module set.","data":{"id":"DALP-0462","why":"The template contains configured modules or required controls from a different compliance module generation.","fix":"Remove the incompatible controls or create a template with the matching legacy/current module set.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Marks the named draft as published so new assets can start from it, and returns the stored record. An already published template returns 409. A template that is not ready to publish returns an error naming the gaps. A missing identifier returns an error. The write waits until the stored flag is published.","summary":"Publish one compliance template","x-dalp-auth":"session-or-api-key"}},"/api/v2/platform-setup/status":{"get":{"tags":["Organisation deployment"],"operationId":"platform.setup.platformSetupStatus","parameters":[],"responses":{"200":{"description":"Whether platform setup has been marked complete. `completed` is true only after a successful complete write. The call is a read and is safe to retry.","content":{"application/json":{"schema":{"type":"object","properties":{"completed":{"type":"boolean"}},"required":["completed"],"additionalProperties":false},"examples":{"example-1":{"value":{"completed":true}},"example-2":{"value":{"completed":false}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns whether a platform administrator has marked initial setup complete. The read is stored platform data, not a live probe of RPC or networks. completed is true only after a successful complete write. Repeating the read is safe.","summary":"Read platform setup status","x-dalp-auth":"session-or-api-key"}},"/api/v2/platform-setup/complete":{"post":{"tags":["Organisation deployment"],"operationId":"platform.setup.platformSetupComplete","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Platform setup is complete. `completed` is always true on this success path. At least one RPC upstream pool for an enabled network must exist before this write succeeds.","content":{"application/json":{"schema":{"type":"object","properties":{"completed":{"type":"boolean","enum":[true]}},"required":["completed"],"additionalProperties":false},"examples":{"example-1":{"value":{"completed":true}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Records that initial platform setup is finished. Only a platform administrator can call this. At least one RPC upstream pool for an enabled network must exist or the write fails. The write waits until the stored flag is true. Completing setup a second time still requires an RPC pool and still returns completed true.","summary":"Mark platform setup complete","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlatformSetupCompleteInputEncoded"}}},"required":false},"x-dalp-auth":"session-or-api-key"}},"/api/v2/admin/networks":{"get":{"tags":["Platform administration"],"operationId":"platform.admin.adminNetworksList","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000}},"allOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"object","properties":{"eq":{"anyOf":[{"type":"string"},{"type":"number"}]},"ne":{"anyOf":[{"type":"string"},{"type":"number"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]}},"additionalProperties":false}]}}]},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"One page of every network in the merged catalog, including disabled networks. `source` is database when a registry override is served. `hasBaseline` is true when deleting the row reverts to the values definition rather than removing the network.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"chainId":{"anyOf":[{"type":"integer"},{"type":"null"}]},"family":{"type":"string","enum":["evm","canton"]},"networkName":{"type":"string"},"chainName":{"anyOf":[{"type":"string"},{"type":"null"}]},"chain":{"anyOf":[{"type":"string"},{"type":"null"}]},"isDefault":{"type":"boolean"},"source":{"type":"string","enum":["config","database"]},"hasOverride":{"type":"boolean"},"rejection":{"type":"object","properties":{"code":{"type":"string","enum":["invalid-definition","authentication-bearing-content","enabled-mismatch","chain-id-mismatch","reserved-network-name","second-default","default-not-enabled","duplicate-chain-id"]},"chainId":{"type":"integer"},"conflictingNetworkName":{"type":"string"}},"required":["code"],"additionalProperties":false},"hasBaseline":{"type":"boolean"},"enabled":{"type":"boolean"},"sync":{"type":"object","properties":{"status":{"type":"string","enum":["paused","catching_up","live"]},"lifecycleVersion":{"type":"integer"},"historyComplete":{"type":"boolean"},"indexingContracts":{"type":"integer"},"trackedContracts":{"type":"integer"},"committedHeight":{"anyOf":[{"type":"string"},{"type":"null"}]},"committedAgeMs":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"required":["status","lifecycleVersion","historyComplete","indexingContracts","trackedContracts","committedHeight","committedAgeMs"],"additionalProperties":false},"gasEffective":{"type":"object","properties":{"zeroGas":{"type":"boolean"},"opsAllowanceGas":{"type":"object","properties":{"deployer":{"type":"integer"},"organisation":{"type":"integer"}},"required":["deployer","organisation"],"additionalProperties":false},"deployFallbackGas":{"type":"integer"},"maxReasonableGas":{"type":"integer"},"feeCapBaseFeeMultiplier":{"type":"integer"},"pauseWindowSeconds":{"type":"integer"},"pauseSettleDelaySeconds":{"type":"integer"},"sponsorshipMaxGasCostCeiling":{"type":"string"},"sponsorshipAutoMaxGasCost":{"type":"string"},"sources":{"type":"object","properties":{"zeroGas":{"type":"string","enum":["row","values","chain-default","default","detected"]},"opsAllowanceGas":{"type":"object","properties":{"deployer":{"type":"string","enum":["row","values","chain-default","default","detected"]},"organisation":{"type":"string","enum":["row","values","chain-default","default","detected"]}},"required":["deployer","organisation"],"additionalProperties":false},"deployFallbackGas":{"type":"string","enum":["row","values","chain-default","default","detected"]},"maxReasonableGas":{"type":"string","enum":["row","values","chain-default","default","detected"]},"feeCapBaseFeeMultiplier":{"type":"string","enum":["row","values","chain-default","default","detected"]},"pauseWindowSeconds":{"type":"string","enum":["row","values","chain-default","default","detected"]},"pauseSettleDelaySeconds":{"type":"string","enum":["row","values","chain-default","default","detected"]},"sponsorshipMaxGasCostCeiling":{"type":"string","enum":["row","values","chain-default","default","detected"]},"sponsorshipAutoMaxGasCost":{"type":"string","enum":["row","values","chain-default","default","detected"]}},"required":["zeroGas","opsAllowanceGas","deployFallbackGas","maxReasonableGas","feeCapBaseFeeMultiplier","pauseWindowSeconds","pauseSettleDelaySeconds","sponsorshipMaxGasCostCeiling","sponsorshipAutoMaxGasCost"],"additionalProperties":false}},"required":["zeroGas","opsAllowanceGas","deployFallbackGas","maxReasonableGas","feeCapBaseFeeMultiplier","pauseWindowSeconds","pauseSettleDelaySeconds","sponsorshipMaxGasCostCeiling","sponsorshipAutoMaxGasCost","sources"],"additionalProperties":false}},"required":["chainId","networkName","chainName","isDefault","source","hasBaseline","enabled"],"additionalProperties":false}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"chainId":11155111,"networkName":"sepolia","chainName":"sepolia","chain":"sepolia","isDefault":true,"source":"database","hasBaseline":true,"enabled":true,"gasEffective":{"zeroGas":false,"opsAllowanceGas":{"deployer":5000000,"organisation":2000000},"deployFallbackGas":8000000,"maxReasonableGas":200000000,"feeCapBaseFeeMultiplier":2,"pauseWindowSeconds":86400,"pauseSettleDelaySeconds":2,"sponsorshipMaxGasCostCeiling":"1000000000000000000","sponsorshipAutoMaxGasCost":"100000000000000000","sources":{"zeroGas":"detected","opsAllowanceGas":{"deployer":"default","organisation":"default"},"deployFallbackGas":"default","maxReasonableGas":"default","feeCapBaseFeeMultiplier":"default","pauseWindowSeconds":"row","pauseSettleDelaySeconds":"chain-default","sponsorshipMaxGasCostCeiling":"default","sponsorshipAutoMaxGasCost":"default"}}}],"meta":{"total":1},"links":{"self":"/v2/admin/networks?sort=chainId&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/admin/networks?sort=chainId&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/admin/networks?sort=chainId&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of every network in the merged catalog, including disabled networks and the deployment default. Only a platform administrator can call this. source and hasBaseline tell whether a delete reverts to the values definition or removes the network. The default sort is chainId. The call is a read and is safe to retry.","summary":"List deployment networks","x-dalp-auth":"session-or-api-key"}},"/api/v2/admin/networks/rejected":{"get":{"tags":["Platform administration"],"operationId":"platform.admin.adminNetworksRejected","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000}},"allOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"object","properties":{"eq":{"anyOf":[{"type":"string"},{"type":"number"}]},"ne":{"anyOf":[{"type":"string"},{"type":"number"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]}},"additionalProperties":false}]}}]},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"One page of stored network overrides rejected by the current deployment catalog. Reasons are stable codes with safe scalar context; stored definitions and parser details are never returned.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"networkName":{"type":"string"},"chainId":{"anyOf":[{"type":"integer"},{"type":"null"}]},"family":{"type":"string","enum":["evm","canton"]},"enabled":{"type":"boolean"},"hasBaseline":{"type":"boolean"},"rejection":{"type":"object","properties":{"code":{"type":"string","enum":["invalid-definition","authentication-bearing-content","enabled-mismatch","chain-id-mismatch","reserved-network-name","second-default","default-not-enabled","duplicate-chain-id"]},"chainId":{"type":"integer"},"conflictingNetworkName":{"type":"string"}},"required":["code"],"additionalProperties":false}},"required":["networkName","chainId","enabled","hasBaseline","rejection"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"integer"},"facets":{"type":"object","additionalProperties":{"type":"array","items":{"$ref":"#/components/schemas/CollectionFacetEntry"}}},"snapshot":{"type":"string","description":"Opaque hash of the complete rejected-override collection. Every page from one stable collection has the same value."}},"required":["total","snapshot"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"networkName":"mainnet-shadow","chainId":1,"enabled":true,"hasBaseline":false,"rejection":{"code":"duplicate-chain-id","chainId":1,"conflictingNetworkName":"mainnet"}}],"meta":{"total":1,"snapshot":"0x1212121212121212121212121212121212121212121212121212121212121212"},"links":{"self":"/v2/admin/networks/rejected?sort=chainId&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/admin/networks/rejected?sort=chainId&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/admin/networks/rejected?sort=chainId&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns stored network overrides that the current deployment catalog rejected. Each row contains safe lookup facts and a stable rejection code, never the stored definition or parser output. Only a platform administrator can call this. The default sort is chainId.","summary":"List rejected network overrides","x-dalp-auth":"session-or-api-key"}},"/api/v2/admin/networks/{networkName}/indexing":{"put":{"tags":["Platform administration"],"operationId":"platform.admin.adminNetworksIndexing","parameters":[{"name":"networkName","in":"path","schema":{"type":"string","minLength":1,"maxLength":128},"required":true},{"name":"if-match","in":"header","schema":{"type":"string","minLength":1},"required":false},{"name":"if-none-match","in":"header","schema":{"type":"string","enum":["*"]},"required":false},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The named network's indexing lifecycle after the write, with the version the response also carries in its ETag. `pauseReason` names why the chain holds no new batch while `paused` is true, and is null while it is false.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/AdminNetworkLifecycle"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"networkName":"sepolia","chainId":11155111,"paused":true,"pauseReason":"admin","version":4},"links":{"self":"/v2/admin/networks/sepolia/indexing"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Pauses or resumes indexing for the named EVM network. Send If-Match with the lifecycle version last read; a stale version returns 412 and stores nothing. The response carries the new lifecycle version in both its data and ETag.","summary":"Pause or resume network indexing","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminNetworkLifecycleInput"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/admin/networks/{networkName}":{"get":{"tags":["Platform administration"],"operationId":"platform.admin.adminNetworksRead","parameters":[{"name":"networkName","in":"path","schema":{"type":"string","minLength":1,"maxLength":128},"required":true}],"responses":{"200":{"description":"The stored registry row for this network. A 404 means the network has no stored override yet, which is the normal state for a network that comes from deployment configuration.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"networkName":{"type":"string","minLength":1},"definition":{"anyOf":[{"type":"object","properties":{"chain":{"type":"string","minLength":1},"enabled":{"type":"boolean"},"test":{"anyOf":[{"type":"string","enum":["anvil","hardhat","ganache"]},{"type":"boolean","enum":[false]}]},"onDemandMining":{"type":"boolean"},"autoFundTestWallets":{"type":"boolean"},"contracts":{"type":"object","properties":{"directory":{"$ref":"#/components/schemas/EvmAddress"},"multicall3":{"type":"object","properties":{"address":{"$ref":"#/components/schemas/EvmAddress"},"blockCreated":{"type":"integer"}},"required":["address"],"additionalProperties":false}},"additionalProperties":false},"rpc":{"type":"object","properties":{"timeout":{"type":"integer","minimum":1000,"maximum":300000},"requestDeadlineMs":{"type":"integer","minimum":1000,"maximum":600000},"requestRpcDeadlineMs":{"type":"integer","minimum":1000,"maximum":300000},"retryCount":{"type":"integer","minimum":0,"maximum":10},"retryDelay":{"type":"integer","minimum":0,"maximum":60000},"retryBackoffFactor":{"type":"number","minimum":1,"maximum":10},"retryJitter":{"type":"number","minimum":0,"maximum":1},"retryMaxDelay":{"type":"integer","minimum":0,"maximum":300000},"maxUpstreamAttempts":{"type":"integer","minimum":1,"maximum":100},"methodTimeouts":{"type":"object","additionalProperties":{"type":"integer","minimum":1000,"maximum":300000}},"retryOverrides":{"type":"object","additionalProperties":{"type":"object","properties":{"retryCount":{"type":"integer","minimum":0,"maximum":10}},"additionalProperties":false}},"limits":{"type":"object","properties":{"maxAddressesPerCall":{"type":"integer","minimum":1,"maximum":500},"maxIndexerAddressesPerCall":{"type":"integer","minimum":1,"maximum":2000},"minAddressesForBloomPreflight":{"type":"integer","minimum":1,"maximum":2000},"maxBlockRangePerCall":{"type":"integer","minimum":1,"maximum":50000},"minBlockRangePerCall":{"type":"integer","minimum":1,"maximum":50000},"adaptiveBlockRange":{"type":"boolean"},"maxConcurrentCalls":{"type":"integer","minimum":1,"maximum":50},"adaptiveConcurrency":{"type":"boolean"}},"additionalProperties":false},"cache":{"type":"object","properties":{"enabled":{"type":"boolean"},"ttl":{"$ref":"#/components/schemas/TtlInput"},"unknownTtl":{"$ref":"#/components/schemas/TtlInput"},"staticTtl":{"$ref":"#/components/schemas/TtlInput"},"safetyBlocks":{"type":"integer","minimum":0}},"additionalProperties":false},"health":{"type":"object","properties":{"enabled":{"type":"boolean"},"maxBlockHeadLag":{"type":"integer","minimum":0},"minScore":{"type":"number","minimum":0,"maximum":1},"staleScoreMs":{"type":"integer","minimum":1},"pollIntervalMs":{"type":"integer","minimum":1000,"maximum":300000},"hysteresis":{"type":"number","minimum":0,"maximum":1},"minSwitchIntervalMs":{"type":"integer","minimum":0},"penaltyHalfLifeMs":{"type":"integer","minimum":1}},"additionalProperties":false},"batch":{"type":"object","properties":{"enabled":{"type":"boolean"},"batchSize":{"type":"integer","minimum":1,"maximum":10000},"wait":{"type":"integer","minimum":0,"maximum":1000}},"additionalProperties":false}},"additionalProperties":false},"batch":{"type":"object","properties":{"multicall":{"type":"object","properties":{"enabled":{"type":"boolean"},"batchSize":{"type":"integer","minimum":1,"maximum":10000},"wait":{"type":"integer","minimum":0,"maximum":1000}},"additionalProperties":false}},"additionalProperties":false},"indexing":{"type":"object","properties":{"chunkSize":{"type":"integer","minimum":1,"maximum":50000},"minChunkSize":{"type":"integer","minimum":1,"maximum":50000},"maxChunkSize":{"type":"integer","minimum":1,"maximum":50000},"livePollingIntervalMs":{"type":"integer","minimum":100,"maximum":300000},"verifyBlockReceipts":{"type":"boolean"}},"additionalProperties":false},"gas":{"type":"object","properties":{"zeroGas":{"type":"boolean"},"opsAllowanceGas":{"type":"object","properties":{"deployer":{"type":"integer","minimum":1,"maximum":2000000000},"organisation":{"type":"integer","minimum":1,"maximum":2000000000}},"additionalProperties":false},"deployFallbackGas":{"type":"integer","minimum":1,"maximum":2000000000},"maxReasonableGas":{"type":"integer","minimum":0},"feeCapBaseFeeMultiplier":{"type":"integer","minimum":1,"maximum":50},"pauseWindowSeconds":{"type":"integer","minimum":60,"maximum":604800},"pauseSettleDelaySeconds":{"type":"integer","minimum":0,"maximum":3600},"sponsorshipMaxGasCostCeiling":{"type":"string"},"sponsorshipAutoMaxGasCost":{"type":"string"}},"additionalProperties":false},"supportsFinalizedTag":{"type":"boolean"},"finalityConfirmations":{"type":"integer","minimum":0},"reorgDepth":{"type":"integer","minimum":1}},"required":["chain"],"additionalProperties":false},{"type":"object","properties":{"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"name":{"type":"string","minLength":1},"nativeCurrency":{"type":"object","properties":{"name":{"type":"string","minLength":1},"symbol":{"type":"string","maxLength":10},"decimals":{"type":"integer","minimum":0,"maximum":18}},"required":["name","symbol"],"additionalProperties":false},"blockExplorers":{"type":"object","additionalProperties":{"type":"object","properties":{"name":{"type":"string","minLength":1},"url":{"type":"string","pattern":"^https?:\\/\\/[^\\s]+$","maxLength":2048}},"required":["name","url"],"additionalProperties":false}},"enabled":{"type":"boolean"},"test":{"anyOf":[{"type":"string","enum":["anvil","hardhat","ganache"]},{"type":"boolean","enum":[false]}]},"onDemandMining":{"type":"boolean"},"autoFundTestWallets":{"type":"boolean"},"contracts":{"type":"object","properties":{"directory":{"$ref":"#/components/schemas/EvmAddress"},"multicall3":{"type":"object","properties":{"address":{"$ref":"#/components/schemas/EvmAddress"},"blockCreated":{"type":"integer"}},"required":["address"],"additionalProperties":false}},"additionalProperties":false},"rpc":{"type":"object","properties":{"timeout":{"type":"integer","minimum":1000,"maximum":300000},"requestDeadlineMs":{"type":"integer","minimum":1000,"maximum":600000},"requestRpcDeadlineMs":{"type":"integer","minimum":1000,"maximum":300000},"retryCount":{"type":"integer","minimum":0,"maximum":10},"retryDelay":{"type":"integer","minimum":0,"maximum":60000},"retryBackoffFactor":{"type":"number","minimum":1,"maximum":10},"retryJitter":{"type":"number","minimum":0,"maximum":1},"retryMaxDelay":{"type":"integer","minimum":0,"maximum":300000},"maxUpstreamAttempts":{"type":"integer","minimum":1,"maximum":100},"methodTimeouts":{"type":"object","additionalProperties":{"type":"integer","minimum":1000,"maximum":300000}},"retryOverrides":{"type":"object","additionalProperties":{"type":"object","properties":{"retryCount":{"type":"integer","minimum":0,"maximum":10}},"additionalProperties":false}},"limits":{"type":"object","properties":{"maxAddressesPerCall":{"type":"integer","minimum":1,"maximum":500},"maxIndexerAddressesPerCall":{"type":"integer","minimum":1,"maximum":2000},"minAddressesForBloomPreflight":{"type":"integer","minimum":1,"maximum":2000},"maxBlockRangePerCall":{"type":"integer","minimum":1,"maximum":50000},"minBlockRangePerCall":{"type":"integer","minimum":1,"maximum":50000},"adaptiveBlockRange":{"type":"boolean"},"maxConcurrentCalls":{"type":"integer","minimum":1,"maximum":50},"adaptiveConcurrency":{"type":"boolean"}},"additionalProperties":false},"cache":{"type":"object","properties":{"enabled":{"type":"boolean"},"ttl":{"$ref":"#/components/schemas/TtlInput"},"unknownTtl":{"$ref":"#/components/schemas/TtlInput"},"staticTtl":{"$ref":"#/components/schemas/TtlInput"},"safetyBlocks":{"type":"integer","minimum":0}},"additionalProperties":false},"health":{"type":"object","properties":{"enabled":{"type":"boolean"},"maxBlockHeadLag":{"type":"integer","minimum":0},"minScore":{"type":"number","minimum":0,"maximum":1},"staleScoreMs":{"type":"integer","minimum":1},"pollIntervalMs":{"type":"integer","minimum":1000,"maximum":300000},"hysteresis":{"type":"number","minimum":0,"maximum":1},"minSwitchIntervalMs":{"type":"integer","minimum":0},"penaltyHalfLifeMs":{"type":"integer","minimum":1}},"additionalProperties":false},"batch":{"type":"object","properties":{"enabled":{"type":"boolean"},"batchSize":{"type":"integer","minimum":1,"maximum":10000},"wait":{"type":"integer","minimum":0,"maximum":1000}},"additionalProperties":false}},"additionalProperties":false},"batch":{"type":"object","properties":{"multicall":{"type":"object","properties":{"enabled":{"type":"boolean"},"batchSize":{"type":"integer","minimum":1,"maximum":10000},"wait":{"type":"integer","minimum":0,"maximum":1000}},"additionalProperties":false}},"additionalProperties":false},"indexing":{"type":"object","properties":{"chunkSize":{"type":"integer","minimum":1,"maximum":50000},"minChunkSize":{"type":"integer","minimum":1,"maximum":50000},"maxChunkSize":{"type":"integer","minimum":1,"maximum":50000},"livePollingIntervalMs":{"type":"integer","minimum":100,"maximum":300000},"verifyBlockReceipts":{"type":"boolean"}},"additionalProperties":false},"gas":{"type":"object","properties":{"zeroGas":{"type":"boolean"},"opsAllowanceGas":{"type":"object","properties":{"deployer":{"type":"integer","minimum":1,"maximum":2000000000},"organisation":{"type":"integer","minimum":1,"maximum":2000000000}},"additionalProperties":false},"deployFallbackGas":{"type":"integer","minimum":1,"maximum":2000000000},"maxReasonableGas":{"type":"integer","minimum":0},"feeCapBaseFeeMultiplier":{"type":"integer","minimum":1,"maximum":50},"pauseWindowSeconds":{"type":"integer","minimum":60,"maximum":604800},"pauseSettleDelaySeconds":{"type":"integer","minimum":0,"maximum":3600},"sponsorshipMaxGasCostCeiling":{"type":"string"},"sponsorshipAutoMaxGasCost":{"type":"string"}},"additionalProperties":false},"supportsFinalizedTag":{"type":"boolean"},"finalityConfirmations":{"type":"integer","minimum":0},"reorgDepth":{"type":"integer","minimum":1}},"required":["chainId","name"],"additionalProperties":false},{"type":"object","properties":{"family":{"type":"string","enum":["canton"]},"ledgerApiUrl":{"type":"string","pattern":"^https?:\\/\\/[^\\s]+$","maxLength":2048},"synchronizerId":{"type":"string","minLength":1},"participantId":{"type":"string","minLength":1},"participantUser":{"type":"string","minLength":1},"enabled":{"type":"boolean"}},"required":["family","ledgerApiUrl","synchronizerId","participantId","participantUser"],"additionalProperties":false}]},"version":{"type":"integer","minimum":0},"gasEffective":{"type":"object","properties":{"zeroGas":{"type":"boolean"},"opsAllowanceGas":{"type":"object","properties":{"deployer":{"type":"integer"},"organisation":{"type":"integer"}},"required":["deployer","organisation"],"additionalProperties":false},"deployFallbackGas":{"type":"integer"},"maxReasonableGas":{"type":"integer"},"feeCapBaseFeeMultiplier":{"type":"integer"},"pauseWindowSeconds":{"type":"integer"},"pauseSettleDelaySeconds":{"type":"integer"},"sponsorshipMaxGasCostCeiling":{"type":"string"},"sponsorshipAutoMaxGasCost":{"type":"string"},"sources":{"type":"object","properties":{"zeroGas":{"type":"string","enum":["row","values","chain-default","default","detected"]},"opsAllowanceGas":{"type":"object","properties":{"deployer":{"type":"string","enum":["row","values","chain-default","default","detected"]},"organisation":{"type":"string","enum":["row","values","chain-default","default","detected"]}},"required":["deployer","organisation"],"additionalProperties":false},"deployFallbackGas":{"type":"string","enum":["row","values","chain-default","default","detected"]},"maxReasonableGas":{"type":"string","enum":["row","values","chain-default","default","detected"]},"feeCapBaseFeeMultiplier":{"type":"string","enum":["row","values","chain-default","default","detected"]},"pauseWindowSeconds":{"type":"string","enum":["row","values","chain-default","default","detected"]},"pauseSettleDelaySeconds":{"type":"string","enum":["row","values","chain-default","default","detected"]},"sponsorshipMaxGasCostCeiling":{"type":"string","enum":["row","values","chain-default","default","detected"]},"sponsorshipAutoMaxGasCost":{"type":"string","enum":["row","values","chain-default","default","detected"]}},"required":["zeroGas","opsAllowanceGas","deployFallbackGas","maxReasonableGas","feeCapBaseFeeMultiplier","pauseWindowSeconds","pauseSettleDelaySeconds","sponsorshipMaxGasCostCeiling","sponsorshipAutoMaxGasCost"],"additionalProperties":false}},"required":["zeroGas","opsAllowanceGas","deployFallbackGas","maxReasonableGas","feeCapBaseFeeMultiplier","pauseWindowSeconds","pauseSettleDelaySeconds","sponsorshipMaxGasCostCeiling","sponsorshipAutoMaxGasCost","sources"],"additionalProperties":false}},"required":["networkName","definition","version"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"networkName":"sepolia","version":3,"definition":{"chain":"sepolia","enabled":true,"gas":{"pauseWindowSeconds":86400}},"gasEffective":{"zeroGas":false,"opsAllowanceGas":{"deployer":5000000,"organisation":2000000},"deployFallbackGas":8000000,"maxReasonableGas":200000000,"feeCapBaseFeeMultiplier":2,"pauseWindowSeconds":86400,"pauseSettleDelaySeconds":2,"sponsorshipMaxGasCostCeiling":"1000000000000000000","sponsorshipAutoMaxGasCost":"100000000000000000","sources":{"zeroGas":"detected","opsAllowanceGas":{"deployer":"default","organisation":"default"},"deployFallbackGas":"default","maxReasonableGas":"default","feeCapBaseFeeMultiplier":"default","pauseWindowSeconds":"row","pauseSettleDelaySeconds":"chain-default","sponsorshipMaxGasCostCeiling":"default","sponsorshipAutoMaxGasCost":"default"}}},"links":{"self":"/v2/admin/networks/sepolia"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the registry row stored for the named network, in the exact shape the write route accepts, plus the version to send back as If-Match. A 404 means the network has no stored row yet, which is normal for a network that comes from deployment configuration. Only a platform administrator can call this. The call is a read and is safe to retry.","summary":"Read a stored network definition","x-dalp-auth":"session-or-api-key"},"put":{"tags":["Platform administration"],"operationId":"platform.admin.adminNetworksUpsert","parameters":[{"name":"networkName","in":"path","schema":{"type":"string","minLength":1,"maxLength":128},"required":true},{"name":"if-match","in":"header","schema":{"type":"string","minLength":1},"required":false},{"name":"if-none-match","in":"header","schema":{"type":"string","enum":["*"]},"required":false},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The network as the merged catalog now serves it. Read `source` and `hasBaseline` to know whether a later delete reverts or removes the network.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"chainId":{"anyOf":[{"type":"integer"},{"type":"null"}]},"family":{"type":"string","enum":["evm","canton"]},"networkName":{"type":"string"},"chainName":{"anyOf":[{"type":"string"},{"type":"null"}]},"chain":{"anyOf":[{"type":"string"},{"type":"null"}]},"isDefault":{"type":"boolean"},"source":{"type":"string","enum":["config","database"]},"hasOverride":{"type":"boolean"},"rejection":{"type":"object","properties":{"code":{"type":"string","enum":["invalid-definition","authentication-bearing-content","enabled-mismatch","chain-id-mismatch","reserved-network-name","second-default","default-not-enabled","duplicate-chain-id"]},"chainId":{"type":"integer"},"conflictingNetworkName":{"type":"string"}},"required":["code"],"additionalProperties":false},"hasBaseline":{"type":"boolean"},"enabled":{"type":"boolean"},"sync":{"type":"object","properties":{"status":{"type":"string","enum":["paused","catching_up","live"]},"lifecycleVersion":{"type":"integer"},"historyComplete":{"type":"boolean"},"indexingContracts":{"type":"integer"},"trackedContracts":{"type":"integer"},"committedHeight":{"anyOf":[{"type":"string"},{"type":"null"}]},"committedAgeMs":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"required":["status","lifecycleVersion","historyComplete","indexingContracts","trackedContracts","committedHeight","committedAgeMs"],"additionalProperties":false},"gasEffective":{"type":"object","properties":{"zeroGas":{"type":"boolean"},"opsAllowanceGas":{"type":"object","properties":{"deployer":{"type":"integer"},"organisation":{"type":"integer"}},"required":["deployer","organisation"],"additionalProperties":false},"deployFallbackGas":{"type":"integer"},"maxReasonableGas":{"type":"integer"},"feeCapBaseFeeMultiplier":{"type":"integer"},"pauseWindowSeconds":{"type":"integer"},"pauseSettleDelaySeconds":{"type":"integer"},"sponsorshipMaxGasCostCeiling":{"type":"string"},"sponsorshipAutoMaxGasCost":{"type":"string"},"sources":{"type":"object","properties":{"zeroGas":{"type":"string","enum":["row","values","chain-default","default","detected"]},"opsAllowanceGas":{"type":"object","properties":{"deployer":{"type":"string","enum":["row","values","chain-default","default","detected"]},"organisation":{"type":"string","enum":["row","values","chain-default","default","detected"]}},"required":["deployer","organisation"],"additionalProperties":false},"deployFallbackGas":{"type":"string","enum":["row","values","chain-default","default","detected"]},"maxReasonableGas":{"type":"string","enum":["row","values","chain-default","default","detected"]},"feeCapBaseFeeMultiplier":{"type":"string","enum":["row","values","chain-default","default","detected"]},"pauseWindowSeconds":{"type":"string","enum":["row","values","chain-default","default","detected"]},"pauseSettleDelaySeconds":{"type":"string","enum":["row","values","chain-default","default","detected"]},"sponsorshipMaxGasCostCeiling":{"type":"string","enum":["row","values","chain-default","default","detected"]},"sponsorshipAutoMaxGasCost":{"type":"string","enum":["row","values","chain-default","default","detected"]}},"required":["zeroGas","opsAllowanceGas","deployFallbackGas","maxReasonableGas","feeCapBaseFeeMultiplier","pauseWindowSeconds","pauseSettleDelaySeconds","sponsorshipMaxGasCostCeiling","sponsorshipAutoMaxGasCost"],"additionalProperties":false}},"required":["zeroGas","opsAllowanceGas","deployFallbackGas","maxReasonableGas","feeCapBaseFeeMultiplier","pauseWindowSeconds","pauseSettleDelaySeconds","sponsorshipMaxGasCostCeiling","sponsorshipAutoMaxGasCost","sources"],"additionalProperties":false}},"required":["chainId","networkName","chainName","isDefault","source","hasBaseline","enabled"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"chainId":11155111,"networkName":"sepolia","chainName":"sepolia","chain":"sepolia","isDefault":true,"source":"database","hasBaseline":true,"enabled":true,"gasEffective":{"zeroGas":false,"opsAllowanceGas":{"deployer":5000000,"organisation":2000000},"deployFallbackGas":8000000,"maxReasonableGas":200000000,"feeCapBaseFeeMultiplier":2,"pauseWindowSeconds":86400,"pauseSettleDelaySeconds":2,"sponsorshipMaxGasCostCeiling":"1000000000000000000","sponsorshipAutoMaxGasCost":"100000000000000000","sources":{"zeroGas":"detected","opsAllowanceGas":{"deployer":"default","organisation":"default"},"deployFallbackGas":"default","maxReasonableGas":"default","feeCapBaseFeeMultiplier":"default","pauseWindowSeconds":"row","pauseSettleDelaySeconds":"chain-default","sponsorshipMaxGasCostCeiling":"default","sponsorshipAutoMaxGasCost":"default"}}},"links":{"self":"/v2/admin/networks/sepolia"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.NETWORK_DEFINITION_INVALID","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","platform.http.NETWORK_CATALOG_INVALID","platform.http.NETWORK_HAS_UPSTREAM_POOL","platform.http.NETWORK_IN_USE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Stores a network definition under the path name. Send either a built-in viem alias (chain) or a custom definition (chainId and name). RPC endpoints and credentials belong on the upstream-pool route, not here. Extra properties such as default are rejected. Only a platform administrator can call this. Send If-Match with the version the read route returned to refuse a save that would overwrite someone else's change, or If-None-Match with * to store only when the network has no row yet; without either header the last write wins. Repeating an identical body stores the same definition again.","summary":"Create or replace a network definition","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"chain":{"type":"string","minLength":1},"enabled":{"type":"boolean"},"test":{"anyOf":[{"type":"string","enum":["anvil","hardhat","ganache"]},{"type":"boolean","enum":[false]}]},"onDemandMining":{"type":"boolean"},"autoFundTestWallets":{"type":"boolean"},"contracts":{"type":"object","properties":{"directory":{"$ref":"#/components/schemas/EvmAddress"},"multicall3":{"type":"object","properties":{"address":{"$ref":"#/components/schemas/EvmAddress"},"blockCreated":{"type":"integer"}},"required":["address"],"additionalProperties":false}},"additionalProperties":false},"rpc":{"type":"object","properties":{"timeout":{"type":"integer","minimum":1000,"maximum":300000},"requestDeadlineMs":{"type":"integer","minimum":1000,"maximum":600000},"requestRpcDeadlineMs":{"type":"integer","minimum":1000,"maximum":300000},"retryCount":{"type":"integer","minimum":0,"maximum":10},"retryDelay":{"type":"integer","minimum":0,"maximum":60000},"retryBackoffFactor":{"type":"number","minimum":1,"maximum":10},"retryJitter":{"type":"number","minimum":0,"maximum":1},"retryMaxDelay":{"type":"integer","minimum":0,"maximum":300000},"maxUpstreamAttempts":{"type":"integer","minimum":1,"maximum":100},"methodTimeouts":{"type":"object","additionalProperties":{"type":"integer","minimum":1000,"maximum":300000}},"retryOverrides":{"type":"object","additionalProperties":{"type":"object","properties":{"retryCount":{"type":"integer","minimum":0,"maximum":10}},"additionalProperties":false}},"limits":{"type":"object","properties":{"maxAddressesPerCall":{"type":"integer","minimum":1,"maximum":500},"maxIndexerAddressesPerCall":{"type":"integer","minimum":1,"maximum":2000},"minAddressesForBloomPreflight":{"type":"integer","minimum":1,"maximum":2000},"maxBlockRangePerCall":{"type":"integer","minimum":1,"maximum":50000},"minBlockRangePerCall":{"type":"integer","minimum":1,"maximum":50000},"adaptiveBlockRange":{"type":"boolean"},"maxConcurrentCalls":{"type":"integer","minimum":1,"maximum":50},"adaptiveConcurrency":{"type":"boolean"}},"additionalProperties":false},"cache":{"type":"object","properties":{"enabled":{"type":"boolean"},"ttl":{"$ref":"#/components/schemas/TtlInput"},"unknownTtl":{"$ref":"#/components/schemas/TtlInput"},"staticTtl":{"$ref":"#/components/schemas/TtlInput"},"safetyBlocks":{"type":"integer","minimum":0}},"additionalProperties":false},"health":{"type":"object","properties":{"enabled":{"type":"boolean"},"maxBlockHeadLag":{"type":"integer","minimum":0},"minScore":{"type":"number","minimum":0,"maximum":1},"staleScoreMs":{"type":"integer","minimum":1},"pollIntervalMs":{"type":"integer","minimum":1000,"maximum":300000},"hysteresis":{"type":"number","minimum":0,"maximum":1},"minSwitchIntervalMs":{"type":"integer","minimum":0},"penaltyHalfLifeMs":{"type":"integer","minimum":1}},"additionalProperties":false},"batch":{"type":"object","properties":{"enabled":{"type":"boolean"},"batchSize":{"type":"integer","minimum":1,"maximum":10000},"wait":{"type":"integer","minimum":0,"maximum":1000}},"additionalProperties":false}},"additionalProperties":false},"batch":{"type":"object","properties":{"multicall":{"type":"object","properties":{"enabled":{"type":"boolean"},"batchSize":{"type":"integer","minimum":1,"maximum":10000},"wait":{"type":"integer","minimum":0,"maximum":1000}},"additionalProperties":false}},"additionalProperties":false},"indexing":{"type":"object","properties":{"chunkSize":{"type":"integer","minimum":1,"maximum":50000},"minChunkSize":{"type":"integer","minimum":1,"maximum":50000},"maxChunkSize":{"type":"integer","minimum":1,"maximum":50000},"livePollingIntervalMs":{"type":"integer","minimum":100,"maximum":300000},"verifyBlockReceipts":{"type":"boolean"}},"additionalProperties":false},"gas":{"type":"object","properties":{"zeroGas":{"type":"boolean"},"opsAllowanceGas":{"type":"object","properties":{"deployer":{"type":"integer","minimum":1,"maximum":2000000000},"organisation":{"type":"integer","minimum":1,"maximum":2000000000}},"additionalProperties":false},"deployFallbackGas":{"type":"integer","minimum":1,"maximum":2000000000},"maxReasonableGas":{"type":"integer","minimum":0},"feeCapBaseFeeMultiplier":{"type":"integer","minimum":1,"maximum":50},"pauseWindowSeconds":{"type":"integer","minimum":60,"maximum":604800},"pauseSettleDelaySeconds":{"type":"integer","minimum":0,"maximum":3600},"sponsorshipMaxGasCostCeiling":{"type":"string"},"sponsorshipAutoMaxGasCost":{"type":"string"}},"additionalProperties":false},"supportsFinalizedTag":{"type":"boolean"},"finalityConfirmations":{"type":"integer","minimum":0},"reorgDepth":{"type":"integer","minimum":1}},"required":["chain"],"additionalProperties":false},{"type":"object","properties":{"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"name":{"type":"string","minLength":1},"nativeCurrency":{"type":"object","properties":{"name":{"type":"string","minLength":1},"symbol":{"type":"string","maxLength":10},"decimals":{"type":"integer","minimum":0,"maximum":18}},"required":["name","symbol"],"additionalProperties":false},"blockExplorers":{"type":"object","additionalProperties":{"type":"object","properties":{"name":{"type":"string","minLength":1},"url":{"type":"string","pattern":"^https?:\\/\\/[^\\s]+$","maxLength":2048}},"required":["name","url"],"additionalProperties":false}},"enabled":{"type":"boolean"},"test":{"anyOf":[{"type":"string","enum":["anvil","hardhat","ganache"]},{"type":"boolean","enum":[false]}]},"onDemandMining":{"type":"boolean"},"autoFundTestWallets":{"type":"boolean"},"contracts":{"type":"object","properties":{"directory":{"$ref":"#/components/schemas/EvmAddress"},"multicall3":{"type":"object","properties":{"address":{"$ref":"#/components/schemas/EvmAddress"},"blockCreated":{"type":"integer"}},"required":["address"],"additionalProperties":false}},"additionalProperties":false},"rpc":{"type":"object","properties":{"timeout":{"type":"integer","minimum":1000,"maximum":300000},"requestDeadlineMs":{"type":"integer","minimum":1000,"maximum":600000},"requestRpcDeadlineMs":{"type":"integer","minimum":1000,"maximum":300000},"retryCount":{"type":"integer","minimum":0,"maximum":10},"retryDelay":{"type":"integer","minimum":0,"maximum":60000},"retryBackoffFactor":{"type":"number","minimum":1,"maximum":10},"retryJitter":{"type":"number","minimum":0,"maximum":1},"retryMaxDelay":{"type":"integer","minimum":0,"maximum":300000},"maxUpstreamAttempts":{"type":"integer","minimum":1,"maximum":100},"methodTimeouts":{"type":"object","additionalProperties":{"type":"integer","minimum":1000,"maximum":300000}},"retryOverrides":{"type":"object","additionalProperties":{"type":"object","properties":{"retryCount":{"type":"integer","minimum":0,"maximum":10}},"additionalProperties":false}},"limits":{"type":"object","properties":{"maxAddressesPerCall":{"type":"integer","minimum":1,"maximum":500},"maxIndexerAddressesPerCall":{"type":"integer","minimum":1,"maximum":2000},"minAddressesForBloomPreflight":{"type":"integer","minimum":1,"maximum":2000},"maxBlockRangePerCall":{"type":"integer","minimum":1,"maximum":50000},"minBlockRangePerCall":{"type":"integer","minimum":1,"maximum":50000},"adaptiveBlockRange":{"type":"boolean"},"maxConcurrentCalls":{"type":"integer","minimum":1,"maximum":50},"adaptiveConcurrency":{"type":"boolean"}},"additionalProperties":false},"cache":{"type":"object","properties":{"enabled":{"type":"boolean"},"ttl":{"$ref":"#/components/schemas/TtlInput"},"unknownTtl":{"$ref":"#/components/schemas/TtlInput"},"staticTtl":{"$ref":"#/components/schemas/TtlInput"},"safetyBlocks":{"type":"integer","minimum":0}},"additionalProperties":false},"health":{"type":"object","properties":{"enabled":{"type":"boolean"},"maxBlockHeadLag":{"type":"integer","minimum":0},"minScore":{"type":"number","minimum":0,"maximum":1},"staleScoreMs":{"type":"integer","minimum":1},"pollIntervalMs":{"type":"integer","minimum":1000,"maximum":300000},"hysteresis":{"type":"number","minimum":0,"maximum":1},"minSwitchIntervalMs":{"type":"integer","minimum":0},"penaltyHalfLifeMs":{"type":"integer","minimum":1}},"additionalProperties":false},"batch":{"type":"object","properties":{"enabled":{"type":"boolean"},"batchSize":{"type":"integer","minimum":1,"maximum":10000},"wait":{"type":"integer","minimum":0,"maximum":1000}},"additionalProperties":false}},"additionalProperties":false},"batch":{"type":"object","properties":{"multicall":{"type":"object","properties":{"enabled":{"type":"boolean"},"batchSize":{"type":"integer","minimum":1,"maximum":10000},"wait":{"type":"integer","minimum":0,"maximum":1000}},"additionalProperties":false}},"additionalProperties":false},"indexing":{"type":"object","properties":{"chunkSize":{"type":"integer","minimum":1,"maximum":50000},"minChunkSize":{"type":"integer","minimum":1,"maximum":50000},"maxChunkSize":{"type":"integer","minimum":1,"maximum":50000},"livePollingIntervalMs":{"type":"integer","minimum":100,"maximum":300000},"verifyBlockReceipts":{"type":"boolean"}},"additionalProperties":false},"gas":{"type":"object","properties":{"zeroGas":{"type":"boolean"},"opsAllowanceGas":{"type":"object","properties":{"deployer":{"type":"integer","minimum":1,"maximum":2000000000},"organisation":{"type":"integer","minimum":1,"maximum":2000000000}},"additionalProperties":false},"deployFallbackGas":{"type":"integer","minimum":1,"maximum":2000000000},"maxReasonableGas":{"type":"integer","minimum":0},"feeCapBaseFeeMultiplier":{"type":"integer","minimum":1,"maximum":50},"pauseWindowSeconds":{"type":"integer","minimum":60,"maximum":604800},"pauseSettleDelaySeconds":{"type":"integer","minimum":0,"maximum":3600},"sponsorshipMaxGasCostCeiling":{"type":"string"},"sponsorshipAutoMaxGasCost":{"type":"string"}},"additionalProperties":false},"supportsFinalizedTag":{"type":"boolean"},"finalityConfirmations":{"type":"integer","minimum":0},"reorgDepth":{"type":"integer","minimum":1}},"required":["chainId","name"],"additionalProperties":false},{"type":"object","properties":{"family":{"type":"string","enum":["canton"]},"ledgerApiUrl":{"type":"string","pattern":"^https?:\\/\\/[^\\s]+$","maxLength":2048},"synchronizerId":{"type":"string","minLength":1},"participantId":{"type":"string","minLength":1},"participantUser":{"type":"string","minLength":1},"enabled":{"type":"boolean"}},"required":["family","ledgerApiUrl","synchronizerId","participantId","participantUser"],"additionalProperties":false}]}}},"required":true},"x-dalp-auth":"session-or-api-key"},"delete":{"tags":["Platform administration"],"operationId":"platform.admin.adminNetworksDelete","parameters":[{"name":"networkName","in":"path","schema":{"type":"string","minLength":1,"maxLength":128},"required":true},{"name":"if-match","in":"header","schema":{"type":"string","minLength":1},"required":false},{"name":"if-none-match","in":"header","schema":{"type":"string","enum":["*"]},"required":false},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The registry row is gone. `data` is null because no resource remains. When a values baseline exists the network is still served from that definition.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteResponse"},"examples":{"example-1":{"value":{"data":null}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","platform.http.NETWORK_CATALOG_INVALID","platform.http.NETWORK_HAS_UPSTREAM_POOL","platform.http.NETWORK_IN_USE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Removes the registry row for the named network. When a values baseline exists, the network reverts to that definition and its RPC pool stays. When no baseline exists, the network leaves the catalog and its pool is cleared in the same write. A network still covering an organization system returns 409. Only a platform administrator can call this.","summary":"Delete a network definition","x-dalp-auth":"session-or-api-key"}},"/api/v2/admin/rpc-upstream-pools":{"get":{"tags":["Platform administration"],"operationId":"platform.admin.adminRpcPoolsList","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000}},"allOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"object","properties":{"eq":{"anyOf":[{"type":"string"},{"type":"number"}]},"ne":{"anyOf":[{"type":"string"},{"type":"number"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]}},"additionalProperties":false}]}}]},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"One page of RPC upstream pools. Credentials never appear; each upstream reports only whether a credential is stored. `meta.total` counts every matching pool.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"networkName":{"type":"string"},"source":{"type":"string","enum":["config","database"]},"enabled":{"type":"boolean"},"upstreams":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"endpointUrl":{"type":"string","pattern":"^https?:\\/\\/[^\\s]+$","maxLength":2048},"providerType":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z][a-z0-9-]*$"},"weight":{"type":"integer"},"authType":{"anyOf":[{"type":"string","enum":["apiKey","basic"]},{"type":"null"}]},"apiHeaderName":{"anyOf":[{"type":"string"},{"type":"null"}]},"hasCredential":{"type":"boolean"},"credentialKeyId":{"anyOf":[{"type":"string"},{"type":"null"}]},"upstreamId":{"type":"string","minLength":1}},"required":["endpointUrl","providerType","weight","authType","apiHeaderName","hasCredential","credentialKeyId"],"additionalProperties":false}}},"required":["networkName","source","enabled","upstreams"],"additionalProperties":false}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"networkName":"sepolia","source":"database","enabled":true,"upstreams":[{"id":"9f2c7b41-5f6d-4d0a-9c2e-2b1a7d3e8c04","endpointUrl":"https://sepolia.rpc.northwind.example","providerType":"alchemy","weight":1,"authType":"apiKey","apiHeaderName":"Authorization","hasCredential":true,"credentialKeyId":"secret_northwind_sepolia_rpc","upstreamId":"up_northwind_sepolia_primary"}]}],"meta":{"total":1},"links":{"self":"/v2/admin/rpc-upstream-pools?sort=networkName&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/admin/rpc-upstream-pools?sort=networkName&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/admin/rpc-upstream-pools?sort=networkName&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of RPC upstream pools from the merged catalog. Only a platform administrator can call this. Filter by networkName. Credentials never appear; each upstream reports only whether a credential is stored. The call is a read and is safe to retry.","summary":"List RPC upstream pools","x-dalp-auth":"session-or-api-key"}},"/api/v2/admin/rpc-upstream-pools/{networkName}":{"put":{"tags":["Platform administration"],"operationId":"platform.admin.adminRpcPoolsUpsert","parameters":[{"name":"networkName","in":"path","schema":{"type":"string","minLength":1,"maxLength":128},"required":true},{"name":"if-match","in":"header","schema":{"type":"string","minLength":1},"required":false},{"name":"if-none-match","in":"header","schema":{"type":"string","enum":["*"]},"required":false},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The stored pool for the named network after the write. Secrets stay encrypted; `hasCredential` is true when a credential is stored.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"networkName":{"type":"string"},"source":{"type":"string","enum":["config","database"]},"enabled":{"type":"boolean"},"upstreams":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"endpointUrl":{"type":"string","pattern":"^https?:\\/\\/[^\\s]+$","maxLength":2048},"providerType":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z][a-z0-9-]*$"},"weight":{"type":"integer"},"authType":{"anyOf":[{"type":"string","enum":["apiKey","basic"]},{"type":"null"}]},"apiHeaderName":{"anyOf":[{"type":"string"},{"type":"null"}]},"hasCredential":{"type":"boolean"},"credentialKeyId":{"anyOf":[{"type":"string"},{"type":"null"}]},"upstreamId":{"type":"string","minLength":1}},"required":["endpointUrl","providerType","weight","authType","apiHeaderName","hasCredential","credentialKeyId"],"additionalProperties":false}}},"required":["networkName","source","enabled","upstreams"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"networkName":"sepolia","source":"database","enabled":true,"upstreams":[{"id":"9f2c7b41-5f6d-4d0a-9c2e-2b1a7d3e8c04","endpointUrl":"https://sepolia.rpc.northwind.example","providerType":"alchemy","weight":1,"authType":"apiKey","apiHeaderName":"Authorization","hasCredential":true,"credentialKeyId":"secret_northwind_sepolia_rpc","upstreamId":"up_northwind_sepolia_primary"}]},"links":{"self":"/v2/admin/rpc-upstream-pools/sepolia"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.NETWORK_DEFINITION_INVALID","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Replaces the entire upstream list for the named network after a live probe of each endpoint. Only a platform administrator can call this. Send If-Match with the lifecycle version returned by the network indexing route to refuse a replacement that would overwrite another operator's endpoint change. The replacement commits as one unit with the lifecycle pause transition: an empty pool pauses indexing with endpoint-removed, and the first endpoint resumes it unless an administrator pause remains.","summary":"Replace an RPC upstream pool","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"upstreams":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"endpointUrl":{"type":"string","pattern":"^https?:\\/\\/[^\\s]+$","maxLength":2048},"providerType":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z][a-z0-9-]*$"},"weight":{"type":"integer"},"credential":{"anyOf":[{"anyOf":[{"type":"object","properties":{"type":{"type":"string","enum":["apiKey"]},"headerName":{"type":"string","minLength":1,"maxLength":128},"value":{"type":"string","minLength":1}},"required":["type","value"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["basic"]},"username":{"type":"string","minLength":1},"password":{"type":"string","minLength":1}},"required":["type","username","password"],"additionalProperties":false}]},{"type":"null"}]}},"required":["endpointUrl","providerType"],"additionalProperties":false}}},"required":["upstreams"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"},"delete":{"tags":["Platform administration"],"operationId":"platform.admin.adminRpcPoolsDelete","parameters":[{"name":"networkName","in":"path","schema":{"type":"string","minLength":1,"maxLength":128},"required":true},{"name":"if-match","in":"header","schema":{"type":"string","minLength":1},"required":false},{"name":"if-none-match","in":"header","schema":{"type":"string","enum":["*"]},"required":false},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The pool is gone. `data` is null because no resource remains to return.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteResponse"},"examples":{"example-1":{"value":{"data":null}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Removes the stored upstream list for the named network. Only a platform administrator can call this. A network that still needs live RPC after this write falls back to deployment configuration. Repeating the call after a successful delete returns an empty data member again when the pool is already gone, or an error when the name is unknown.","summary":"Delete an RPC upstream pool","x-dalp-auth":"session-or-api-key"}},"/api/v2/admin/rpc-health":{"get":{"tags":["Platform administration"],"operationId":"platform.admin.adminRpcHealth","parameters":[{"name":"networkName","in":"query","schema":{"type":"string","minLength":1,"maxLength":128},"required":false}],"responses":{"200":{"description":"Latest RPC health snapshot. `data.storeStatus` is available when the health store answered. Each network lists upstream liveness, lag, latency, and the currently serving upstream.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"storeStatus":{"type":"string","enum":["available","degraded"]},"generatedAt":{"$ref":"#/components/schemas/TimestampEncoded"},"networks":{"type":"array","items":{"type":"object","properties":{"networkName":{"type":"string","minLength":1},"source":{"type":"string","enum":["config","database"]},"storeStatus":{"type":"string","enum":["available","degraded"]},"currentServingUpstreamId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"upstreams":{"type":"array","items":{"type":"object","properties":{"upstreamId":{"type":"string","minLength":1},"endpointUrl":{"type":"string","pattern":"^https?:\\/\\/[^\\s]+$","maxLength":2048},"providerType":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-z][a-z0-9-]*$"},"weight":{"type":"integer","minimum":0},"liveness":{"type":"string","enum":["healthy","unhealthy","excluded","unknown"]},"blockHeadLag":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"finalizationLag":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"latencyMs":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}]},"errorRate":{"anyOf":[{"type":"number","minimum":0,"maximum":1},{"type":"null"}]},"score":{"anyOf":[{"type":"number","minimum":0,"maximum":1},{"type":"null"}]},"updatedAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"currentServing":{"type":"boolean"},"lastEvent":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","enum":["failover","throttle"]},"at":{"$ref":"#/components/schemas/TimestampEncoded"},"detail":{"type":"string"}},"required":["type","at","detail"],"additionalProperties":false},{"type":"null"}]}},"required":["upstreamId","endpointUrl","providerType","weight","liveness","blockHeadLag","finalizationLag","latencyMs","errorRate","score","updatedAt","currentServing","lastEvent"],"additionalProperties":false}}},"required":["networkName","source","currentServingUpstreamId","upstreams"],"additionalProperties":false}}},"required":["storeStatus","generatedAt","networks"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"storeStatus":"available","generatedAt":"2026-04-12T09:30:00.000Z","networks":[{"networkName":"sepolia","source":"database","currentServingUpstreamId":"up_northwind_sepolia_primary","upstreams":[{"upstreamId":"up_northwind_sepolia_primary","endpointUrl":"https://sepolia.rpc.northwind.example","providerType":"alchemy","weight":1,"liveness":"healthy","blockHeadLag":0,"finalizationLag":2,"latencyMs":48,"errorRate":0,"score":0.98,"updatedAt":"2026-04-12T09:30:00.000Z","currentServing":true,"lastEvent":null}]}]},"links":{"self":"/v2/admin/rpc-health"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the current liveness, lag, latency, and serving upstream for each stored pool. Optional networkName narrows the overview to one network. Only a platform administrator can call this. The call is a read of the latest health snapshot and is safe to retry.","summary":"Read RPC upstream health","x-dalp-auth":"session-or-api-key"}},"/api/v2/admin/organizations":{"get":{"tags":["Platform administration"],"operationId":"platform.admin.adminOrganizationsList","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000}},"allOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"object","properties":{"eq":{"anyOf":[{"type":"string"},{"type":"number"}]},"ne":{"anyOf":[{"type":"string"},{"type":"number"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]}},"additionalProperties":false}]}}]},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"One page of organizations. `meta.total` counts every matching organization rather than the rows on this page. `links.prev` and `links.next` are null at the ends of the collection.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/OrganizationId"},"name":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1},"logo":{"$ref":"#/components/schemas/HTTPURL"},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"archivedAt":{"$ref":"#/components/schemas/TimestampEncoded"},"ownerCount":{"type":"integer","minimum":0},"ownerEmails":{"type":"array","items":{"type":"string"}},"memberCount":{"type":"integer","minimum":0},"assetCount":{"type":"integer","minimum":0}},"required":["id","name","slug","createdAt","ownerCount","ownerEmails","memberCount","assetCount"],"additionalProperties":false}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"org_northwind_coffee","name":"Northwind Coffee","slug":"northwind-coffee","createdAt":"2026-03-04T09:12:41.000Z","archivedAt":"2026-04-12T09:30:00.000Z","ownerCount":1,"ownerEmails":["owner@northwind.example"],"memberCount":3,"assetCount":2}],"meta":{"total":1,"facets":{}},"links":{"self":"/v2/admin/organizations?sort=createdAt&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/admin/organizations?sort=createdAt&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/admin/organizations?sort=createdAt&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of every organization on the platform, including archived rows, for a platform administrator. The page is stored data, not a live chain read. Paging uses page[limit] (default 50, maximum 200) and page[offset]. Sort by name, slug, createdAt, or archivedAt; the default is createdAt ascending. Filter with filter[name], filter[slug], filter[createdAt], filter[archivedAt], or filter[q]. The call is a read and is safe to retry.","summary":"Page through every organization","x-dalp-auth":"session-or-api-key"}},"/api/v2/admin/organizations/{id}/transitions":{"post":{"tags":["Platform administration"],"operationId":"platform.admin.adminOrganizationsTransition","parameters":[{"name":"id","in":"path","schema":{"type":"string","minLength":1,"description":"Tenant organization identifier"},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The organization after the transition. After archiving, `data.archivedAt` is the archive time, `data.archivedByUserId` is the administrator who archived it, and `data.archiveReason` is the optional reason from the request. After restoring, all three are null.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/OrganizationId"},"name":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1},"archivedAt":{"$ref":"#/components/schemas/TimestampEncoded"},"archivedByUserId":{"$ref":"#/components/schemas/UserId"},"archiveReason":{"type":"string","minLength":1}},"required":["id","name","slug"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"org_northwind_coffee","name":"Northwind Coffee","slug":"northwind-coffee","archivedAt":"2026-04-12T09:30:00.000Z","archivedByUserId":"user_northwind_owner","archiveReason":"Customer offboarded after the bond programme closed"},"links":{"self":"/v2/admin/organizations/org_northwind_coffee"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Moves the organization named by the id path parameter to the state in `to`. Only a platform administrator can call this. `archived` archives it: the organization leaves selectable listings and stops accepting new members. `active` restores it by clearing the archive timestamp, actor, and reason so it can be selected again. Moving an organization to the state it is already in returns 409, so repeating a successful transition returns 409.","summary":"Archive or restore an organization","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"to":{"type":"string","enum":["archived"]},"reason":{"type":"string"}},"required":["to"],"additionalProperties":false},{"type":"object","properties":{"to":{"type":"string","enum":["active"]}},"required":["to"],"additionalProperties":false}]}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/admin/operator-wallets":{"get":{"tags":["Platform administration"],"operationId":"platform.admin.adminOperatorWalletsList","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000}},"allOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"object","properties":{"eq":{"anyOf":[{"type":"string"},{"type":"number"}]},"ne":{"anyOf":[{"type":"string"},{"type":"number"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]}},"additionalProperties":false}]}}]},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"One page of platform operator wallets with chain, label, address, and latest indexed native balance.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PlatformOperatorWallet"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"chainId":11155111,"address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","label":"Pay in USDC","nativeCurrency":{"name":"Ether","symbol":"ETH","decimals":18},"nativeBalance":"2500000000000000000","nativeBalanceObservedAtBlock":"8923411","nativeBalanceObservedAt":"2026-03-15T09:12:41.000Z","zeroGas":false}],"meta":{"total":1,"facets":{}},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants","first":"/v2/accounts?sort=-firstSeenBlock&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/accounts?sort=-firstSeenBlock&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns configured platform operator wallets and their latest indexed native balances for a platform administrator. Each wallet is identified by chain and address, independent of an organization system. Paging uses page[limit] and page[offset]; the call is safe to retry.","summary":"Page through platform operator wallets","x-dalp-auth":"session-or-api-key"}},"/api/v2/admin/indexing-scope":{"get":{"tags":["Platform administration"],"operationId":"platform.admin.adminIndexingScopeList","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000}},"allOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"object","properties":{"eq":{"anyOf":[{"type":"string"},{"type":"number"}]},"ne":{"anyOf":[{"type":"string"},{"type":"number"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]}},"additionalProperties":false}]}}]},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"One page of every system the platform knows about, with the ledger `indexed` flag and the derived operator-facing `status`. `organizationNames` lists every organization holding the address on that chain and is empty for an orphan the deploy workflow left behind.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"systemAddress":{"$ref":"#/components/schemas/EvmAddress"},"organizationNames":{"type":"array","items":{"type":"string"}},"indexed":{"type":"boolean"},"status":{"type":"string","enum":["not_indexed","catching_up","attention","indexed"]}},"required":["chainId","systemAddress","organizationNames","indexed","status"],"additionalProperties":false}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"chainId":11155111,"systemAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","organizationNames":["Northwind Coffee"],"indexed":true,"status":"indexed"}],"meta":{"total":1},"links":{"self":"/v2/admin/indexing-scope?sort=chainId&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/admin/indexing-scope?sort=chainId&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/admin/indexing-scope?sort=chainId&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of every system this platform has seen announced, on every network in the catalog, with the organizations that hold it and whether the indexer reads it. Only a platform administrator can call this. The default sort is chainId. The call is a read and is safe to retry.","summary":"List the indexing scope","x-dalp-auth":"session-or-api-key"},"post":{"tags":["Platform administration"],"operationId":"platform.admin.adminIndexingScopeSet","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The system's state after the toggle. The ledger row must already exist; turning a never-announced address on is refused because the activation path needs its announcement facts.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"systemAddress":{"$ref":"#/components/schemas/EvmAddress"},"organizationNames":{"type":"array","items":{"type":"string"}},"indexed":{"type":"boolean"},"status":{"type":"string","enum":["not_indexed","catching_up","attention","indexed"]}},"required":["chainId","systemAddress","organizationNames","indexed","status"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"chainId":11155111,"systemAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","organizationNames":["Northwind Coffee"],"indexed":true,"status":"indexed"},"links":{"self":"/v2/admin/indexing-scope"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Sets whether the indexer reads one system on one chain, then answers with that system's new state. A system the platform has never seen announced returns 404, because the indexer has none of the facts it needs to start reading its history. Turning indexing off keeps the data already indexed and stops adding to it. Repeating the same value changes nothing. Only a platform administrator can call this.","summary":"Turn indexing on or off for one system","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"systemAddress":{"$ref":"#/components/schemas/EvmAddress"},"indexed":{"type":"boolean"}},"required":["chainId","systemAddress","indexed"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/admin/users/{id}/reset-onboarding":{"post":{"tags":["Platform administration"],"operationId":"platform.admin.adminUsersResetOnboarding","parameters":[{"name":"id","in":"path","schema":{"type":"string","minLength":1,"description":"Better Auth user identifier"},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The user after onboarding reset. `data.archivedWalletCount` is how many wallet rows moved to the archive, and `data.archivedWalletAddresses` lists those addresses. Memberships stay in place.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"userId":{"$ref":"#/components/schemas/UserId"},"archivedWalletCount":{"type":"integer","minimum":0},"archivedWalletAddresses":{"type":"array","items":{"$ref":"#/components/schemas/EvmAddress"}}},"required":["userId","archivedWalletCount","archivedWalletAddresses"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"userId":"user_northwind_treasury","archivedWalletCount":1,"archivedWalletAddresses":["0x2546BcD3c84621e976D8185a91A922aE77ECEc30"]},"links":{"self":"/v2/admin/users/user_northwind_treasury/reset-onboarding"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Archives the named user's wallets, clears the custody wallet and active-organization pointers, and revokes every session so the user can onboard again. Organization memberships and KYC state stay in place. Only a platform administrator can call this, and the caller cannot target their own user. Repeating the call after a successful reset archives any wallets created since the last reset.","summary":"Reset a user's onboarding","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"type":"string"}},"additionalProperties":false}}},"required":false},"x-dalp-auth":"session-or-api-key"}},"/api/v2/systems":{"get":{"tags":["Systems and factories"],"operationId":"systems.core.systemList","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000}},"allOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"object","properties":{"eq":{"anyOf":[{"type":"string"},{"type":"number"}]},"ne":{"anyOf":[{"type":"string"},{"type":"number"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]}},"additionalProperties":false}]}}]},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"One page of systems the active organization owns on the selected network. `meta.total` counts every matching system, not only the rows on this page. `links` carries relative URLs for the surrounding pages, with `prev` and `next` set to null at the ends of the collection.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PlatformSystemListRow"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isBootstrapped":true,"tokenCount":12,"systemCreatedAt":"2026-01-14T09:30:00.000Z"}],"meta":{"total":1},"links":{"self":"/v2/systems?sort=-systemCreatedAt&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/systems?sort=-systemCreatedAt&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/systems?sort=-systemCreatedAt&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of systems the active organization owns on the selected network. Filter on `id`, `isBootstrapped`, `tokenCount`, and `systemCreatedAt`. The default sort is newest first. The list is indexed state and is safe to retry.","summary":"List deployed systems","x-dalp-auth":"session-or-api-key"}},"/api/v2/systems/{systemAddress}":{"get":{"tags":["Systems and factories"],"operationId":"systems.core.systemRead","parameters":[{"name":"systemAddress","in":"path","schema":{"anyOf":[{"type":"string","enum":["default"]},{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]}]},"required":true},{"name":"fields","in":"query","schema":{"type":"object","properties":{"system":{"type":"string"}},"additionalProperties":false,"description":"Sparse fieldset for the system resource this response carries. Only named members are present, and a member this resource does not publish is refused.","examples":[{"system":"id,chainId,status,userIdentityRegistered,isZeroGasNetwork,userIdentity,userPermissions"}]},"required":false,"style":"deepObject","explode":true},{"name":"view","in":"query","schema":{"type":"string","enum":["summary"],"description":"Shorthand for the system members a list or a strip renders: id, chainId, status, userIdentityRegistered, isZeroGasNetwork, userIdentity, userPermissions. Send fields[system] to name a different set; that parameter wins when both are present.","examples":["summary"]},"required":false}],"responses":{"200":{"description":"The requested system, its registries, and the caller's permissions, with a `self` link to its canonical URL. Registry fields are null until bootstrap finishes and the indexer stores them. A request that named `view=summary` or `fields[system]` answers only the members it named, with `userPermissions` narrowed to `{ roles, holdsAssetGovernanceRole }`.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/PlatformSystemReadRecord"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","canResume":false,"chainId":80002,"deployedInTransaction":"0x5c73a1e94b0d268fa37e15c8b02d94f6a1e7835c0b96d2f4e83a17c5d602b9f4","tokenFactoryRegistry":{"id":"0xbDA5747bFD65F08deb54cb465eB87D40e51B197E","version":1,"tokenFactories":[{"id":"0xbDA5747bFD65F08deb54cb465eB87D40e51B197E","name":"Northwind Coffee Bond Factory","typeId":"bond"}]},"systemAddonRegistry":{"id":"0xdD2FD4581271e230360230F9337D5c0430Bf44C0","version":1,"systemAddons":[{"id":"0xdD2FD4581271e230360230F9337D5c0430Bf44C0","name":"Northwind XvP Settlement","typeId":"xvp-settlement","version":1}]},"compliance":null,"complianceModuleRegistry":null,"systemAccessManager":{"id":"0xFABB0ac9d68B0B445fB7357272Ff202C5651694a","accessControl":{"id":"0xFABB0ac9d68B0B445fB7357272Ff202C5651694a","addonModule":[],"addonRegistryModule":[],"admin":[{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30","isContract":false}],"auditor":[],"claimPolicyManager":[],"claimIssuer":[],"complianceManager":[],"custodian":[],"emergency":[],"feedsManager":[],"fundsManager":[],"gasManager":[],"governance":[],"identityManager":[],"identityRegistryModule":[],"organisationIdentityManager":[],"saleAdmin":[],"supplyManagement":[],"systemManager":[{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30","isContract":false}],"systemModule":[],"tokenFactoryModule":[],"tokenFactoryRegistryModule":[],"tokenManager":[{"id":"0x70997970C51812dc3A010C7d01b50e0d17dc79C8","isContract":false}],"trustedIssuersMetaRegistryModule":[],"addonManager":[],"roleAdmins":[]}},"identityRegistryStorage":{"id":"0x1CBd3b2770909D4e10f157cABC84C7264073C9Ec"},"identityRegistry":{"id":"0xFABB0ac9d68B0B445fB7357272Ff202C5651694a","registeredIdentities":[{"identity":{"id":"0x8ba1f109551bD432803012645Ac136ddd64DBA72"},"country":56,"status":"ACTIVE"}]},"trustedIssuersRegistry":{"id":"0xdF3e18d64BC6A983f673Ab319CCaE4f1a57C7097"},"topicSchemeRegistry":{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"},"externalTokenRegistry":{"id":"0x68B1D87F95878fE05B998F19b66F4baba5De1aed"},"status":"completed","updatedAt":"2026-03-11T16:02:08.000Z","userIdentityRegistered":true,"isZeroGasNetwork":false},"links":{"self":"/v2/systems/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one system by address, or the organization's default system when the path is `default`. The envelope wraps the same indexed bootstrap record as v1. Send `view=summary` to answer only the members a route guard reads, or `fields[system]` to name them, and the caller's `userPermissions` carries `roles` and `holdsAssetGovernanceRole` without the derived capability set. A missing address returns 404. The call is safe to retry.","summary":"Read a deployed system","x-dalp-auth":"session-or-api-key"}},"/api/v2/system/directory":{"get":{"tags":["Systems and factories"],"operationId":"systems.core.systemDirectoryRead","parameters":[{"name":"contract","in":"query","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":false}],"responses":{"200":{"description":"The directory catalog, or a null `data` member when that directory is not indexed.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/PlatformDirectoryCatalog"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x8626f6940E2eb28930eFb4CeF49B2d1F2C9C1199","systemImplementation":"0x90F79bf6EB2c4f870365E785982E1f101E93b906","systemAccessManagerImplementation":"0x15d34AAf54267DB7D7c367839AAf71A00a2C6A65","forwarder":"0x9965507D1a55bcC2695C58ba16FB37d819B0A4dc","systemFactory":"0x976EA74026E726554dB657fA54763abd0C3a0aa9","identityFactory":"0x14dC79964da2C08b23698B3D3cc7Ca32193d9955","identityFactoryImplementation":"0x23618e81E3f5cdF7f54C3d65f7FBc0aBf5B21E8f","identityImplementations":{"identityImplementation":"0xa0Ee7A142d267C1f36714E4a8F75612F20a79720","contractIdentityImplementation":"0xBcd4042DE499D14e55001CcbB24a551F3b954096"},"systemImplementations":{"complianceImplementation":"0x71bE63f3384f5fb98995898A86B02Fb2426c5788","identityRegistryImplementation":"0xFABB0ac9d68B0B445fB7357272Ff202C5651694a","identityRegistryStorageImplementation":"0x1CBd3b2770909D4e10f157cABC84C7264073C9Ec","trustedIssuersRegistryImplementation":"0xdF3e18d64BC6A983f673Ab319CCaE4f1a57C7097","trustedIssuersMetaRegistryImplementation":"0xcd3B766CCDd6AE721141F452C550Ca635964ce71","topicSchemeRegistryImplementation":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30","tokenAccessManagerImplementation":"0xbDA5747bFD65F08deb54cb465eB87D40e51B197E","tokenFactoryRegistryImplementation":"0xdD2FD4581271e230360230F9337D5c0430Bf44C0","complianceModuleRegistryImplementation":"0x8626f6940E2eb28930eFb4CeF49B2d1F2C9C1199","addonRegistryImplementation":"0x09DB0a93B389bEF724429898f539AEB7ac2Dd55f","identityVerificationComplianceModule":"0x5FbDB2315678afecb367f032d93F642f64180aa3","externalTokenRegistryImplementation":"0x68B1D87F95878fE05B998F19b66F4baba5De1aed"},"tokenTypes":[{"id":"0x9f2c1d7a4b83e6f05c1a9d2e7b4c60f38a51d9e2c7b4a6f18d3e0c5b7a92f4d6","typeId":"0x626f6e6400000000000000000000000000000000000000000000000000000000","name":"Bond","implementation":"0x90F79bf6EB2c4f870365E785982E1f101E93b906","factoryImplementation":"0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC","registeredAt":"2026-01-08T10:00:00.000Z","isExperimental":false}],"complianceModuleTypes":[{"id":"0x636f756e7472792d616c6c6f776c697374000000000000000000000000000000","typeId":"0x636f756e7472792d616c6c6f776c697374000000000000000000000000000001","name":"CountryAllowlist","implementation":"0x5FbDB2315678afecb367f032d93F642f64180aa3","registeredAt":"2026-01-08T10:00:00.000Z","isExperimental":false}],"addonTypes":[{"id":"0x7876702d736574746c656d656e74000000000000000000000000000000000000","typeId":"0x7876702d736574746c656d656e74000000000000000000000000000000000001","name":"XvP","kind":"factory","factoryImplementation":"0x15d34AAf54267DB7D7c367839AAf71A00a2C6A65","instanceImplementation":"0x9965507D1a55bcC2695C58ba16FB37d819B0A4dc","registeredAt":"2026-01-08T10:00:00.000Z","isExperimental":false}]},"links":{"self":"/v2/system/directory"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the directory catalog for the selected network, wrapped in the v2 single-resource envelope. Omit `contract` to use the configured directory. The call is a read and is safe to retry.","summary":"Read the system directory","x-dalp-auth":"session-or-api-key"}},"/api/v2/system/entities":{"get":{"tags":["Systems and factories"],"operationId":"systems.core.systemEntityList","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000}},"allOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"object","properties":{"eq":{"anyOf":[{"type":"string"},{"type":"number"}]},"ne":{"anyOf":[{"type":"string"},{"type":"number"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]}},"additionalProperties":false}]}}]},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"One page of identities and contracts indexed for the active system. `meta.total` counts every matching entity. Filter on `entityType` and `status`, search across the collection, and page with `page[limit]` and `page[offset]`.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"contractAddress":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"contractName":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"entityType":{"anyOf":[{"$ref":"#/components/schemas/EntityType"},{"type":"null"}]},"isContract":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"status":{"$ref":"#/components/schemas/IdentityStatus_1"},"country":{"anyOf":[{"$ref":"#/components/schemas/ISOCountryCode"},{"type":"null"}]},"verificationBadges":{"type":"array","items":{"type":"string","minLength":1}},"lastActivity":{"$ref":"#/components/schemas/TimestampEncoded"},"activeClaimsCount":{"type":"integer","minimum":0},"revokedClaimsCount":{"type":"integer","minimum":0},"untrustedClaimsCount":{"type":"integer","minimum":0},"deployedInTransaction":{"type":"string","minLength":1}},"required":["id","contractAddress","contractName","entityType","isContract","status","country","verificationBadges","lastActivity","activeClaimsCount","revokedClaimsCount","untrustedClaimsCount","deployedInTransaction"],"additionalProperties":false}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","contractAddress":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","contractName":"Northwind Coffee Treasury Identity","entityType":"eoa","isContract":false,"status":"registered","country":"BE","verificationBadges":["knowYourCustomer"],"lastActivity":"2026-03-11T16:02:08.000Z","activeClaimsCount":2,"revokedClaimsCount":0,"untrustedClaimsCount":0,"deployedInTransaction":"0x5c73a1e94b0d268fa37e15c8b02d94f6a1e7835c0b96d2f4e83a17c5d602b9f4"}],"meta":{"total":1},"links":{"self":"/v2/system/entities?sort=lastActivity&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/system/entities?sort=lastActivity&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/system/entities?sort=lastActivity&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of identities and contracts indexed for the active system. Filter on `entityType` and `status`, search across the collection, and page with `page[limit]` and `page[offset]`. The default sort is `lastActivity`. The call is safe to retry.","summary":"List system entities","x-dalp-auth":"session-or-api-key"}},"/api/v2/system/factories":{"get":{"tags":["Systems and factories"],"operationId":"systems.factories.tokenFactoryList","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000},"id":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"name":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"typeId":{"anyOf":[{"type":"string","enum":["bond","equity","fund","stablecoin","deposit","real-estate","precious-metal","dalp-asset"],"description":"Asset factory typeId identifier"},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"hasTokens":{"anyOf":[{"type":"string","enum":["true","false"]},{"type":"object","properties":{"eq":{"type":"string","enum":["true","false"]},"ne":{"type":"string","enum":["true","false"]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"One page of token factories for the active system. `meta.total` counts every matching factory. Filter on `typeId` and `hasTokens`, search by name, and sort by `name` by default.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PlatformTokenFactoryRow"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"0xbDA5747bFD65F08deb54cb465eB87D40e51B197E","name":"Northwind Coffee Bond Factory","typeId":"bond","hasTokens":true,"tokenExtensions":["PAUSABLE","BURNABLE","BOND"],"factoryImplementation":"0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC","instanceImplementation":"0x90F79bf6EB2c4f870365E785982E1f101E93b906"}],"meta":{"total":1},"links":{"self":"/v2/system/factories?sort=name&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/system/factories?sort=name&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/system/factories?sort=name&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of token factories for the active system. Filter on `typeId` and `hasTokens`, search by name, and sort by `name` by default. The call is a read and is safe to retry.","summary":"List token factories","x-dalp-auth":"session-or-api-key"},"post":{"tags":["Systems and factories"],"operationId":"systems.factories.tokenFactoryCreate","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The factory registration is accepted. When the transaction settles, the body is the updated system and its transaction hashes. When you ask for asynchronous processing, the body is a status URL to poll and the status is 202.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/PlatformSystemView"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","canResume":false,"chainId":80002,"deployedInTransaction":"0x5c73a1e94b0d268fa37e15c8b02d94f6a1e7835c0b96d2f4e83a17c5d602b9f4","tokenFactoryRegistry":{"id":"0xbDA5747bFD65F08deb54cb465eB87D40e51B197E","version":1,"tokenFactories":[{"id":"0xbDA5747bFD65F08deb54cb465eB87D40e51B197E","name":"Northwind Coffee Bond Factory","typeId":"bond"}]},"systemAddonRegistry":{"id":"0xdD2FD4581271e230360230F9337D5c0430Bf44C0","version":1,"systemAddons":[{"id":"0xdD2FD4581271e230360230F9337D5c0430Bf44C0","name":"Northwind XvP Settlement","typeId":"xvp-settlement","version":1}]},"compliance":null,"complianceModuleRegistry":null,"systemAccessManager":{"id":"0xFABB0ac9d68B0B445fB7357272Ff202C5651694a","accessControl":{"id":"0xFABB0ac9d68B0B445fB7357272Ff202C5651694a","addonModule":[],"addonRegistryModule":[],"admin":[{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30","isContract":false}],"auditor":[],"claimPolicyManager":[],"claimIssuer":[],"complianceManager":[],"custodian":[],"emergency":[],"feedsManager":[],"fundsManager":[],"gasManager":[],"governance":[],"identityManager":[],"identityRegistryModule":[],"organisationIdentityManager":[],"saleAdmin":[],"supplyManagement":[],"systemManager":[{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30","isContract":false}],"systemModule":[],"tokenFactoryModule":[],"tokenFactoryRegistryModule":[],"tokenManager":[{"id":"0x70997970C51812dc3A010C7d01b50e0d17dc79C8","isContract":false}],"trustedIssuersMetaRegistryModule":[],"addonManager":[],"roleAdmins":[]}},"identityRegistryStorage":{"id":"0x1CBd3b2770909D4e10f157cABC84C7264073C9Ec"},"identityRegistry":{"id":"0xFABB0ac9d68B0B445fB7357272Ff202C5651694a","registeredIdentities":[{"identity":{"id":"0x8ba1f109551bD432803012645Ac136ddd64DBA72"},"country":56,"status":"ACTIVE"}]},"trustedIssuersRegistry":{"id":"0xdF3e18d64BC6A983f673Ab319CCaE4f1a57C7097"},"topicSchemeRegistry":{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"},"externalTokenRegistry":{"id":"0x68B1D87F95878fE05B998F19b66F4baba5De1aed"},"status":"completed","updatedAt":null,"userIdentityRegistered":true,"isZeroGasNetwork":false},"meta":{"txHashes":["0x5c73a1e94b0d268fa37e15c8b02d94f6a1e7835c0b96d2f4e83a17c5d602b9f4"]},"links":{"self":"/v2/system/factories"}}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false}}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false},"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Registers one to ten token factories on the active system. Implementation addresses come from the directory unless you override them. The caller needs factory-create authority. Repeat the same body only with the same wallet verification when the signing wallet requires a challenge.","summary":"Create token factories","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]},"factories":{"type":"array","items":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/AssetFactoryTypeId"},"name":{"type":"string","minLength":1,"maxLength":100},"factoryImplementation":{"$ref":"#/components/schemas/EvmAddress"},"tokenImplementation":{"$ref":"#/components/schemas/EvmAddress"}},"required":["type","name"],"additionalProperties":false},"minItems":1,"maxItems":10}},"required":["factories"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/system/factories/{factoryAddress}":{"get":{"tags":["Systems and factories"],"operationId":"systems.factories.tokenFactoryRead","parameters":[{"name":"factoryAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true}],"responses":{"200":{"description":"The requested token factory, with a `self` link to its canonical URL.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/PlatformTokenFactoryDetail"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0xbDA5747bFD65F08deb54cb465eB87D40e51B197E","name":"Northwind Coffee Bond Factory","typeId":"bond","factoryImplementation":"0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC","instanceImplementation":"0x90F79bf6EB2c4f870365E785982E1f101E93b906"},"links":{"self":"/v2/system/factories/0xbDA5747bFD65F08deb54cb465eB87D40e51B197E"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one token factory by address, including the implementations the indexer recorded. A missing address returns 404. The call is a read and is safe to retry.","summary":"Read a token factory","x-dalp-auth":"session-or-api-key"}},"/api/v2/system/factory-address-availability-checks":{"get":{"tags":["Systems and factories"],"operationId":"systems.factories.tokenFactoryAvailable","parameters":[{"name":"accessControl","in":"query","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":false},{"name":"parameters","in":"query","schema":{"anyOf":[{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":50},"symbol":{"type":"string","minLength":1,"maxLength":24,"pattern":"^[A-Z0-9]+$"},"decimals":{"anyOf":[{"type":"number"},{"type":"string"}]},"factoryAddress":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"type":{"type":"string","enum":["bond","equity","fund","stablecoin","deposit","real-estate","precious-metal"],"description":"Type of financial asset"}},"required":["name","symbol","decimals","type"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":50},"symbol":{"type":"string","minLength":1,"maxLength":24,"pattern":"^[A-Z0-9]+$"},"decimals":{"anyOf":[{"type":"number"},{"type":"string"}]},"factoryAddress":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"type":{"type":"string","enum":["dalp-asset"]},"assetTypeName":{"type":"string","minLength":1,"maxLength":255}},"required":["name","symbol","decimals","type","assetTypeName"],"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true}],"responses":{"200":{"description":"Whether the predicted or supplied access-manager address is free.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/PlatformFactoryAddressAvailability"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"isAvailable":true},"links":{"self":"/v2/system/factory-address-availability-checks"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Reports whether a predicted or supplied access-manager address is still free. Send token metadata as query parameters to predict the address, or send `accessControl` to test a known address. The check does not deploy a contract and is safe to retry.","summary":"Check token-factory address availability","x-dalp-auth":"session-or-api-key"}},"/api/v2/system/factory-address-predictions":{"post":{"tags":["Systems and factories"],"operationId":"systems.factories.tokenFactoryPredictAccessManagerAddress","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The CREATE2 address the factory will use for the token access manager.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/PlatformAccessManagerAddressPrediction"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"predictedAddress":"0xFABB0ac9d68B0B445fB7357272Ff202C5651694a"},"links":{"self":"/v2/system/factory-address-predictions"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the CREATE2 address the factory will use for the token access manager. The same metadata always yields the same address. The address is not reserved until the token is created. The call is safe to retry.","summary":"Predict a token-factory access-manager address","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":50},"symbol":{"type":"string","minLength":1,"maxLength":24,"pattern":"^[A-Z0-9]+$"},"decimals":{"anyOf":[{"type":"number"},{"type":"string"}]},"factoryAddress":{"$ref":"#/components/schemas/EvmAddress"},"type":{"$ref":"#/components/schemas/AssetType"}},"required":["name","symbol","decimals","type"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":50},"symbol":{"type":"string","minLength":1,"maxLength":24,"pattern":"^[A-Z0-9]+$"},"decimals":{"anyOf":[{"type":"number"},{"type":"string"}]},"factoryAddress":{"$ref":"#/components/schemas/EvmAddress"},"type":{"type":"string","enum":["dalp-asset"]},"assetTypeName":{"type":"string","minLength":1,"maxLength":255}},"required":["name","symbol","decimals","type","assetTypeName"],"additionalProperties":false}]}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/system/addon-factories":{"get":{"tags":["Systems and factories"],"operationId":"systems.factories.addonFactoryList","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000},"id":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"name":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"typeId":{"anyOf":[{"type":"string","enum":["push-airdrop","vesting-airdrop","time-bound-airdrop","fixed-yield-schedule","xvp-settlement","trading-venue","token-sale","historical-balances-feature-factory","maturity-redemption-feature-factory","hold-feature-factory","transaction-fee-feature-factory","transaction-fee-accounting-feature-factory","voting-power-feature-factory","external-transaction-fee-feature-factory","fixed-treasury-yield-feature-factory","dividend-yield-feature-factory","interest-yield-feature-factory","aum-fee-feature-factory","conversion-feature-factory","conversion-minter-feature-factory","distribution-waterfall-feature-factory","permit-feature-factory","scalar-feed-aggregator-adapter-factory","issuer-signed-scalar-feed","paymaster-signer","token-governance","token-governance-timelock","price-resolver","document-anchor-registry","access-manager"],"description":"Type of system addon"},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"account":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"kind":{"anyOf":[{"type":"string","enum":["singleton","factory","unknown"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"One page of addon factories for the active system. `meta.total` counts every matching factory. Filter on `typeId`, `account`, and `kind`, and sort by `name` by default.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PlatformAddonFactoryRow"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"0xdD2FD4581271e230360230F9337D5c0430Bf44C0","name":"Northwind XvP Settlement","typeId":"xvp-settlement","deployedInTransaction":"0x1c9a5f80d3b47e6218ca03f95d7be41086c2d97fa5301be8c47d0f2635a9184b","account":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30","kind":"factory","systemAddonImplementation":null,"factoryImplementation":"0x15d34AAf54267DB7D7c367839AAf71A00a2C6A65","instanceImplementation":"0x9965507D1a55bcC2695C58ba16FB37d819B0A4dc"}],"meta":{"total":1},"links":{"self":"/v2/system/addon-factories?sort=name&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/system/addon-factories?sort=name&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/system/addon-factories?sort=name&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of addon factories for the active system. Filter on `typeId`, `account`, and `kind`. The default sort is `name`. The call is a read and is safe to retry.","summary":"List system addon factories","x-dalp-auth":"session-or-api-key"},"post":{"tags":["Systems and factories"],"operationId":"systems.factories.addonFactoryCreate","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The addon-factory registration is accepted. When the transaction settles, the body is the updated system and its transaction hashes. When you ask for asynchronous processing, the body is a status URL to poll and the status is 202.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/PlatformSystemView"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","canResume":false,"chainId":80002,"deployedInTransaction":"0x5c73a1e94b0d268fa37e15c8b02d94f6a1e7835c0b96d2f4e83a17c5d602b9f4","tokenFactoryRegistry":{"id":"0xbDA5747bFD65F08deb54cb465eB87D40e51B197E","version":1,"tokenFactories":[{"id":"0xbDA5747bFD65F08deb54cb465eB87D40e51B197E","name":"Northwind Coffee Bond Factory","typeId":"bond"}]},"systemAddonRegistry":{"id":"0xdD2FD4581271e230360230F9337D5c0430Bf44C0","version":1,"systemAddons":[{"id":"0xdD2FD4581271e230360230F9337D5c0430Bf44C0","name":"Northwind XvP Settlement","typeId":"xvp-settlement","version":1}]},"compliance":null,"complianceModuleRegistry":null,"systemAccessManager":{"id":"0xFABB0ac9d68B0B445fB7357272Ff202C5651694a","accessControl":{"id":"0xFABB0ac9d68B0B445fB7357272Ff202C5651694a","addonModule":[],"addonRegistryModule":[],"admin":[{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30","isContract":false}],"auditor":[],"claimPolicyManager":[],"claimIssuer":[],"complianceManager":[],"custodian":[],"emergency":[],"feedsManager":[],"fundsManager":[],"gasManager":[],"governance":[],"identityManager":[],"identityRegistryModule":[],"organisationIdentityManager":[],"saleAdmin":[],"supplyManagement":[],"systemManager":[{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30","isContract":false}],"systemModule":[],"tokenFactoryModule":[],"tokenFactoryRegistryModule":[],"tokenManager":[{"id":"0x70997970C51812dc3A010C7d01b50e0d17dc79C8","isContract":false}],"trustedIssuersMetaRegistryModule":[],"addonManager":[],"roleAdmins":[]}},"identityRegistryStorage":{"id":"0x1CBd3b2770909D4e10f157cABC84C7264073C9Ec"},"identityRegistry":{"id":"0xFABB0ac9d68B0B445fB7357272Ff202C5651694a","registeredIdentities":[{"identity":{"id":"0x8ba1f109551bD432803012645Ac136ddd64DBA72"},"country":56,"status":"ACTIVE"}]},"trustedIssuersRegistry":{"id":"0xdF3e18d64BC6A983f673Ab319CCaE4f1a57C7097"},"topicSchemeRegistry":{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"},"externalTokenRegistry":{"id":"0x68B1D87F95878fE05B998F19b66F4baba5De1aed"},"status":"completed","updatedAt":null,"userIdentityRegistered":true,"isZeroGasNetwork":false},"meta":{"txHashes":["0x5c73a1e94b0d268fa37e15c8b02d94f6a1e7835c0b96d2f4e83a17c5d602b9f4"]},"links":{"self":"/v2/system/addon-factories"}}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false}}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false},"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Registers one or more addon factories on the active system. Implementation addresses come from the directory unless you override them. The caller needs addon-create authority. Repeat the same body only with the same wallet verification when the signing wallet requires a challenge.","summary":"Create system addon factories","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]},"addons":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["push-airdrop","vesting-airdrop","time-bound-airdrop","fixed-yield-schedule","xvp-settlement","trading-venue","token-sale","historical-balances-feature-factory","maturity-redemption-feature-factory","hold-feature-factory","transaction-fee-feature-factory","transaction-fee-accounting-feature-factory","voting-power-feature-factory","external-transaction-fee-feature-factory","fixed-treasury-yield-feature-factory","dividend-yield-feature-factory","interest-yield-feature-factory","aum-fee-feature-factory","conversion-feature-factory","conversion-minter-feature-factory","distribution-waterfall-feature-factory","permit-feature-factory","scalar-feed-aggregator-adapter-factory","issuer-signed-scalar-feed","paymaster-signer","token-governance","token-governance-timelock","price-resolver","document-anchor-registry","access-manager","airdrops","yield","xvp"]},"name":{"type":"string","minLength":1,"maxLength":50},"implementation":{"$ref":"#/components/schemas/EvmAddress"}},"required":["type","name"],"additionalProperties":false},"minItems":1}},"required":["addons"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/system/addon-factories/{factoryAddress}":{"get":{"tags":["Systems and factories"],"operationId":"systems.factories.addonFactoryRead","parameters":[{"name":"factoryAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true}],"responses":{"200":{"description":"The requested addon factory, with a `self` link to its canonical URL.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/PlatformAddonFactoryDetail"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0xdD2FD4581271e230360230F9337D5c0430Bf44C0","name":"Northwind XvP Settlement","typeId":"xvp-settlement","version":1,"type":"xvp-settlement"},"links":{"self":"/v2/system/addon-factories/0xdD2FD4581271e230360230F9337D5c0430Bf44C0"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one addon factory by address, including its canonical type identifier. A missing address returns 404. The call is a read and is safe to retry.","summary":"Read a system addon factory","x-dalp-auth":"session-or-api-key"}},"/api/v2/system/accounts/roles":{"get":{"tags":["Roles and permissions"],"operationId":"systems.access.accessRolesList","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000}},"allOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"object","properties":{"eq":{"anyOf":[{"type":"string"},{"type":"number"}]},"ne":{"anyOf":[{"type":"string"},{"type":"number"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]}},"additionalProperties":false}]}}]},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"One page of access-manager role assignments for the active system. `meta.total` counts every matching account. Filter on `roles` and `excludeContracts`, and sort by `account` by default.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PlatformSystemRolesRow"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"account":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30","roles":["admin","systemManager"]}],"meta":{"total":1},"links":{"self":"/v2/system/accounts/roles?sort=account&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/system/accounts/roles?sort=account&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/system/accounts/roles?sort=account&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of access-manager role assignments for the active system. Filter on `roles` and `excludeContracts`. The default sort is `account`. The call is a read and is safe to retry.","summary":"List system access-manager roles","x-dalp-auth":"session-or-api-key"}},"/api/v2/system/accounts/{address}/roles":{"get":{"tags":["Roles and permissions"],"operationId":"systems.access.accessRolesRead","parameters":[{"name":"address","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true}],"responses":{"200":{"description":"Roles the access manager records for the requested account.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/PlatformSystemRolesRow"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"account":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30","roles":["admin","systemManager"]},"links":{"self":"/v2/system/accounts/0x2546BcD3c84621e976D8185a91A922aE77ECEc30/roles"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the roles the access manager records for one account. The `address` path is an EVM address. The call is a read and is safe to retry.","summary":"Read system roles for an account","x-dalp-auth":"session-or-api-key"}},"/api/v2/system/role-sets":{"post":{"tags":["Roles and permissions"],"operationId":"systems.access.accessRoleSet","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The role change is accepted. When the change settles, the body lists the wallets and the roles added and removed. When you ask for asynchronous processing, the body is a status URL to poll and the status is 202.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/PlatformSystemRoleSetOutput"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"accounts":["0x70997970C51812dc3A010C7d01b50e0d17dc79C8"],"grant":["tokenManager"],"revoke":[]},"meta":{"txHashes":["0x5c73a1e94b0d268fa37e15c8b02d94f6a1e7835c0b96d2f4e83a17c5d602b9f4"]},"links":{"self":"/v2/system/role-sets"}}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false}}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false},"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY","platform.write.ROLE_BATCH_FAILED"]}},"required":["code"]}],"examples":[{"code":"platform.write.ROLE_BATCH_FAILED","status":422,"message":"A role write failed on chain","data":{"id":"DALP-12366","why":"A role write failed on chain. In a role set no earlier write is undone; in a role batch the calls sent before it stay applied on a signing-wallet executor.","fix":"Read the transaction request by id and the held roles, then send only the changes still missing.","retryable":false,"category":"contract","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE","platform.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Grants and revokes system roles for one participant or one wallet as one change. Name the target by participantId, which covers every wallet of the participant, or by address. The caller needs the admin role for every role in the request; a refused role answers 403 before any transaction. The platform sends one queued write per changed wallet and direction on any executor, every grant before any revoke. When a later write fails after an earlier one was submitted, the earlier ones are not undone: a later write refused on chain answers 422 with its own transaction request, and any other later failure answers 503 PlatformWriteOutcomeUnknown, so read the held roles before another write. Resending the same change plans only what is still missing. Repeating a change that is already true queues no transaction.","summary":"Set system roles","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]},"participantId":{"type":"string","minLength":1,"description":"Participant whose wallets receive or lose the roles.","examples":["prt_northwind_ops"]},"address":{"$ref":"#/components/schemas/EvmAddress"},"grant":{"type":"array","items":{"$ref":"#/components/schemas/SystemAccessControlRole"},"description":"System roles to add to the target.","examples":[["tokenManager"]]},"revoke":{"type":"array","items":{"$ref":"#/components/schemas/SystemAccessControlRole"},"description":"System roles to remove from the target.","examples":[["tokenManager"]]}},"required":["grant","revoke"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/system/role-set-batches":{"post":{"tags":["Roles and permissions"],"operationId":"systems.access.accessRoleSetBatch","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The batch is accepted. When it settles, the body lists the participants, their wallets and the roles added and removed. When you ask for asynchronous processing, the body is a status URL to poll and the status is 202.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/PlatformSystemRoleSetBatchOutput"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"participants":[{"participantId":"c0b8d4b0-3c5a-4b62-9a2e-2f0f6f4a5f10","accounts":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]}],"grant":["auditor"],"revoke":[]},"meta":{"txHashes":["0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants"}}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false}}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false},"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY","platform.write.ROLE_BATCH_FAILED"]}},"required":["code"]}],"examples":[{"code":"platform.write.ROLE_BATCH_FAILED","status":422,"message":"A role write failed on chain","data":{"id":"DALP-12366","why":"A role write failed on chain. In a role set no earlier write is undone; in a role batch the calls sent before it stay applied on a signing-wallet executor.","fix":"Read the transaction request by id and the held roles, then send only the changes still missing.","retryable":false,"category":"contract","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE","platform.write.OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Grants and revokes the same system roles for up to 50 participants as one change, behind one wallet verification. Every wallet of each participant is covered, and a participant with no wallet in the organization refuses the whole batch. The caller needs the admin role. The platform reads each wallet's current roles and sends one access-manager call per changed role, naming only the wallets that change, as one queued request of at most 33 calls: grants first, then revokes, with a revoke of the caller's own wallet or of the admin role last. A smart-account executor applies every call in one user operation, so the batch lands whole or not at all; an EOA executor sends the calls in order. A revoke that would leave the system with no administrator answers 409 before any transaction. Repeating a batch that is already true queues no transaction.","summary":"Set system roles for several participants","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlatformSystemRoleSetBatchInput"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/system/participants/roles":{"get":{"tags":["Roles and permissions"],"operationId":"systems.access.accessParticipantRoles","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000}},"allOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"object","properties":{"eq":{"anyOf":[{"type":"string"},{"type":"number"}]},"ne":{"anyOf":[{"type":"string"},{"type":"number"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]}},"additionalProperties":false}]}}]},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"One page of participants and the system roles on their wallets. `meta.total` counts every matching participant. Filter on `drift` and on each role column, and sort by `displayName` by default.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PlatformParticipantRolesRow"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"participantId":"prt_northwind_ops","displayName":"Northwind Coffee Operations","signingAddress":"0x70997970C51812dc3A010C7d01b50e0d17dc79C8","operationsAddress":"0x70997970C51812dc3A010C7d01b50e0d17dc79C8","isContract":false,"eoaRoles":["tokenManager"],"smartWalletRoles":["tokenManager"],"missingRoles":[],"drift":false}],"meta":{"total":1},"links":{"self":"/v2/system/participants/roles?sort=displayName&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/system/participants/roles?sort=displayName&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/system/participants/roles?sort=displayName&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of participants and the system roles on their signing wallet and operations wallet. `drift` is true when those wallets do not hold the same roles. Filter on `drift` and on each role column. The default sort is `displayName`. The call is a read and is safe to retry.","summary":"List participant system roles","x-dalp-auth":"session-or-api-key"}},"/api/v2/system/asset-role-grants":{"get":{"tags":["Roles and permissions"],"operationId":"systems.access.accessAssetRoleGrants","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000}},"allOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"object","properties":{"eq":{"anyOf":[{"type":"string"},{"type":"number"}]},"ne":{"anyOf":[{"type":"string"},{"type":"number"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]}},"additionalProperties":false}]}}]},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"One page of asset role grants for the active system: per wallet and role, how many of the system's assets grant it. `meta.total` counts every matching grant. Filter on `account` and `role`.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PlatformAssetRoleGrantRow"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"account":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30","role":"supplyManagement","assetCount":3}],"meta":{"total":1},"links":{"self":"/v2/system/asset-role-grants?sort=account&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/system/asset-role-grants?sort=account&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/system/asset-role-grants?sort=account&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of asset roles the system's assets grant, per wallet and role, with how many assets grant each. Each asset has its own access manager; this read never includes the system's access manager. Filter on `account` and `role`. The default sort is `account`. The call is a read and is safe to retry.","summary":"List asset role grants","x-dalp-auth":"session-or-api-key"}},"/api/v2/system/accounts/{accountAddress}/activities":{"get":{"tags":["Activity and statistics"],"operationId":"systems.access.activityList","parameters":[{"name":"accountAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000}},"allOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"object","properties":{"eq":{"anyOf":[{"type":"string"},{"type":"number"}]},"ne":{"anyOf":[{"type":"string"},{"type":"number"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]}},"additionalProperties":false}]}}]},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"One page of indexed events that name the account as sender, emitter, or an involved address. `meta.total` counts every matching event.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PlatformActivityEventRow"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"family":"evm","id":"80002-18429311-12","eventName":"Transfer","txIndex":"12","blockNumber":"18429311","blockTimestamp":"2026-03-11T16:02:08.000Z","transactionHash":"0x4f3d1a8c0b6e29d5741ac0f8b2e7d6390c5148aa9be3f207d4c8615ae0937b2c","emitter":{"id":"0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC"},"sender":{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"},"metaTxSigner":null,"displaySender":{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"},"relayerKind":null,"relayer":null,"userOpHash":null,"involved":[{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"},{"id":"0x70997970C51812dc3A010C7d01b50e0d17dc79C8"},{"id":"0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC"}],"values":[{"id":"from","name":"from","value":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"},{"id":"to","name":"to","value":"0x70997970C51812dc3A010C7d01b50e0d17dc79C8"},{"id":"value","name":"value","value":"2500000000"}]}],"meta":{"total":1},"links":{"self":"/v2/system/accounts/0x2546BcD3c84621e976D8185a91A922aE77ECEc30/activities?sort=-blockTimestamp&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/system/accounts/0x2546BcD3c84621e976D8185a91A922aE77ECEc30/activities?sort=-blockTimestamp&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/system/accounts/0x2546BcD3c84621e976D8185a91A922aE77ECEc30/activities?sort=-blockTimestamp&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of indexed events that name the account as sender, emitter, or an involved address. Filter on `eventName` and page with the shared collection parameters. The call is a read and is safe to retry.","summary":"List account activity","x-dalp-auth":"session-or-api-key"}},"/api/v2/system/accounts/{accountAddress}/activity-metrics":{"get":{"tags":["Activity and statistics"],"operationId":"systems.access.activityStats","parameters":[{"name":"accountAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"name":"range","in":"query","schema":{"type":"object","properties":{"interval":{"type":"string","enum":["hour","day"]},"from":{"anyOf":[{"type":"string","description":"Epoch milliseconds as a digit string, or a readable datetime.","format":"timestamp"},{"type":"integer","minimum":0}]},"to":{"anyOf":[{"type":"string","description":"Epoch milliseconds as a digit string, or a readable datetime.","format":"timestamp"},{"type":"integer","minimum":0}]},"isPreset":{"type":"boolean"}},"required":["interval","from","to","isPreset"],"additionalProperties":false},"required":true,"style":"deepObject","explode":true}],"responses":{"200":{"description":"Event counts and a time series for the requested account and range.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/PlatformActivityHistogram"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"timeSeries":[{"timestamp":"2026-02-11T00:00:00.000Z","count":4},{"timestamp":"2026-02-25T00:00:00.000Z","count":9},{"timestamp":"2026-03-11T23:59:59.000Z","count":3}],"count":16},"links":{"self":"/v2/system/accounts/0x2546BcD3c84621e976D8185a91A922aE77ECEc30/activity-metrics"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns event counts for the account over the requested range, plus a time series for charting. The range is required. The call is a read of indexed events and is safe to retry.","summary":"Read account activity statistics","x-dalp-auth":"session-or-api-key"}},"/api/v2/system/stats/{metric}":{"get":{"tags":["Activity and statistics"],"operationId":"systems.stats.statsRead","parameters":[{"name":"metric","in":"path","schema":{"type":"string","enum":["assets","value","country-asset-count","country-identity-count","identity-count","claims","participant-claims","trusted-issuers","portfolio-breakdown","offerings-summary","offerings-investor-country","governance-summary","governance-voter-country","venue-summary","venue-country","asset-activity","asset-lifecycle","claims-history","participant-claims-history","identity-history","trusted-issuers-history","portfolio-value-history","system-value-history","offerings-history","governance-history","venue-activity"]},"required":true},{"name":"preset","in":"query","schema":{"type":"string","enum":["allTime","ytd","trailing12Months","trailing6Months","trailing3Months","trailing1Month","trailing7Days","trailing24Hours"]},"required":false},{"name":"interval","in":"query","schema":{"type":"string","enum":["hour","day"]},"required":false},{"name":"from","in":"query","schema":{"anyOf":[{"type":"string","description":"Epoch milliseconds as a digit string, or a readable datetime.","format":"timestamp"},{"type":"integer","minimum":0}]},"required":false},{"name":"to","in":"query","schema":{"anyOf":[{"type":"string","description":"Epoch milliseconds as a digit string, or a readable datetime.","format":"timestamp"},{"type":"integer","minimum":0}]},"required":false}],"responses":{"200":{"description":"The requested statistic for the active system, wrapped in a single-resource envelope.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"anyOf":[{"type":"object","properties":{"metric":{"type":"string","enum":["assets"]},"totalAssets":{"type":"integer","minimum":0},"totalValue":{"$ref":"#/components/schemas/BigDecimal"},"assetBreakdown":{"type":"object","additionalProperties":{"type":"integer","minimum":0}},"valueBreakdown":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/BigDecimal"}},"valueBreakdownByClass":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/BigDecimal"}},"tokensCreatedCount":{"type":"integer","minimum":0},"tokensLaunchedCount":{"type":"integer","minimum":0},"pendingLaunchesCount":{"type":"integer","minimum":0},"conversionReliable":{"type":"boolean"}},"required":["metric","totalAssets","totalValue","assetBreakdown","valueBreakdown","valueBreakdownByClass","tokensCreatedCount","tokensLaunchedCount","pendingLaunchesCount","conversionReliable"],"additionalProperties":false},{"type":"object","properties":{"metric":{"type":"string","enum":["value"]},"totalValue":{"$ref":"#/components/schemas/BigDecimal"},"conversionReliable":{"type":"boolean"}},"required":["metric","totalValue","conversionReliable"],"additionalProperties":false},{"type":"object","properties":{"metric":{"type":"string","enum":["country-asset-count"]},"totalsByCountry":{"type":"object","additionalProperties":{"type":"integer","minimum":0}},"totalCountries":{"type":"integer","minimum":0},"totalAssets":{"type":"integer","minimum":0}},"required":["metric","totalsByCountry","totalCountries","totalAssets"],"additionalProperties":false},{"type":"object","properties":{"metric":{"type":"string","enum":["country-identity-count"]},"countries":{"type":"array","items":{"type":"object","properties":{"countryCode":{"type":"integer","minimum":0},"identityCount":{"type":"integer","minimum":0}},"required":["countryCode","identityCount"],"additionalProperties":false}},"totalCountries":{"type":"integer","minimum":0},"totalIdentities":{"type":"integer","minimum":0}},"required":["metric","countries","totalCountries","totalIdentities"],"additionalProperties":false},{"type":"object","properties":{"metric":{"type":"string","enum":["identity-count"]},"userIdentitiesCreatedCount":{"type":"integer","minimum":0},"activeUserIdentitiesCount":{"type":"integer","minimum":0},"pendingRegistrationsCount":{"type":"integer","minimum":0}},"required":["metric","userIdentitiesCreatedCount","activeUserIdentitiesCount","pendingRegistrationsCount"],"additionalProperties":false},{"type":"object","properties":{"metric":{"type":"string","enum":["claims"]},"totalIssuedClaims":{"type":"integer","minimum":0},"totalActiveClaims":{"type":"integer","minimum":0},"totalRemovedClaims":{"type":"integer","minimum":0},"totalRevokedClaims":{"type":"integer","minimum":0}},"required":["metric","totalIssuedClaims","totalActiveClaims","totalRemovedClaims","totalRevokedClaims"],"additionalProperties":false},{"type":"object","properties":{"metric":{"type":"string","enum":["participant-claims"]},"totalIssuedClaims":{"type":"integer","minimum":0},"totalActiveClaims":{"type":"integer","minimum":0},"totalRemovedClaims":{"type":"integer","minimum":0},"totalRevokedClaims":{"type":"integer","minimum":0},"claimStates":{"type":"object","properties":{"active":{"type":"integer","minimum":0},"revoked":{"type":"integer","minimum":0},"removed":{"type":"integer","minimum":0}},"required":["active","revoked","removed"],"additionalProperties":false},"topics":{"type":"array","items":{"type":"object","properties":{"topicId":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"activeClaims":{"type":"integer","minimum":0}},"required":["topicId","name","activeClaims"],"additionalProperties":false}},"totalTopics":{"type":"integer","minimum":0},"topicsWithoutActiveClaims":{"type":"integer","minimum":0}},"required":["metric","totalIssuedClaims","totalActiveClaims","totalRemovedClaims","totalRevokedClaims","claimStates","topics","totalTopics","topicsWithoutActiveClaims"],"additionalProperties":false},{"type":"object","properties":{"metric":{"type":"string","enum":["trusted-issuers"]},"totalAddedTrustedIssuers":{"type":"integer","minimum":0},"totalActiveTrustedIssuers":{"type":"integer","minimum":0},"totalRemovedTrustedIssuers":{"type":"integer","minimum":0}},"required":["metric","totalAddedTrustedIssuers","totalActiveTrustedIssuers","totalRemovedTrustedIssuers"],"additionalProperties":false},{"type":"object","properties":{"metric":{"type":"string","enum":["portfolio-breakdown"]},"totalValue":{"$ref":"#/components/schemas/BigDecimal"},"totalAssetTypes":{"type":"integer","minimum":0},"totalAssetsHeld":{"type":"integer","minimum":0},"typeBreakdown":{"type":"array","items":{"type":"object","properties":{"assetType":{"type":"string","minLength":1},"totalValue":{"$ref":"#/components/schemas/BigDecimal"},"tokenBalancesCount":{"type":"integer","minimum":0},"percentage":{"type":"number","minimum":0,"maximum":100}},"required":["assetType","totalValue","tokenBalancesCount","percentage"],"additionalProperties":false}},"valueBreakdown":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/BigDecimal"}},"holdingsBreakdown":{"type":"object","additionalProperties":{"type":"integer","minimum":0}},"valueBreakdownByClass":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/BigDecimal"}},"holdingsBreakdownByClass":{"type":"object","additionalProperties":{"type":"integer","minimum":0}},"assetClassNames":{"type":"object","additionalProperties":{"type":"string"}},"conversionReliable":{"type":"boolean"},"dayChange":{"anyOf":[{"type":"object","properties":{"absoluteChange":{"$ref":"#/components/schemas/BigDecimal"},"percentChange":{"anyOf":[{"type":"number"},{"type":"null"}]},"windowStart":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["absoluteChange","percentChange","windowStart"],"additionalProperties":false},{"type":"null"}]},"byCountry":{"type":"array","items":{"type":"object","properties":{"countryCode":{"type":"integer","minimum":0},"valueInBaseCurrency":{"$ref":"#/components/schemas/BigDecimal"},"assetCount":{"type":"integer","minimum":0}},"required":["countryCode","valueInBaseCurrency","assetCount"],"additionalProperties":false}}},"required":["metric","totalValue","totalAssetTypes","totalAssetsHeld","typeBreakdown","valueBreakdown","holdingsBreakdown","valueBreakdownByClass","holdingsBreakdownByClass","assetClassNames","conversionReliable","dayChange"],"additionalProperties":false},{"type":"object","properties":{"metric":{"type":"string","enum":["offerings-summary"]},"offerings":{"type":"array","items":{"type":"object","properties":{"saleAddress":{"$ref":"#/components/schemas/EvmAddress"},"softCapReached":{"type":"boolean"},"softCapShare":{"anyOf":[{"type":"number","minimum":0,"maximum":1},{"type":"null"}]}},"required":["saleAddress","softCapReached","softCapShare"],"additionalProperties":false}},"raised":{"type":"array","items":{"type":"object","properties":{"currencyAddress":{"$ref":"#/components/schemas/EvmAddress"},"symbol":{"anyOf":[{"type":"string"},{"type":"null"}]},"amount":{"$ref":"#/components/schemas/BigDecimal"}},"required":["currencyAddress","symbol","amount"],"additionalProperties":false}},"totalInvestors":{"type":"integer","minimum":0},"totalOfferings":{"type":"integer","minimum":0},"softCapReachedCount":{"type":"integer","minimum":0}},"required":["metric","offerings","raised","totalInvestors","totalOfferings","softCapReachedCount"],"additionalProperties":false},{"type":"object","properties":{"metric":{"type":"string","enum":["offerings-investor-country"]},"countries":{"type":"array","items":{"type":"object","properties":{"countryCode":{"type":"integer","minimum":0},"investorCount":{"type":"integer","minimum":0}},"required":["countryCode","investorCount"],"additionalProperties":false}},"totalCountries":{"type":"integer","minimum":0},"totalInvestors":{"type":"integer","minimum":0},"investorsWithoutCountry":{"type":"integer","minimum":0}},"required":["metric","countries","totalCountries","totalInvestors","investorsWithoutCountry"],"additionalProperties":false},{"type":"object","properties":{"metric":{"type":"string","enum":["governance-summary"]},"proposals":{"type":"array","items":{"type":"object","properties":{"governorAddress":{"$ref":"#/components/schemas/EvmAddress"},"proposalId":{"type":"string","minLength":1,"maxLength":78,"pattern":"^\\d+$"},"eligibleUnits":{"$ref":"#/components/schemas/BigDecimal"},"castUnits":{"$ref":"#/components/schemas/BigDecimal"},"quorumUnits":{"anyOf":[{"$ref":"#/components/schemas/BigDecimal"},{"type":"null"}]}},"required":["governorAddress","proposalId","eligibleUnits","castUnits","quorumUnits"],"additionalProperties":false}},"averageTurnout":{"anyOf":[{"type":"number","minimum":0,"maximum":1},{"type":"null"}]}},"required":["metric","proposals","averageTurnout"],"additionalProperties":false},{"type":"object","properties":{"metric":{"type":"string","enum":["governance-voter-country"]},"countries":{"type":"array","items":{"type":"object","properties":{"countryCode":{"type":"integer","minimum":0},"voterCount":{"type":"integer","minimum":0}},"required":["countryCode","voterCount"],"additionalProperties":false}},"totalCountries":{"type":"integer","minimum":0},"totalVoters":{"type":"integer","minimum":0},"votersWithoutCountry":{"type":"integer","minimum":0}},"required":["metric","countries","totalCountries","totalVoters","votersWithoutCountry"],"additionalProperties":false},{"type":"object","properties":{"metric":{"type":"string","enum":["venue-summary"]},"markets":{"type":"array","items":{"type":"object","properties":{"marketId":{"$ref":"#/components/schemas/MarketId"},"venueAddress":{"$ref":"#/components/schemas/EvmAddress"},"trades24h":{"type":"integer","minimum":0},"lastTradeAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]}},"required":["marketId","venueAddress","trades24h","lastTradeAt"],"additionalProperties":false}},"trades24h":{"type":"integer","minimum":0},"venues":{"type":"integer","minimum":0}},"required":["metric","markets","trades24h","venues"],"additionalProperties":false},{"type":"object","properties":{"metric":{"type":"string","enum":["venue-country"]},"countries":{"type":"array","items":{"type":"object","properties":{"countryCode":{"type":"integer","minimum":0},"venueCount":{"type":"integer","minimum":0}},"required":["countryCode","venueCount"],"additionalProperties":false}},"totalCountries":{"type":"integer","minimum":0},"totalVenues":{"type":"integer","minimum":0},"venuesWithoutCountry":{"type":"integer","minimum":0}},"required":["metric","countries","totalCountries","totalVenues","venuesWithoutCountry"],"additionalProperties":false},{"type":"object","properties":{"metric":{"type":"string","enum":["asset-activity"]},"range":{"$ref":"#/components/schemas/StatsResolvedRange_2"},"data":{"type":"array","items":{"type":"object","properties":{"timestamp":{"$ref":"#/components/schemas/TimestampEncoded"},"transferEventsCount":{"type":"integer","minimum":0},"mintEventsCount":{"type":"integer","minimum":0},"burnEventsCount":{"type":"integer","minimum":0}},"required":["timestamp","transferEventsCount","mintEventsCount","burnEventsCount"],"additionalProperties":false}}},"required":["metric","range","data"],"additionalProperties":false},{"type":"object","properties":{"metric":{"type":"string","enum":["asset-lifecycle"]},"range":{"$ref":"#/components/schemas/StatsResolvedRange_2"},"data":{"type":"array","items":{"type":"object","properties":{"timestamp":{"$ref":"#/components/schemas/TimestampEncoded"},"assetsCreated":{"type":"integer","minimum":0},"assetsLaunched":{"type":"integer","minimum":0}},"required":["timestamp","assetsCreated","assetsLaunched"],"additionalProperties":false}}},"required":["metric","range","data"],"additionalProperties":false},{"type":"object","properties":{"metric":{"type":"string","enum":["claims-history"]},"range":{"$ref":"#/components/schemas/StatsResolvedRange_2"},"data":{"type":"array","items":{"type":"object","properties":{"timestamp":{"$ref":"#/components/schemas/TimestampEncoded"},"totalIssuedClaims":{"type":"integer","minimum":0},"totalActiveClaims":{"type":"integer","minimum":0},"totalRemovedClaims":{"type":"integer","minimum":0},"totalRevokedClaims":{"type":"integer","minimum":0}},"required":["timestamp","totalIssuedClaims","totalActiveClaims","totalRemovedClaims","totalRevokedClaims"],"additionalProperties":false}}},"required":["metric","range","data"],"additionalProperties":false},{"type":"object","properties":{"metric":{"type":"string","enum":["participant-claims-history"]},"range":{"$ref":"#/components/schemas/StatsResolvedRange_2"},"data":{"type":"array","items":{"type":"object","properties":{"timestamp":{"$ref":"#/components/schemas/TimestampEncoded"},"totalIssuedClaims":{"type":"integer","minimum":0},"totalActiveClaims":{"type":"integer","minimum":0},"totalRemovedClaims":{"type":"integer","minimum":0},"totalRevokedClaims":{"type":"integer","minimum":0}},"required":["timestamp","totalIssuedClaims","totalActiveClaims","totalRemovedClaims","totalRevokedClaims"],"additionalProperties":false}}},"required":["metric","range","data"],"additionalProperties":false},{"type":"object","properties":{"metric":{"type":"string","enum":["identity-history"]},"range":{"$ref":"#/components/schemas/StatsResolvedRange_2"},"identityStats":{"type":"array","items":{"type":"object","properties":{"timestamp":{"$ref":"#/components/schemas/TimestampEncoded"},"activeUserIdentitiesCount":{"type":"integer","minimum":0}},"required":["timestamp","activeUserIdentitiesCount"],"additionalProperties":false}}},"required":["metric","range","identityStats"],"additionalProperties":false},{"type":"object","properties":{"metric":{"type":"string","enum":["trusted-issuers-history"]},"range":{"$ref":"#/components/schemas/StatsResolvedRange_2"},"data":{"type":"array","items":{"type":"object","properties":{"timestamp":{"$ref":"#/components/schemas/TimestampEncoded"},"totalAddedTrustedIssuers":{"type":"integer","minimum":0},"totalActiveTrustedIssuers":{"type":"integer","minimum":0},"totalRemovedTrustedIssuers":{"type":"integer","minimum":0}},"required":["timestamp","totalAddedTrustedIssuers","totalActiveTrustedIssuers","totalRemovedTrustedIssuers"],"additionalProperties":false}}},"required":["metric","range","data"],"additionalProperties":false},{"type":"object","properties":{"metric":{"type":"string","enum":["portfolio-value-history"]},"range":{"$ref":"#/components/schemas/StatsResolvedRange_2"},"data":{"type":"array","items":{"type":"object","properties":{"timestamp":{"$ref":"#/components/schemas/TimestampEncoded"},"totalValueInBaseCurrency":{"type":"number"}},"required":["timestamp","totalValueInBaseCurrency"],"additionalProperties":false}},"conversionReliable":{"type":"boolean"}},"required":["metric","range","data","conversionReliable"],"additionalProperties":false},{"type":"object","properties":{"metric":{"type":"string","enum":["system-value-history"]},"range":{"$ref":"#/components/schemas/StatsResolvedRange_2"},"data":{"type":"array","items":{"type":"object","properties":{"timestamp":{"$ref":"#/components/schemas/TimestampEncoded"},"totalValueInBaseCurrency":{"type":"number"}},"required":["timestamp","totalValueInBaseCurrency"],"additionalProperties":false}},"conversionReliable":{"type":"boolean"}},"required":["metric","range","data","conversionReliable"],"additionalProperties":false},{"type":"object","properties":{"metric":{"type":"string","enum":["offerings-history"]},"range":{"$ref":"#/components/schemas/StatsResolvedRange_2"},"data":{"type":"array","items":{"type":"object","properties":{"timestamp":{"$ref":"#/components/schemas/TimestampEncoded"},"purchases":{"type":"integer","minimum":0}},"required":["timestamp","purchases"],"additionalProperties":false}}},"required":["metric","range","data"],"additionalProperties":false},{"type":"object","properties":{"metric":{"type":"string","enum":["governance-history"]},"range":{"$ref":"#/components/schemas/StatsResolvedRange_2"},"data":{"type":"array","items":{"type":"object","properties":{"timestamp":{"$ref":"#/components/schemas/TimestampEncoded"},"ballots":{"type":"integer","minimum":0}},"required":["timestamp","ballots"],"additionalProperties":false}}},"required":["metric","range","data"],"additionalProperties":false},{"type":"object","properties":{"metric":{"type":"string","enum":["venue-activity"]},"range":{"$ref":"#/components/schemas/StatsResolvedRange_2"},"data":{"type":"array","items":{"type":"object","properties":{"timestamp":{"$ref":"#/components/schemas/TimestampEncoded"},"trades":{"type":"integer","minimum":0}},"required":["timestamp","trades"],"additionalProperties":false}}},"required":["metric","range","data"],"additionalProperties":false}]},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"metric":"assets","totalAssets":12,"assetBreakdown":{"bond":4,"equity":3,"deposit":5},"totalValue":"2450000.50","valueBreakdown":{"bond":"1188250.25","equity":"612000.00","deposit":"649750.25"},"valueBreakdownByClass":{"fixed-income":"1838000.50","equity":"612000.00"},"tokensCreatedCount":12,"tokensLaunchedCount":10,"pendingLaunchesCount":2,"conversionReliable":true},"links":{"self":"/v2/system/stats/assets"}}},"example-2":{"value":{"data":{"metric":"value","totalValue":"2450000.50","conversionReliable":true},"links":{"self":"/v2/system/stats/value"}}},"example-3":{"value":{"data":{"metric":"country-asset-count","totalsByCountry":{"56":7,"840":5},"totalCountries":2,"totalAssets":12},"links":{"self":"/v2/system/stats/country-asset-count"}}},"example-4":{"value":{"data":{"metric":"identity-count","userIdentitiesCreatedCount":51,"activeUserIdentitiesCount":48,"pendingRegistrationsCount":3},"links":{"self":"/v2/system/stats/identity-count"}}},"example-5":{"value":{"data":{"metric":"claims","totalIssuedClaims":120,"totalActiveClaims":98,"totalRemovedClaims":14,"totalRevokedClaims":8},"links":{"self":"/v2/system/stats/claims"}}},"example-6":{"value":{"data":{"metric":"trusted-issuers","totalAddedTrustedIssuers":6,"totalActiveTrustedIssuers":5,"totalRemovedTrustedIssuers":1},"links":{"self":"/v2/system/stats/trusted-issuers"}}},"example-7":{"value":{"data":{"metric":"portfolio-breakdown","totalValue":"2450000.50","totalAssetTypes":3,"totalAssetsHeld":12,"typeBreakdown":[{"assetType":"bond","totalValue":"1188250.25","tokenBalancesCount":4,"percentage":48.5},{"assetType":"equity","totalValue":"612000.00","tokenBalancesCount":3,"percentage":25},{"assetType":"deposit","totalValue":"649750.25","tokenBalancesCount":5,"percentage":26.5}],"valueBreakdown":{"bond":"1188250.25","equity":"612000.00","deposit":"649750.25"},"holdingsBreakdown":{"bond":4,"equity":3,"deposit":5},"valueBreakdownByClass":{"fixed-income":"1838000.50","equity":"612000.00"},"holdingsBreakdownByClass":{"fixed-income":9,"equity":3},"assetClassNames":{"fixed-income":"Fixed Income","equity":"Equity"},"conversionReliable":true,"dayChange":{"absoluteChange":"18450.25","percentChange":0.76,"windowStart":"2026-03-10T16:02:08.000Z"},"byCountry":[{"countryCode":56,"valueInBaseCurrency":"1680000.00","assetCount":7},{"countryCode":840,"valueInBaseCurrency":"770000.50","assetCount":5}]},"links":{"self":"/v2/system/stats/portfolio-breakdown"}}},"example-8":{"value":{"data":{"metric":"asset-activity","range":{"interval":"day","from":"2026-02-11T00:00:00.000Z","to":"2026-03-11T23:59:59.000Z","isPreset":true},"data":[{"timestamp":"2026-02-11T00:00:00.000Z","transferEventsCount":18,"mintEventsCount":2,"burnEventsCount":0},{"timestamp":"2026-02-25T00:00:00.000Z","transferEventsCount":24,"mintEventsCount":1,"burnEventsCount":1},{"timestamp":"2026-03-11T23:59:59.000Z","transferEventsCount":11,"mintEventsCount":0,"burnEventsCount":0}]},"links":{"self":"/v2/system/stats/asset-activity?preset=trailing1Month"}}},"example-9":{"value":{"data":{"metric":"asset-lifecycle","range":{"interval":"day","from":"2026-02-11T00:00:00.000Z","to":"2026-03-11T23:59:59.000Z","isPreset":true},"data":[{"timestamp":"2026-02-11T00:00:00.000Z","assetsCreated":1,"assetsLaunched":1},{"timestamp":"2026-02-25T00:00:00.000Z","assetsCreated":2,"assetsLaunched":1},{"timestamp":"2026-03-11T23:59:59.000Z","assetsCreated":0,"assetsLaunched":1}]},"links":{"self":"/v2/system/stats/asset-lifecycle?preset=trailing1Month"}}},"example-10":{"value":{"data":{"metric":"claims-history","range":{"interval":"day","from":"2026-02-11T00:00:00.000Z","to":"2026-03-11T23:59:59.000Z","isPreset":true},"data":[{"timestamp":"2026-02-11T00:00:00.000Z","totalIssuedClaims":96,"totalActiveClaims":82,"totalRemovedClaims":10,"totalRevokedClaims":4},{"timestamp":"2026-03-11T23:59:59.000Z","totalIssuedClaims":120,"totalActiveClaims":98,"totalRemovedClaims":14,"totalRevokedClaims":8}]},"links":{"self":"/v2/system/stats/claims-history?preset=trailing1Month"}}},"example-11":{"value":{"data":{"metric":"identity-history","range":{"interval":"day","from":"2026-02-11T00:00:00.000Z","to":"2026-03-11T23:59:59.000Z","isPreset":true},"identityStats":[{"timestamp":"2026-02-11T00:00:00.000Z","activeUserIdentitiesCount":41},{"timestamp":"2026-02-25T00:00:00.000Z","activeUserIdentitiesCount":45},{"timestamp":"2026-03-11T23:59:59.000Z","activeUserIdentitiesCount":48}]},"links":{"self":"/v2/system/stats/identity-history?preset=trailing1Month"}}},"example-12":{"value":{"data":{"metric":"trusted-issuers-history","range":{"interval":"day","from":"2026-02-11T00:00:00.000Z","to":"2026-03-11T23:59:59.000Z","isPreset":true},"data":[{"timestamp":"2026-02-11T00:00:00.000Z","totalAddedTrustedIssuers":5,"totalActiveTrustedIssuers":5,"totalRemovedTrustedIssuers":0},{"timestamp":"2026-03-11T23:59:59.000Z","totalAddedTrustedIssuers":6,"totalActiveTrustedIssuers":5,"totalRemovedTrustedIssuers":1}]},"links":{"self":"/v2/system/stats/trusted-issuers-history?preset=trailing1Month"}}},"example-13":{"value":{"data":{"metric":"portfolio-value-history","range":{"interval":"day","from":"2026-02-11T00:00:00.000Z","to":"2026-03-11T23:59:59.000Z","isPreset":true},"data":[{"timestamp":"2026-02-11T00:00:00.000Z","totalValueInBaseCurrency":2210000},{"timestamp":"2026-02-25T00:00:00.000Z","totalValueInBaseCurrency":2365400},{"timestamp":"2026-03-11T23:59:59.000Z","totalValueInBaseCurrency":2450000.5}],"conversionReliable":true},"links":{"self":"/v2/system/stats/portfolio-value-history?preset=trailing1Month"}}},"example-14":{"value":{"data":{"metric":"system-value-history","range":{"interval":"day","from":"2026-02-11T00:00:00.000Z","to":"2026-03-11T23:59:59.000Z","isPreset":true},"data":[{"timestamp":"2026-02-11T00:00:00.000Z","totalValueInBaseCurrency":2210000},{"timestamp":"2026-02-25T00:00:00.000Z","totalValueInBaseCurrency":2365400},{"timestamp":"2026-03-11T23:59:59.000Z","totalValueInBaseCurrency":2450000.5}],"conversionReliable":true},"links":{"self":"/v2/system/stats/system-value-history?preset=trailing1Month"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one statistic for the active system, named by `metric`. A snapshot metric answers its current value and refuses a window with 400. A series metric needs a window: send `preset`, or `interval`, `from`, and `to`. Sending neither, or both, answers 400. Statistics are indexed snapshots. A just-settled transaction appears only after the indexer catches up. The call is a read and is safe to retry.","summary":"Read a system statistic","x-dalp-auth":"session-or-api-key"}},"/api/v2/admin/calendars":{"get":{"tags":["Platform administration"],"operationId":"platform.calendars.adminCalendarsList","parameters":[],"responses":{"200":{"description":"The calendars the caller may read, each with its own closures.","content":{"application/json":{"schema":{"type":"object","properties":{"calendars":{"type":"array","items":{"$ref":"#/components/schemas/PlatformHolidayCalendar"}}},"required":["calendars"],"additionalProperties":false},"examples":{"example-1":{"value":{"calendars":[{"calendarId":"org-acme:be-public-holidays","jurisdiction":"BE","name":"Belgium public holidays","organizationId":"org-acme","isSystem":false,"parentCalendarId":"be-public-holidays","closures":[{"observedOn":"2026-12-25","kind":"public","knownFrom":"2026-01-01T00:00:00.000Z","source":"platform-seed","calendarId":"be-public-holidays"}]}]}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns every base holiday calendar the platform ships, each with the closures of its whole parent chain. Only a platform administrator can call this. The call is a stored read and is safe to retry.","summary":"List the platform base calendars","x-dalp-auth":"session-or-api-key"}},"/api/v2/admin/calendars/{calendarId}":{"put":{"tags":["Platform administration"],"operationId":"platform.calendars.adminCalendarsUpsert","parameters":[{"name":"calendarId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"One holiday calendar with the closures its chain carries.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlatformHolidayCalendar"},"examples":{"example-1":{"value":{"calendarId":"org-acme:be-public-holidays","jurisdiction":"BE","name":"Belgium public holidays","organizationId":"org-acme","isSystem":false,"parentCalendarId":"be-public-holidays","closures":[{"observedOn":"2026-12-25","kind":"public","knownFrom":"2026-01-01T00:00:00.000Z","source":"platform-seed","calendarId":"be-public-holidays"}]}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Stores one base calendar under the platform scope and returns it with its whole chain of closures. Only a platform administrator can call this. A parent that would make the calendar its own ancestor returns 409. There is no delete: a calendar an organization or a venue already names must stay readable. Repeating an identical body stores the same row again.","summary":"Create or replace one base calendar","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"jurisdiction":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"parentCalendarId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]}},"required":["jurisdiction","name","parentCalendarId"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/admin/calendars/{calendarId}/closures":{"post":{"tags":["Platform administration"],"operationId":"platform.calendars.adminCalendarsAddClosure","parameters":[{"name":"calendarId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"One holiday calendar with the closures its chain carries.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlatformHolidayCalendar"},"examples":{"example-1":{"value":{"calendarId":"org-acme:be-public-holidays","jurisdiction":"BE","name":"Belgium public holidays","organizationId":"org-acme","isSystem":false,"parentCalendarId":"be-public-holidays","closures":[{"observedOn":"2026-12-25","kind":"public","knownFrom":"2026-01-01T00:00:00.000Z","source":"platform-seed","calendarId":"be-public-holidays"}]}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Adds one closed day to a base calendar and returns the calendar with its whole chain of closures. Only a platform administrator can call this. The platform stamps who asked and when the closure became known, so a correction published later never moves a deadline that was already computed. Repeating the same day and kind leaves one closure.","summary":"Close one day on a base calendar","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"observedOn":{"type":"string"},"kind":{"type":"string","enum":["public","bank","settlement","exchange","oneOff"]}},"required":["observedOn","kind"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/settings/calendars":{"get":{"tags":["Platform settings"],"operationId":"platform.calendars.settingsCalendarsList","parameters":[],"responses":{"200":{"description":"The calendars the caller may read, each with its own closures.","content":{"application/json":{"schema":{"type":"object","properties":{"calendars":{"type":"array","items":{"$ref":"#/components/schemas/PlatformHolidayCalendar"}}},"required":["calendars"],"additionalProperties":false},"examples":{"example-1":{"value":{"calendars":[{"calendarId":"org-acme:be-public-holidays","jurisdiction":"BE","name":"Belgium public holidays","organizationId":"org-acme","isSystem":false,"parentCalendarId":"be-public-holidays","closures":[{"observedOn":"2026-12-25","kind":"public","knownFrom":"2026-01-01T00:00:00.000Z","source":"platform-seed","calendarId":"be-public-holidays"}]}]}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the holiday calendars the active organization owns, each with the closures of its whole parent chain. Base calendars are not listed here; extend one to get a calendar of your own. The call is a stored read and is safe to retry.","summary":"List this organization's calendars","x-dalp-auth":"session-or-api-key"}},"/api/v2/settings/calendars/{calendarId}":{"put":{"tags":["Platform settings"],"operationId":"platform.calendars.settingsCalendarsUpsert","parameters":[{"name":"calendarId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"One holiday calendar with the closures its chain carries.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlatformHolidayCalendar"},"examples":{"example-1":{"value":{"calendarId":"org-acme:be-public-holidays","jurisdiction":"BE","name":"Belgium public holidays","organizationId":"org-acme","isSystem":false,"parentCalendarId":"be-public-holidays","closures":[{"observedOn":"2026-12-25","kind":"public","knownFrom":"2026-01-01T00:00:00.000Z","source":"platform-seed","calendarId":"be-public-holidays"}]}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Stores one calendar under the active organization and returns it with its whole chain of closures. The organization is taken from the session, so a body can never place a calendar under another organization. A parent that is neither a base nor a calendar of this organization returns 404, and one that would make the calendar its own ancestor returns 409. A write on a base returns 404 for a tenant. Repeating an identical body stores the same row again.","summary":"Create or replace one of this organization's calendars","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"jurisdiction":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"parentCalendarId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]}},"required":["jurisdiction","name","parentCalendarId"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/settings/calendars/{calendarId}/closures":{"post":{"tags":["Platform settings"],"operationId":"platform.calendars.settingsCalendarsAddClosure","parameters":[{"name":"calendarId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"One holiday calendar with the closures its chain carries.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlatformHolidayCalendar"},"examples":{"example-1":{"value":{"calendarId":"org-acme:be-public-holidays","jurisdiction":"BE","name":"Belgium public holidays","organizationId":"org-acme","isSystem":false,"parentCalendarId":"be-public-holidays","closures":[{"observedOn":"2026-12-25","kind":"public","knownFrom":"2026-01-01T00:00:00.000Z","source":"platform-seed","calendarId":"be-public-holidays"}]}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Adds one closed day to a calendar the active organization owns and returns the calendar with its whole chain of closures. A closure on a base or on another organization's calendar returns 404. Inheritance only ever adds: a closure here never reopens a day an ancestor closed. Repeating the same day and kind leaves one closure.","summary":"Close one day on this organization's calendar","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"observedOn":{"type":"string"},"kind":{"type":"string","enum":["public","bank","settlement","exchange","oneOff"]}},"required":["observedOn","kind"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/settings/calendar-bases":{"get":{"tags":["Platform settings"],"operationId":"platform.calendars.settingsCalendarsBases","parameters":[],"responses":{"200":{"description":"The calendars the caller may read, each with its own closures.","content":{"application/json":{"schema":{"type":"object","properties":{"calendars":{"type":"array","items":{"$ref":"#/components/schemas/PlatformHolidayCalendar"}}},"required":["calendars"],"additionalProperties":false},"examples":{"example-1":{"value":{"calendars":[{"calendarId":"org-acme:be-public-holidays","jurisdiction":"BE","name":"Belgium public holidays","organizationId":"org-acme","isSystem":false,"parentCalendarId":"be-public-holidays","closures":[{"observedOn":"2026-12-25","kind":"public","knownFrom":"2026-01-01T00:00:00.000Z","source":"platform-seed","calendarId":"be-public-holidays"}]}]}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns every base calendar the platform ships, each with the closures of its whole parent chain. A picker needs this to offer a base an organization has not extended yet; the extension itself is created by the extend call. The call is a stored read and is safe to retry.","summary":"List the base calendars this organization may extend","x-dalp-auth":"session-or-api-key"}},"/api/v2/settings/calendars/extension-of":{"post":{"tags":["Platform settings"],"operationId":"platform.calendars.settingsCalendarsExtensionOf","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"HolidayCalendarExtension","content":{"application/json":{"schema":{"type":"object","properties":{"calendarId":{"type":"string","minLength":1}},"required":["calendarId"],"additionalProperties":false},"examples":{"example-1":{"value":{"calendarId":"venue:31337:0x1111111111111111111111111111111111111111"}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the active organization's calendar that extends the named base, creating it on first use. Two calls with the same base answer one identifier and leave one calendar, so a second venue joins the calendar the first one made. A base that is not a platform calendar returns 404.","summary":"Extend a base calendar","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"baseCalendarId":{"type":"string","minLength":1}},"required":["baseCalendarId"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/settings/asset-type-template-structures":{"get":{"tags":["Platform settings"],"operationId":"platform.templateStructures.assetTypeTemplateStructuresList","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000}},"allOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"object","properties":{"eq":{"anyOf":[{"type":"string"},{"type":"number"}]},"ne":{"anyOf":[{"type":"string"},{"type":"number"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]}},"additionalProperties":false}]}}]},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"One page of multi-class instrument structures visible to the active organization. `meta.total` counts every matching structure rather than the rows on this page.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/AssetTypeTemplateStructureId"},"slug":{"type":"string","minLength":1,"maxLength":255,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},"name":{"type":"string","minLength":1,"maxLength":255},"description":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"isSystem":{"type":"boolean"},"organizationId":{"anyOf":[{"$ref":"#/components/schemas/OrganizationId"},{"type":"null"}]},"assetClassId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"revision":{"type":"integer","minimum":1},"isPublished":{"type":"boolean","description":"Whether the structure is published for the calling organisation: the organisation chose to publish it and every member template is published."},"members":{"type":"array","items":{"type":"object","properties":{"memberId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"},"label":{"type":"string","minLength":1,"maxLength":64},"features":{"type":"array","items":{"type":"object","properties":{"configuration":{"type":"object","properties":{"definitionId":{"type":"string","minLength":1,"maxLength":128},"definitionRevision":{"type":"integer","minimum":1},"fields":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureTemplateConfigurationNode"}}},"required":["definitionId","definitionRevision","fields"],"additionalProperties":false},"policy":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureFieldPolicy"}},"instanceId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"}},"required":["configuration"],"additionalProperties":false},"maxItems":128},"templateId":{"type":"string","minLength":1,"maxLength":255},"role":{"type":"string","pattern":"^[a-z][a-z0-9-]{1,31}$"},"name":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1},"position":{"type":"integer","minimum":0},"isPublished":{"type":"boolean","description":"Whether the member template is published for the calling organisation."},"isHidden":{"type":"boolean","description":"Whether the calling organisation hid the member template. A hidden member keeps the structure out of issuance."}},"required":["memberId","label","features","templateId","role","name","slug","position","isPublished","isHidden"],"additionalProperties":false}},"deployedInstrumentCount":{"type":"integer","minimum":0},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["id","slug","name","description","isSystem","organizationId","assetClassId","revision","isPublished","members","deployedInstrumentCount","createdAt","updatedAt"],"additionalProperties":false}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"atts_northwind_dual_class","slug":"northwind-dual-class","name":"Northwind dual-class","description":"Founder and investor share classes issued as one instrument","isSystem":false,"organizationId":"org_northwind_coffee","assetClassId":"acd_northwind_equity","revision":1,"isPublished":true,"members":[{"memberId":"01990000-0000-7000-8000-000000000001","label":"Founder class","features":[],"templateId":"att_northwind_founder_shares","role":"controlling","name":"Founder shares","slug":"founder-shares","position":0,"isPublished":true,"isHidden":false}],"deployedInstrumentCount":0,"createdAt":"2026-03-04T09:12:41.000Z","updatedAt":"2026-04-12T09:30:00.000Z"}],"meta":{"total":1,"facets":{}},"links":{"self":"/v2/settings/asset-type-template-structures?sort=name&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/settings/asset-type-template-structures?sort=name&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/settings/asset-type-template-structures?sort=name&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of instrument structures visible to the active organization, including system structures unless filtered out. Default sort is name. Filter with filter[name], filter[isSystem], filter[assetClass], filter[createdAt], filter[updatedAt], or filter[q]. filter[assetClass] matches the asset class the structure's classes share. The page is stored settings data. Repeating the read is safe.","summary":"Page through multi-class instrument structures","x-dalp-auth":"session-or-api-key"},"post":{"tags":["Platform settings"],"operationId":"platform.templateStructures.assetTypeTemplateStructuresCreate","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The stored structure. Reuse `data.id` for a later update or delete.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/AssetTypeTemplateStructureId"},"slug":{"type":"string","minLength":1,"maxLength":255,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},"name":{"type":"string","minLength":1,"maxLength":255},"description":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"isSystem":{"type":"boolean"},"organizationId":{"anyOf":[{"$ref":"#/components/schemas/OrganizationId"},{"type":"null"}]},"assetClassId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"revision":{"type":"integer","minimum":1},"isPublished":{"type":"boolean","description":"Whether the structure is published for the calling organisation: the organisation chose to publish it and every member template is published."},"members":{"type":"array","items":{"type":"object","properties":{"memberId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"},"label":{"type":"string","minLength":1,"maxLength":64},"features":{"type":"array","items":{"type":"object","properties":{"configuration":{"type":"object","properties":{"definitionId":{"type":"string","minLength":1,"maxLength":128},"definitionRevision":{"type":"integer","minimum":1},"fields":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureTemplateConfigurationNode"}}},"required":["definitionId","definitionRevision","fields"],"additionalProperties":false},"policy":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureFieldPolicy"}},"instanceId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"}},"required":["configuration"],"additionalProperties":false},"maxItems":128},"templateId":{"type":"string","minLength":1,"maxLength":255},"role":{"type":"string","pattern":"^[a-z][a-z0-9-]{1,31}$"},"name":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1},"position":{"type":"integer","minimum":0},"isPublished":{"type":"boolean","description":"Whether the member template is published for the calling organisation."},"isHidden":{"type":"boolean","description":"Whether the calling organisation hid the member template. A hidden member keeps the structure out of issuance."}},"required":["memberId","label","features","templateId","role","name","slug","position","isPublished","isHidden"],"additionalProperties":false}},"deployedInstrumentCount":{"type":"integer","minimum":0},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["id","slug","name","description","isSystem","organizationId","assetClassId","revision","isPublished","members","deployedInstrumentCount","createdAt","updatedAt"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"atts_northwind_dual_class","slug":"northwind-dual-class","name":"Northwind dual-class","description":"Founder and investor share classes issued as one instrument","isSystem":false,"organizationId":"org_northwind_coffee","assetClassId":"acd_northwind_equity","revision":1,"isPublished":true,"members":[{"memberId":"01990000-0000-7000-8000-000000000001","label":"Founder class","features":[],"templateId":"att_northwind_founder_shares","role":"controlling","name":"Founder shares","slug":"founder-shares","position":0,"isPublished":true,"isHidden":false}],"deployedInstrumentCount":0,"createdAt":"2026-03-04T09:12:41.000Z","updatedAt":"2026-04-12T09:30:00.000Z"},"links":{"self":"/v2/settings/asset-type-template-structures"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","SETTINGS_TEMPLATE_NAME_ALREADY_EXISTS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Declares an explicit ordered set of instrument templates in the active organization. name and members are required. Each member carries its stable identity, role, label, and complete feature configuration. Every referenced template must be visible to the organization and published. The write waits until the declaration is stored.","summary":"Create a multi-class instrument structure","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255},"description":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"slug":{"type":"string","minLength":1,"maxLength":255,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},"assetClassId":{"anyOf":[{"type":"string","minLength":1,"maxLength":255},{"type":"null"}]},"members":{"$ref":"#/components/schemas/AssetTypeTemplateStructureMembersInput"}},"required":["name","members"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/settings/asset-type-template-structures/{id}":{"put":{"tags":["Platform settings"],"operationId":"platform.templateStructures.assetTypeTemplateStructuresUpdate","parameters":[{"name":"id","in":"path","schema":{"type":"string","minLength":1,"description":"Declared multi-class instrument structure identifier"},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The stored structure. Reuse `data.id` for a later update or delete.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/AssetTypeTemplateStructureId"},"slug":{"type":"string","minLength":1,"maxLength":255,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},"name":{"type":"string","minLength":1,"maxLength":255},"description":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"isSystem":{"type":"boolean"},"organizationId":{"anyOf":[{"$ref":"#/components/schemas/OrganizationId"},{"type":"null"}]},"assetClassId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"revision":{"type":"integer","minimum":1},"isPublished":{"type":"boolean","description":"Whether the structure is published for the calling organisation: the organisation chose to publish it and every member template is published."},"members":{"type":"array","items":{"type":"object","properties":{"memberId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"},"label":{"type":"string","minLength":1,"maxLength":64},"features":{"type":"array","items":{"type":"object","properties":{"configuration":{"type":"object","properties":{"definitionId":{"type":"string","minLength":1,"maxLength":128},"definitionRevision":{"type":"integer","minimum":1},"fields":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureTemplateConfigurationNode"}}},"required":["definitionId","definitionRevision","fields"],"additionalProperties":false},"policy":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureFieldPolicy"}},"instanceId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"}},"required":["configuration"],"additionalProperties":false},"maxItems":128},"templateId":{"type":"string","minLength":1,"maxLength":255},"role":{"type":"string","pattern":"^[a-z][a-z0-9-]{1,31}$"},"name":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1},"position":{"type":"integer","minimum":0},"isPublished":{"type":"boolean","description":"Whether the member template is published for the calling organisation."},"isHidden":{"type":"boolean","description":"Whether the calling organisation hid the member template. A hidden member keeps the structure out of issuance."}},"required":["memberId","label","features","templateId","role","name","slug","position","isPublished","isHidden"],"additionalProperties":false}},"deployedInstrumentCount":{"type":"integer","minimum":0},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["id","slug","name","description","isSystem","organizationId","assetClassId","revision","isPublished","members","deployedInstrumentCount","createdAt","updatedAt"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"atts_northwind_dual_class","slug":"northwind-dual-class","name":"Northwind dual-class","description":"Founder and investor share classes issued as one instrument","isSystem":false,"organizationId":"org_northwind_coffee","assetClassId":"acd_northwind_equity","revision":1,"isPublished":true,"members":[{"memberId":"01990000-0000-7000-8000-000000000001","label":"Founder class","features":[],"templateId":"att_northwind_founder_shares","role":"controlling","name":"Founder shares","slug":"founder-shares","position":0,"isPublished":true,"isHidden":false}],"deployedInstrumentCount":0,"createdAt":"2026-03-04T09:12:41.000Z","updatedAt":"2026-04-12T09:30:00.000Z"},"links":{"self":"/v2/settings/asset-type-template-structures"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","SETTINGS_TEMPLATE_NAME_ALREADY_EXISTS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Updates the named structure in the active organization. expectedRevision is required and rejects a stale write. Other omitted fields stay unchanged. name, slug, and description stay editable for the life of the structure. members replaces the complete declared member set and is refused after issuance. System structures are read-only. The write waits until the new revision is stored.","summary":"Update a multi-class instrument structure","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"expectedRevision":{"type":"integer","minimum":1},"name":{"type":"string","minLength":1,"maxLength":255},"description":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"slug":{"type":"string","minLength":1,"maxLength":255,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},"assetClassId":{"anyOf":[{"type":"string","minLength":1,"maxLength":255},{"type":"null"}]},"members":{"$ref":"#/components/schemas/AssetTypeTemplateStructureMembersInput_1"}},"required":["expectedRevision"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"},"delete":{"tags":["Platform settings"],"operationId":"platform.templateStructures.assetTypeTemplateStructuresDelete","parameters":[{"name":"id","in":"path","schema":{"type":"string","minLength":1,"description":"Declared multi-class instrument structure identifier"},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The named structure is gone from the active organization. Its templates are untouched; only the pairing is removed. data is null because no replacement row remains. A later delete of the same id returns an error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteResponse"},"examples":{"example-1":{"value":{"data":null}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Removes the structure named by the id path parameter from the active organization. The member templates are untouched. System structures cannot be deleted, and neither can a structure a deployed instrument was issued from. A missing identifier returns an error. The delete waits until the row is gone.","summary":"Delete a multi-class instrument structure","x-dalp-auth":"session-or-api-key"}},"/api/v2/settings/asset-type-template-structures/{id}/publish":{"put":{"tags":["Platform settings"],"operationId":"platform.templateStructures.assetTypeTemplateStructuresPublish","parameters":[{"name":"id","in":"path","schema":{"type":"string","minLength":1,"description":"Declared multi-class instrument structure identifier"},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The stored structure with `isPublished` true. Reuse `data.id` for a later update, unpublish, or delete.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/AssetTypeTemplateStructureId"},"slug":{"type":"string","minLength":1,"maxLength":255,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},"name":{"type":"string","minLength":1,"maxLength":255},"description":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"isSystem":{"type":"boolean"},"organizationId":{"anyOf":[{"$ref":"#/components/schemas/OrganizationId"},{"type":"null"}]},"assetClassId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"revision":{"type":"integer","minimum":1},"isPublished":{"type":"boolean","description":"Whether the structure is published for the calling organisation: the organisation chose to publish it and every member template is published."},"members":{"type":"array","items":{"type":"object","properties":{"memberId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"},"label":{"type":"string","minLength":1,"maxLength":64},"features":{"type":"array","items":{"type":"object","properties":{"configuration":{"type":"object","properties":{"definitionId":{"type":"string","minLength":1,"maxLength":128},"definitionRevision":{"type":"integer","minimum":1},"fields":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureTemplateConfigurationNode"}}},"required":["definitionId","definitionRevision","fields"],"additionalProperties":false},"policy":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureFieldPolicy"}},"instanceId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"}},"required":["configuration"],"additionalProperties":false},"maxItems":128},"templateId":{"type":"string","minLength":1,"maxLength":255},"role":{"type":"string","pattern":"^[a-z][a-z0-9-]{1,31}$"},"name":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1},"position":{"type":"integer","minimum":0},"isPublished":{"type":"boolean","description":"Whether the member template is published for the calling organisation."},"isHidden":{"type":"boolean","description":"Whether the calling organisation hid the member template. A hidden member keeps the structure out of issuance."}},"required":["memberId","label","features","templateId","role","name","slug","position","isPublished","isHidden"],"additionalProperties":false}},"deployedInstrumentCount":{"type":"integer","minimum":0},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["id","slug","name","description","isSystem","organizationId","assetClassId","revision","isPublished","members","deployedInstrumentCount","createdAt","updatedAt"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","slug":"northwind-coffee","name":"Core holdings","description":"Quarterly reserve and holder position report for an asset-referenced token issuer.","isSystem":false,"organizationId":"org_northwind_coffee","assetClassId":"acd_northwind_equity","revision":1,"isPublished":true,"members":[{"memberId":"01990000-0000-7000-8000-000000000001","label":"Pay in USDC","features":[],"templateId":"att_northwind_founder_shares","role":"member","name":"Core holdings","slug":"northwind-coffee","position":0,"isPublished":true,"isHidden":false}],"deployedInstrumentCount":0,"createdAt":"2026-08-01T09:00:00.000Z","updatedAt":"2026-08-01T09:00:00.000Z"},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Publishes the named multi-class instrument structure for the active organization so new instruments can start from it, and returns the stored record. Publishing cascades in one transaction to any member template the organization has not yet published, so every member is published alongside the structure. A structure the organization already has published returns 409. A missing identifier returns an error. The write waits until the publication is stored.","summary":"Publish an instrument structure","x-dalp-auth":"session-or-api-key"}},"/api/v2/settings/asset-type-template-structures/{id}/unpublish":{"put":{"tags":["Platform settings"],"operationId":"platform.templateStructures.assetTypeTemplateStructuresUnpublish","parameters":[{"name":"id","in":"path","schema":{"type":"string","minLength":1,"description":"Declared multi-class instrument structure identifier"},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The stored structure with `isPublished` false. Reuse `data.id` for a later update, publish, or delete.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/AssetTypeTemplateStructureId"},"slug":{"type":"string","minLength":1,"maxLength":255,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},"name":{"type":"string","minLength":1,"maxLength":255},"description":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}]},"isSystem":{"type":"boolean"},"organizationId":{"anyOf":[{"$ref":"#/components/schemas/OrganizationId"},{"type":"null"}]},"assetClassId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"revision":{"type":"integer","minimum":1},"isPublished":{"type":"boolean","description":"Whether the structure is published for the calling organisation: the organisation chose to publish it and every member template is published."},"members":{"type":"array","items":{"type":"object","properties":{"memberId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"},"label":{"type":"string","minLength":1,"maxLength":64},"features":{"type":"array","items":{"type":"object","properties":{"configuration":{"type":"object","properties":{"definitionId":{"type":"string","minLength":1,"maxLength":128},"definitionRevision":{"type":"integer","minimum":1},"fields":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureTemplateConfigurationNode"}}},"required":["definitionId","definitionRevision","fields"],"additionalProperties":false},"policy":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureFieldPolicy"}},"instanceId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"}},"required":["configuration"],"additionalProperties":false},"maxItems":128},"templateId":{"type":"string","minLength":1,"maxLength":255},"role":{"type":"string","pattern":"^[a-z][a-z0-9-]{1,31}$"},"name":{"type":"string","minLength":1},"slug":{"type":"string","minLength":1},"position":{"type":"integer","minimum":0},"isPublished":{"type":"boolean","description":"Whether the member template is published for the calling organisation."},"isHidden":{"type":"boolean","description":"Whether the calling organisation hid the member template. A hidden member keeps the structure out of issuance."}},"required":["memberId","label","features","templateId","role","name","slug","position","isPublished","isHidden"],"additionalProperties":false}},"deployedInstrumentCount":{"type":"integer","minimum":0},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["id","slug","name","description","isSystem","organizationId","assetClassId","revision","isPublished","members","deployedInstrumentCount","createdAt","updatedAt"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","slug":"northwind-coffee","name":"Core holdings","description":"Quarterly reserve and holder position report for an asset-referenced token issuer.","isSystem":false,"organizationId":"org_northwind_coffee","assetClassId":"acd_northwind_equity","revision":1,"isPublished":true,"members":[{"memberId":"01990000-0000-7000-8000-000000000001","label":"Pay in USDC","features":[],"templateId":"att_northwind_founder_shares","role":"member","name":"Core holdings","slug":"northwind-coffee","position":0,"isPublished":true,"isHidden":false}],"deployedInstrumentCount":0,"createdAt":"2026-08-01T09:00:00.000Z","updatedAt":"2026-08-01T09:00:00.000Z"},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Stops the active organization from offering the named multi-class instrument structure for new instruments, and returns the stored record. Member templates stay published; unpublishing the structure never unpublishes them. Instruments already issued from the structure keep working. A structure the organization already has unpublished returns 409. A missing identifier returns an error. The write waits until the choice is stored.","summary":"Unpublish an instrument structure","x-dalp-auth":"session-or-api-key"}},"/api/v2/organizations/funding-requirements":{"get":{"tags":["Organisation deployment"],"operationId":"platform.fundingRequirements.organizationFundingRequirementsList","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"chainId":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"string"}]},{"type":"object","properties":{"eq":{"anyOf":[{"type":"number"},{"type":"string"}]},"ne":{"anyOf":[{"type":"number"},{"type":"string"}]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"anyOf":[{"type":"number"},{"type":"string"}]},"gte":{"anyOf":[{"type":"number"},{"type":"string"}]},"lt":{"anyOf":[{"type":"number"},{"type":"string"}]},"lte":{"anyOf":[{"type":"number"},{"type":"string"}]},"between":{"type":"string","maxLength":64}},"additionalProperties":false}]},"subjectAddress":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"subjectKind":{"anyOf":[{"type":"string","enum":["eoa","smart-account","paymaster-deposit"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"status":{"anyOf":[{"type":"string","enum":["active","resolved","expired"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"expiresAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"lastRefusalAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"createdAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"One page of the organization's gas funding requirements: every wallet the chain refused for want of gas, with the amount that settles it. `subjectAddress`, `requiredWei`, `advisoryTotalWei`, and `observedWei` are `null` for a viewer whose executor holds none of `admin`, `systemManager`, or `gasManager`, except on a row naming one of the viewer's own wallets and on a row whose `subjectOwner` is `organisation`, which names a shared reserve any member may top up. `nativeCurrency` names and scales that row's amounts and is published to every viewer; it is `null` only when the chain catalog cannot describe the row's chain, and the row is still listed. Returns only `active` requirements unless an explicit `filter[status]` widens the query.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/OrganizationFundingRequirement"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"01a00691-0c1b-7412-929d-4c01886207eb","chainId":11155111,"nativeCurrency":{"name":"Ether","symbol":"ETH","decimals":18},"subjectAddress":"0xbd7b005c1a2b3c4d5e6f708192a3b4c5d6e7f809","subjectKind":"eoa","role":"queued-write-eoa","subjectOwner":"caller","requiredWei":"8830580880000000","advisoryTotalWei":"12000000000000000","observedWei":null,"status":"active","expiresAt":"2026-08-17T11:30:00.000Z","lastRefusalAt":"2026-08-17T11:00:00.000Z","resolvedAt":null,"createdAt":"2026-08-17T11:00:00.000Z","updatedAt":"2026-08-17T11:00:00.000Z"}],"meta":{"total":1},"links":{"self":"/v2/organizations/funding-requirements?sort=chainId&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/organizations/funding-requirements?sort=chainId&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/organizations/funding-requirements?sort=chainId&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","SETTINGS_THEME_PAYLOAD_EXCEEDS_SUPPORTED_LIMITS","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT","platform.http.REQUEST_INVALID"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","platform.http.ACCESS_DENIED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"412":{"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError412"},{"type":"object","properties":{"code":{"type":"string","enum":["PRECONDITION_FAILED"]}},"required":["code"]}],"examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","platform.http.DEPENDENCY_UNAVAILABLE","platform.http.STORAGE_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of funding requirements for the active organization: every wallet, smart account, or paymaster deposit the chain has refused for want of gas. Without an explicit `filter[status]` only `active` rows are returned, so the list reads as what is still owed rather than as history. Amounts are non-negative decimal integer strings in base units of each row's `nativeCurrency`; divide by ten to the power of its `decimals` to render a figure a person reads. This is the durable table, not a deployment stream decoration, so it answers outside any live deploy. Default sort is -createdAt. Repeating the read is safe.","summary":"List the organization's outstanding gas funding requirements","x-dalp-auth":"session-or-api-key"}},"/api/v2/actions":{"get":{"tags":["Actions"],"operationId":"assetPortfolioV2.v2/actions/list","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000}},"allOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"object","properties":{"eq":{"anyOf":[{"type":"string"},{"type":"number"}]},"ne":{"anyOf":[{"type":"string"},{"type":"number"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]}},"additionalProperties":false}]}}]},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"One page of actions the caller can execute. `meta.facets` counts `status` and `actionType` across the filtered set.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ActionRow"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"xvp-approve:0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","actionType":"ApproveXvPSettlement","name":"Approve Northwind Series A settlement","target":"0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9","tokenAddress":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","activeAt":"2026-03-15T09:12:41.000Z","status":"PENDING","executedAt":null,"executedBy":null,"expiresAt":"2026-04-20T16:00:00.000Z","source":"on-chain"}],"meta":{"total":1},"links":{"self":"/v2/actions?sort=-activeAt&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/actions?sort=-activeAt&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/actions?sort=-activeAt&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","wire.http.SESSION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIONS_STREAM_ORIGIN_REJECTED","ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIONS_STREAM_ORIGIN_REJECTED","status":403,"message":"Live actions feed requires Console origin","data":{"id":"DALP-0671","why":"The live actions feed carries browser session cookies, and the request origin did not match the Console origin accepted for live updates.","fix":"Refresh the Console and retry the actions view. API clients should call `GET /v2/actions` instead of the stream.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","PORTFOLIO_RESOURCE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"PORTFOLIO_RESOURCE_NOT_FOUND","status":404,"message":"Portfolio resource was not found","data":{"id":"DALP-0733","why":"The requested portfolio resource does not exist in the active organization.","fix":"Verify the identifier and the active organization, then request it again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","GOVERNANCE_POLL_NOT_OPEN","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","portfolio.polls.SIGNING_PENDING"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXTERNAL_TOKEN_REGISTRATION_REJECTED","GOVERNANCE_BALLOT_REJECTED","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"EXTERNAL_TOKEN_REGISTRATION_REJECTED","status":422,"message":"The external token wasn't registered","data":{"id":"DALP-0736","why":"The address did not pass on-chain ERC-20 metadata verification, or it is already registered.","fix":"Check that the address exposes name, symbol, and decimals on this chain, and that it is not registered already.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["GOVERNANCE_BALLOT_RATE_LIMITED","TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","GOVERNANCE_STATE_UNAVAILABLE","PORTFOLIO_PERSISTENCE_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","portfolio.http.WRITE_OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of actions the authenticated caller can execute in the active organization. Default sort is newest `activeAt` first. Filter by `status`, `actionType`, `target`, `tokenAddress`, or `name`, and search every searchable field with `filter[q]`. Facets count `status` and `actionType`. Repeating the request is safe.","summary":"Page callable actions","x-dalp-auth":"session-or-api-key"}},"/api/v2/actions/stream":{"get":{"tags":["Actions"],"operationId":"assetPortfolioV2.v2/actions/stream","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000}},"allOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"object","properties":{"eq":{"anyOf":[{"type":"string"},{"type":"number"}]},"ne":{"anyOf":[{"type":"string"},{"type":"number"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]}},"additionalProperties":false}]}}]},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"Server-sent events that republish the same paginated action list whenever the indexed set changes. Each event `data` payload is one page of callable actions matching the query, including `meta` and paging links. Keep the stream open to refresh the actions table. After a drop, reconnect with the same query.","content":{"text/event-stream":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"actionType":{"type":"string","enum":["MatureBond","RedeemBond","ClaimYield","ClaimDividend","ApproveMaturityAllowance","ApproveYieldAllowance","ApproveXvPSettlement","ExecuteXvPSettlement","UpdateKYCData","MultisigApproval","custody-pending","CheckerApproval","CastVote","CastPollBallot","ActivateVotingPower","MultisigInvite"]},"name":{"type":"string"},"target":{"anyOf":[{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},{"type":"null"}]},"tokenAddress":{"anyOf":[{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},{"type":"null"}]},"activeAt":{"anyOf":[{"type":"string","description":"Epoch milliseconds as a digit string, or a readable datetime.","format":"timestamp"},{"type":"integer","minimum":0}]},"status":{"type":"string","enum":["PENDING","UPCOMING","EXECUTED","EXPIRED"]},"executedAt":{"anyOf":[{"anyOf":[{"type":"string","description":"Epoch milliseconds as a digit string, or a readable datetime.","format":"timestamp"},{"type":"integer","minimum":0}]},{"type":"null"}]},"executedBy":{"anyOf":[{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},{"type":"null"}]},"expiresAt":{"anyOf":[{"anyOf":[{"type":"string","description":"Epoch milliseconds as a digit string, or a readable datetime.","format":"timestamp"},{"type":"integer","minimum":0}]},{"type":"null"}]},"source":{"anyOf":[{"type":"string","enum":["on-chain","off-chain"]},{"type":"null"}]},"kycMetadata":{"anyOf":[{"type":"object","properties":{"reason":{"type":"string"},"requiredFields":{"type":"array","items":{"type":"string"}},"sourceVersionId":{"type":"string"},"requestId":{"type":"string"}},"required":["reason","requiredFields","sourceVersionId","requestId"],"additionalProperties":true},{"type":"null"}]},"multisigMetadata":{"anyOf":[{"type":"object","properties":{"userOpHash":{"type":"string"},"walletAddress":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"threshold":{"type":"string"},"currentWeight":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"operationKind":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["userOpHash","walletAddress","threshold","currentWeight","description","operationKind"],"additionalProperties":true},{"type":"null"}]},"custodyMetadata":{"anyOf":[{"type":"object","properties":{"provider":{"type":"string"},"executable":{"type":"boolean"},"approvalId":{"anyOf":[{"type":"string"},{"type":"null"}]},"transactionId":{"anyOf":[{"type":"string"},{"type":"null"}]},"operationKind":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["provider","executable","approvalId","transactionId","operationKind"],"additionalProperties":true},{"type":"null"}]},"checkerMetadata":{"anyOf":[{"type":"object","properties":{"amount":{"anyOf":[{"type":"string"},{"type":"null"}]},"counterparty":{"anyOf":[{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},{"type":"null"}]},"counterpartyCount":{"anyOf":[{"type":"integer"},{"type":"null"}]},"additionalCallCount":{"anyOf":[{"type":"integer"},{"type":"null"}]},"tokenSymbol":{"anyOf":[{"type":"string"},{"type":"null"}]},"tokenDecimals":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"required":["amount","counterparty","counterpartyCount","additionalCallCount","tokenSymbol","tokenDecimals"],"additionalProperties":true},{"type":"null"}]},"governanceMetadata":{"anyOf":[{"type":"object","properties":{"governorAddress":{"anyOf":[{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},{"type":"null"}]},"proposalId":{"anyOf":[{"type":"string"},{"type":"null"}]},"pollId":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["governorAddress","proposalId","pollId"],"additionalProperties":true},{"type":"null"}]},"dividendMetadata":{"anyOf":[{"type":"object","properties":{"dividendId":{"type":"string","minLength":1}},"required":["dividendId"],"additionalProperties":true},{"type":"null"}]},"multisigInviteMetadata":{"anyOf":[{"type":"object","properties":{"inviteId":{"type":"string"},"draftName":{"type":"string"},"inviteUrl":{"type":"string"},"weight":{"type":"string"},"threshold":{"type":"string"}},"required":["inviteId","draftName","inviteUrl","weight","threshold"],"additionalProperties":true},{"type":"null"}]}},"required":["id","actionType","name","target","tokenAddress","activeAt","status","executedAt","executedBy","expiresAt"],"additionalProperties":true}},"meta":{"type":"object","properties":{"total":{"type":"integer"},"facets":{"type":"object","additionalProperties":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"count":{"type":"integer","minimum":0}},"required":["value","count"],"additionalProperties":true}}}},"required":["total"],"additionalProperties":true},"links":{"type":"object","properties":{"self":{"type":"string"},"first":{"type":"string"},"prev":{"anyOf":[{"type":"string"},{"type":"null"}]},"next":{"anyOf":[{"type":"string"},{"type":"null"}]},"last":{"type":"string"}},"required":["self","first","prev","next","last"],"additionalProperties":true}},"required":["data","meta","links"],"additionalProperties":true},"x-effect-stream":{"encoding":"sse","causeSchema":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["Fail"]},"error":{"not":{}}},"required":["_tag","error"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["Die"]},"defect":{}},"required":["_tag","defect"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["Interrupt"]},"fiberId":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["_tag","fiberId"],"additionalProperties":false}]}},"errorSchema":{"not":{}},"failureEvent":"effect/http-api/stream/failure"},"examples":{"example-1":{"value":{"data":[{"id":"xvp-approve:0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","actionType":"ApproveXvPSettlement","name":"Approve Northwind Series A settlement","target":"0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9","tokenAddress":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","activeAt":"2026-03-15T09:12:41.000Z","status":"PENDING","executedAt":null,"executedBy":null,"expiresAt":"2026-04-20T16:00:00.000Z","source":"on-chain"}],"meta":{"total":1},"links":{"self":"/v2/actions?sort=-activeAt&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/actions?sort=-activeAt&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/actions?sort=-activeAt&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","wire.http.SESSION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIONS_STREAM_ORIGIN_REJECTED","ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIONS_STREAM_ORIGIN_REJECTED","status":403,"message":"Live actions feed requires Console origin","data":{"id":"DALP-0671","why":"The live actions feed carries browser session cookies, and the request origin did not match the Console origin accepted for live updates.","fix":"Refresh the Console and retry the actions view. API clients should call `GET /v2/actions` instead of the stream.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","PORTFOLIO_RESOURCE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"PORTFOLIO_RESOURCE_NOT_FOUND","status":404,"message":"Portfolio resource was not found","data":{"id":"DALP-0733","why":"The requested portfolio resource does not exist in the active organization.","fix":"Verify the identifier and the active organization, then request it again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","GOVERNANCE_POLL_NOT_OPEN","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","portfolio.polls.SIGNING_PENDING"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXTERNAL_TOKEN_REGISTRATION_REJECTED","GOVERNANCE_BALLOT_REJECTED","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"EXTERNAL_TOKEN_REGISTRATION_REJECTED","status":422,"message":"The external token wasn't registered","data":{"id":"DALP-0736","why":"The address did not pass on-chain ERC-20 metadata verification, or it is already registered.","fix":"Check that the address exposes name, symbol, and decimals on this chain, and that it is not registered already.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["GOVERNANCE_BALLOT_RATE_LIMITED","TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","GOVERNANCE_STATE_UNAVAILABLE","PORTFOLIO_PERSISTENCE_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","portfolio.http.WRITE_OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Opens a server-sent event stream that republishes the same paginated action list whenever the indexed set changes. Send the same collection query as the list route. The stream accepts browser credentials only from the API host origin; an untrusted origin answers 403. Reconnect with the same query after a drop.","summary":"Stream action-list snapshots","x-dalp-auth":"session-or-api-key"}},"/api/v2/user-asset-balances":{"get":{"tags":["Accounts and portfolio"],"operationId":"assetPortfolioV2.v2/user/assets","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000}},"allOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"object","properties":{"eq":{"anyOf":[{"type":"string"},{"type":"number"}]},"ne":{"anyOf":[{"type":"string"},{"type":"number"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]}},"additionalProperties":false}]}}]},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false},{"name":"groupBy","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"One page of the caller's token balances. Amounts are scaled decimal strings. `meta.groups` appears only when the request grouped by metadata.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/HoldingRow"}},"meta":{"$ref":"#/components/schemas/HoldingsMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","accountAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","value":"125000","frozen":"0","available":"125000","held":"0","atVenue":"0","valueInBaseCurrency":"125000.00","priceInBaseCurrencyReliable":true,"priceChange24hPercent":"0.40","priceAsOf24h":"0.996","costBasis":"124500.00","unrealizedPnl":"500.00","unrealizedPnlPercent":"0.40","costBasisIncomplete":false,"token":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","name":"Northwind Coffee Bond","symbol":"NCB","type":"bond","isExternal":false,"decimals":18,"totalSupply":"50000000","totalSupplyExact":"1250000500000000000000000","bond":{"isMatured":false},"yield":null},"byAccount":[{"sourceAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","sourceKind":"eoa","value":"125000","frozen":"0","pendingOutgoing":"0","available":"125000","authorities":[{"custodyAccountId":"019c0000-0000-7000-8000-000000000001","signingAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","providerConfigurationId":"019c0000-0000-7000-8000-000000000002","provider":"fireblocks","accountLifecycle":"active","contextLifecycle":"active","eligibility":"eligible","isPrimary":true}]}],"metadataValues":{}}],"meta":{"total":1,"facets":{},"groups":[{"key":"BASE_CURRENCY","label":"Pay in USDC"}],"groupBy":{"key":"BASE_CURRENCY","label":"Pay in USDC"}},"links":{"self":"/v2/user-asset-balances?sort=-balance&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/user-asset-balances?sort=-balance&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/user-asset-balances?sort=-balance&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","wire.http.SESSION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIONS_STREAM_ORIGIN_REJECTED","ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIONS_STREAM_ORIGIN_REJECTED","status":403,"message":"Live actions feed requires Console origin","data":{"id":"DALP-0671","why":"The live actions feed carries browser session cookies, and the request origin did not match the Console origin accepted for live updates.","fix":"Refresh the Console and retry the actions view. API clients should call `GET /v2/actions` instead of the stream.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","PORTFOLIO_RESOURCE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"PORTFOLIO_RESOURCE_NOT_FOUND","status":404,"message":"Portfolio resource was not found","data":{"id":"DALP-0733","why":"The requested portfolio resource does not exist in the active organization.","fix":"Verify the identifier and the active organization, then request it again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","GOVERNANCE_POLL_NOT_OPEN","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","portfolio.polls.SIGNING_PENDING"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXTERNAL_TOKEN_REGISTRATION_REJECTED","GOVERNANCE_BALLOT_REJECTED","UNPROCESSABLE_ENTITY","USER_ASSETS_METADATA_KEY_INVALID"]}},"required":["code"]}],"examples":[{"code":"EXTERNAL_TOKEN_REGISTRATION_REJECTED","status":422,"message":"The external token wasn't registered","data":{"id":"DALP-0736","why":"The address did not pass on-chain ERC-20 metadata verification, or it is already registered.","fix":"Check that the address exposes name, symbol, and decimals on this chain, and that it is not registered already.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["GOVERNANCE_BALLOT_RATE_LIMITED","TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","PORTFOLIO_HOLDINGS_PROJECTION_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","GOVERNANCE_STATE_UNAVAILABLE","PORTFOLIO_PERSISTENCE_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","portfolio.http.WRITE_OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one identity portfolio with custody-account-aware source balances. `filter[custodyAccountId]` selects one authorized source. AA smart-account assets occur once and list each linked custody account as authority. Default sort is largest balance first. Filter by token address, name, or symbol, and group by metadata when the token carries it. Repeating the request is safe.","summary":"Page token balances","x-dalp-auth":"session-or-api-key"}},"/api/v2/user-realized-pnl":{"get":{"tags":["Accounts and portfolio"],"operationId":"assetPortfolioV2.v2/user/realizedPnl","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000}},"allOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"object","properties":{"eq":{"anyOf":[{"type":"string"},{"type":"number"}]},"ne":{"anyOf":[{"type":"string"},{"type":"number"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]}},"additionalProperties":false}]}}]},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"One page of disposals. `meta.realizedPnlTotalInBase` is the caller's all-time realized P&L in the organization's base currency, not the sum of this page.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/RealizedPnlRow"}},"meta":{"$ref":"#/components/schemas/RealizedPnlMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"disposal:0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae:0","tokenAddress":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","tokenSymbol":"NCB","quantity":"10000","proceedsInBase":"10250.00","costOfDisposalInBase":"10000.00","realizedPnlInBase":"250.00","priceUnresolved":false,"costBasisIncomplete":false,"blockTimestamp":"2026-03-15T09:12:41.000Z"}],"meta":{"total":1,"realizedPnlTotalInBase":"1840.00"},"links":{"self":"/v2/user-realized-pnl?sort=-blockTimestamp&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/user-realized-pnl?sort=-blockTimestamp&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/user-realized-pnl?sort=-blockTimestamp&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","wire.http.SESSION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIONS_STREAM_ORIGIN_REJECTED","ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIONS_STREAM_ORIGIN_REJECTED","status":403,"message":"Live actions feed requires Console origin","data":{"id":"DALP-0671","why":"The live actions feed carries browser session cookies, and the request origin did not match the Console origin accepted for live updates.","fix":"Refresh the Console and retry the actions view. API clients should call `GET /v2/actions` instead of the stream.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","PORTFOLIO_RESOURCE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"PORTFOLIO_RESOURCE_NOT_FOUND","status":404,"message":"Portfolio resource was not found","data":{"id":"DALP-0733","why":"The requested portfolio resource does not exist in the active organization.","fix":"Verify the identifier and the active organization, then request it again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","GOVERNANCE_POLL_NOT_OPEN","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","portfolio.polls.SIGNING_PENDING"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXTERNAL_TOKEN_REGISTRATION_REJECTED","GOVERNANCE_BALLOT_REJECTED","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"EXTERNAL_TOKEN_REGISTRATION_REJECTED","status":422,"message":"The external token wasn't registered","data":{"id":"DALP-0736","why":"The address did not pass on-chain ERC-20 metadata verification, or it is already registered.","fix":"Check that the address exposes name, symbol, and decimals on this chain, and that it is not registered already.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["GOVERNANCE_BALLOT_RATE_LIMITED","TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","GOVERNANCE_STATE_UNAVAILABLE","PORTFOLIO_PERSISTENCE_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","portfolio.http.WRITE_OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of disposals (burns and transfers out of the caller's wallets) with proceeds, cost, and realized P&L in the organization's base currency. Default sort is newest block first. `filter[pnlSign]` keeps gains, losses, or zeros. `meta.realizedPnlTotalInBase` is the all-time total, not the page sum. A disposal of units that were acquired with no price has `costBasisIncomplete: true` and no `costOfDisposalInBase` or `realizedPnlInBase`; the total is then null too, because it cannot be stated. Repeating the request is safe.","summary":"List realized profit and loss","x-dalp-auth":"session-or-api-key"}},"/api/v2/user-realized-pnl-metrics":{"get":{"tags":["Accounts and portfolio"],"operationId":"assetPortfolioV2.v2/user/realizedPnlOverTime","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000}},"allOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"object","properties":{"eq":{"anyOf":[{"type":"string"},{"type":"number"}]},"ne":{"anyOf":[{"type":"string"},{"type":"number"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]}},"additionalProperties":false}]}}]},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false},{"name":"preset","in":"query","schema":{"type":"string","enum":["allTime","ytd","trailing12Months","trailing6Months","trailing3Months","trailing1Month","trailing7Days","trailing24Hours"]},"required":true}],"responses":{"200":{"description":"The caller's realized P&L series for the requested preset, with a `self` link. Each point is the bucket sum plus the running cumulative total.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/RealizedPnlSeries"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"range":{"interval":"day","from":"2026-02-15T00:00:00.000Z","to":"2026-03-15T00:00:00.000Z","isPreset":true},"data":[{"timestamp":"2026-03-15T00:00:00.000Z","realizedPnlInBase":"250.00","cumulativeRealizedPnlInBase":"1840.00"}]},"links":{"self":"/v2/user-realized-pnl-metrics"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","wire.http.SESSION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIONS_STREAM_ORIGIN_REJECTED","ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIONS_STREAM_ORIGIN_REJECTED","status":403,"message":"Live actions feed requires Console origin","data":{"id":"DALP-0671","why":"The live actions feed carries browser session cookies, and the request origin did not match the Console origin accepted for live updates.","fix":"Refresh the Console and retry the actions view. API clients should call `GET /v2/actions` instead of the stream.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","PORTFOLIO_RESOURCE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"PORTFOLIO_RESOURCE_NOT_FOUND","status":404,"message":"Portfolio resource was not found","data":{"id":"DALP-0733","why":"The requested portfolio resource does not exist in the active organization.","fix":"Verify the identifier and the active organization, then request it again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","GOVERNANCE_POLL_NOT_OPEN","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","portfolio.polls.SIGNING_PENDING"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXTERNAL_TOKEN_REGISTRATION_REJECTED","GOVERNANCE_BALLOT_REJECTED","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"EXTERNAL_TOKEN_REGISTRATION_REJECTED","status":422,"message":"The external token wasn't registered","data":{"id":"DALP-0736","why":"The address did not pass on-chain ERC-20 metadata verification, or it is already registered.","fix":"Check that the address exposes name, symbol, and decimals on this chain, and that it is not registered already.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["GOVERNANCE_BALLOT_RATE_LIMITED","TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","GOVERNANCE_STATE_UNAVAILABLE","PORTFOLIO_PERSISTENCE_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","portfolio.http.WRITE_OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the caller's realized P&L bucketed by the `preset` interval, plus a running cumulative total. Each point is the sum of disposals that closed in that bucket. The range is resolved from the preset against the current clock. Repeating the request is safe.","summary":"Read realized P&L over time","x-dalp-auth":"session-or-api-key"}},"/api/v2/user-unrealized-pnl-metrics":{"get":{"tags":["Accounts and portfolio"],"operationId":"assetPortfolioV2.v2/user/unrealizedPnlOverTime","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000}},"allOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"object","properties":{"eq":{"anyOf":[{"type":"string"},{"type":"number"}]},"ne":{"anyOf":[{"type":"string"},{"type":"number"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]}},"additionalProperties":false}]}}]},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false},{"name":"preset","in":"query","schema":{"type":"string","enum":["allTime","ytd","trailing12Months","trailing6Months","trailing3Months","trailing1Month","trailing7Days","trailing24Hours"]},"required":true},{"name":"tokenAddress","in":"query","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true}],"responses":{"200":{"description":"One token's unrealized P&L series for the requested preset, with a `self` link. Each point is mark-to-market minus cost basis as of that bucket.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/UnrealizedPnlSeries"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"range":{"interval":"day","from":"2026-02-15T00:00:00.000Z","to":"2026-03-15T00:00:00.000Z","isPreset":true},"data":[{"timestamp":"2026-03-15T00:00:00.000Z","unrealizedPnlInBase":"500.00"}]},"links":{"self":"/v2/user-unrealized-pnl-metrics"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","wire.http.SESSION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIONS_STREAM_ORIGIN_REJECTED","ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIONS_STREAM_ORIGIN_REJECTED","status":403,"message":"Live actions feed requires Console origin","data":{"id":"DALP-0671","why":"The live actions feed carries browser session cookies, and the request origin did not match the Console origin accepted for live updates.","fix":"Refresh the Console and retry the actions view. API clients should call `GET /v2/actions` instead of the stream.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","PORTFOLIO_RESOURCE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"PORTFOLIO_RESOURCE_NOT_FOUND","status":404,"message":"Portfolio resource was not found","data":{"id":"DALP-0733","why":"The requested portfolio resource does not exist in the active organization.","fix":"Verify the identifier and the active organization, then request it again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","GOVERNANCE_POLL_NOT_OPEN","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","portfolio.polls.SIGNING_PENDING"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXTERNAL_TOKEN_REGISTRATION_REJECTED","GOVERNANCE_BALLOT_REJECTED","UNPROCESSABLE_ENTITY","USER_ASSETS_METADATA_KEY_INVALID"]}},"required":["code"]}],"examples":[{"code":"EXTERNAL_TOKEN_REGISTRATION_REJECTED","status":422,"message":"The external token wasn't registered","data":{"id":"DALP-0736","why":"The address did not pass on-chain ERC-20 metadata verification, or it is already registered.","fix":"Check that the address exposes name, symbol, and decimals on this chain, and that it is not registered already.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["GOVERNANCE_BALLOT_RATE_LIMITED","TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","PORTFOLIO_HOLDINGS_PROJECTION_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","GOVERNANCE_STATE_UNAVAILABLE","PORTFOLIO_PERSISTENCE_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","portfolio.http.WRITE_OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one token's unrealized P&L for the authenticated caller, bucketed by the `preset` interval. Each point values the held quantity at the token's resolved base-currency price minus cost basis as of that bucket. Send `tokenAddress` and `preset`. Repeating the request is safe.","summary":"Read unrealized P&L over time","x-dalp-auth":"session-or-api-key"}},"/api/v2/portfolio/returns":{"get":{"tags":["Accounts and portfolio"],"operationId":"assetPortfolioV2.v2/portfolio/returns/read","parameters":[],"responses":{"200":{"description":"The caller's portfolio yield returns, with a `self` link to this resource.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ReturnsView"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"amounts":{"totalEarned":"4200.00","pendingCollection":"350.00","collected":"3850.00","collectedYtd":"2100.00"},"byType":[{"amounts":{"totalEarned":"4200.00","pendingCollection":"350.00","collected":"3850.00","collectedYtd":"2100.00"},"type":"fixed","percentage":100}],"byAsset":[{"amounts":{"totalEarned":"4200.00","pendingCollection":"350.00","collected":"3850.00","collectedYtd":"2100.00"},"assetAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","assetName":"Northwind Coffee Bond","assetSymbol":"NCB","assetType":"bond","returnType":"fixed","rateBps":500,"nextEventAt":"2026-06-30T08:00:00.000Z","fundingStatus":"covered"}],"upcomingEvents":[{"assetAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","assetName":"Northwind Coffee Bond","assetSymbol":"NCB","returnType":"fixed","label":"Quarterly coupon","eventAt":"2026-06-30T08:00:00.000Z","amount":"350.00"}]},"links":{"self":"/v2/portfolio/returns"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","wire.http.SESSION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIONS_STREAM_ORIGIN_REJECTED","ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIONS_STREAM_ORIGIN_REJECTED","status":403,"message":"Live actions feed requires Console origin","data":{"id":"DALP-0671","why":"The live actions feed carries browser session cookies, and the request origin did not match the Console origin accepted for live updates.","fix":"Refresh the Console and retry the actions view. API clients should call `GET /v2/actions` instead of the stream.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","PORTFOLIO_RESOURCE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"PORTFOLIO_RESOURCE_NOT_FOUND","status":404,"message":"Portfolio resource was not found","data":{"id":"DALP-0733","why":"The requested portfolio resource does not exist in the active organization.","fix":"Verify the identifier and the active organization, then request it again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","GOVERNANCE_POLL_NOT_OPEN","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","portfolio.polls.SIGNING_PENDING"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXTERNAL_TOKEN_REGISTRATION_REJECTED","GOVERNANCE_BALLOT_REJECTED","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"EXTERNAL_TOKEN_REGISTRATION_REJECTED","status":422,"message":"The external token wasn't registered","data":{"id":"DALP-0736","why":"The address did not pass on-chain ERC-20 metadata verification, or it is already registered.","fix":"Check that the address exposes name, symbol, and decimals on this chain, and that it is not registered already.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["GOVERNANCE_BALLOT_RATE_LIMITED","TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","GOVERNANCE_STATE_UNAVAILABLE","PORTFOLIO_PERSISTENCE_FAILED","RETURNS_SNAPSHOT_CONTENTION","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","portfolio.http.WRITE_OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns fixed, dividend, and interest amounts the authenticated caller has earned, collected, or still has pending, grouped by type and by asset. Amounts are in the organization's base currency. There are no query parameters. Repeating the request is safe.","summary":"Read portfolio yield returns","x-dalp-auth":"session-or-api-key"}},"/api/v2/external-tokens":{"get":{"tags":["External tokens"],"operationId":"assetPortfolioV2.v2/externalToken/list","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000}},"allOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"object","properties":{"eq":{"anyOf":[{"type":"string"},{"type":"number"}]},"ne":{"anyOf":[{"type":"string"},{"type":"number"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]}},"additionalProperties":false}]}}]},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"One page of tokens in the organization's external-token registry. `meta.total` counts every matching registration, not only the ones on this page, and `meta.facets` buckets them by `type`.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ExternalTokenView"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","name":"USD Coin","symbol":"USDC","decimals":6,"totalSupply":"25000000","type":"stablecoin","pausable":null,"asOf":"2026-03-04T09:12:39.000Z","externalRegisteredAt":"2026-03-04T09:12:41.000Z","externalRegisteredBy":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"},"externalDetectedInterfaces":["ERC20"],"implementsERC3643":false,"implementsSMART":false,"origin":"auto","dismissed":false,"indexingStatus":"indexed","quarantineReason":null}],"meta":{"total":1},"links":{"self":"/v2/external-tokens?sort=externalRegisteredAt&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/external-tokens?sort=externalRegisteredAt&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/external-tokens?sort=externalRegisteredAt&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","wire.http.SESSION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIONS_STREAM_ORIGIN_REJECTED","ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIONS_STREAM_ORIGIN_REJECTED","status":403,"message":"Live actions feed requires Console origin","data":{"id":"DALP-0671","why":"The live actions feed carries browser session cookies, and the request origin did not match the Console origin accepted for live updates.","fix":"Refresh the Console and retry the actions view. API clients should call `GET /v2/actions` instead of the stream.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","PORTFOLIO_RESOURCE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"PORTFOLIO_RESOURCE_NOT_FOUND","status":404,"message":"Portfolio resource was not found","data":{"id":"DALP-0733","why":"The requested portfolio resource does not exist in the active organization.","fix":"Verify the identifier and the active organization, then request it again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","GOVERNANCE_POLL_NOT_OPEN","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","portfolio.polls.SIGNING_PENDING"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXTERNAL_TOKEN_REGISTRATION_REJECTED","GOVERNANCE_BALLOT_REJECTED","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"EXTERNAL_TOKEN_REGISTRATION_REJECTED","status":422,"message":"The external token wasn't registered","data":{"id":"DALP-0736","why":"The address did not pass on-chain ERC-20 metadata verification, or it is already registered.","fix":"Check that the address exposes name, symbol, and decimals on this chain, and that it is not registered already.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["GOVERNANCE_BALLOT_RATE_LIMITED","TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","GOVERNANCE_STATE_UNAVAILABLE","PORTFOLIO_PERSISTENCE_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","portfolio.http.WRITE_OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of the organization's external-token registry on the active chain, newest registration first. Narrow it to one token with `filter[id]` (equality on the token address; a value that is not an address is refused), to one type with `filter[tokenType]`, or search name, symbol, and address with `filter[q]`. Narrow it by how a token was registered with `filter[origin]` (`manual` or `auto`), and by `filter[dismissed]` (`true` or `false`). `origin` is `auto` when the platform detected the token arriving in a managed wallet and registered it. A dismissed token stays registered, and the platform does not detect it again; registering it by hand brings it back. The organization's holdings, portfolio, holder lists, token catalog, token details, and marks leave it out. Only a caller holding the tokenManager role sees dismissed tokens and `quarantineReason`. `totalSupply` and `pausable` are what the token contract answered when it was registered, and `asOf` says when that read happened (`null` for tokens registered before the time was recorded). `indexingStatus` says whether the indexer tracks the token: `not_indexed` when the organization's system is outside the indexing scope, `catching_up` while the registration or its history is still being indexed, `attention` when indexing failed or the token is quarantined, and `indexed` otherwise. Repeating the request is safe.","summary":"Page registered external tokens","x-dalp-auth":"session-or-api-key"},"post":{"tags":["External tokens"],"operationId":"assetPortfolioV2.v2/externalToken/register","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Accepted registration. A 202 body carries `transactionId` and `statusUrl`. Poll that URL until the token appears in the registry, or until the Canton operation settles.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ExternalTokenRegisterResult"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"txHash":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae","tokenAddress":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"},"meta":{"txHashes":["0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"]},"links":{"self":"/v2/external-tokens"}}},"example-2":{"value":{"data":{"tokenAddress":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"},"meta":{"txHashes":[]},"links":{"self":"/v2/external-tokens"}}},"example-3":{"value":{"data":{"operationId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","submissionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","ledgerSubmissionId":"canton-ledger-sub-1","preparedHashHex":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"},"meta":{"txHashes":[]},"links":{"self":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED","wire.http.SESSION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIONS_STREAM_ORIGIN_REJECTED","ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIONS_STREAM_ORIGIN_REJECTED","status":403,"message":"Live actions feed requires Console origin","data":{"id":"DALP-0671","why":"The live actions feed carries browser session cookies, and the request origin did not match the Console origin accepted for live updates.","fix":"Refresh the Console and retry the actions view. API clients should call `GET /v2/actions` instead of the stream.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","PORTFOLIO_RESOURCE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"PORTFOLIO_RESOURCE_NOT_FOUND","status":404,"message":"Portfolio resource was not found","data":{"id":"DALP-0733","why":"The requested portfolio resource does not exist in the active organization.","fix":"Verify the identifier and the active organization, then request it again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","GOVERNANCE_POLL_NOT_OPEN","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","portfolio.polls.SIGNING_PENDING"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXTERNAL_TOKEN_REGISTRATION_REJECTED","GOVERNANCE_BALLOT_REJECTED","OPERATION_FAMILY_UNSUPPORTED","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"EXTERNAL_TOKEN_REGISTRATION_REJECTED","status":422,"message":"The external token wasn't registered","data":{"id":"DALP-0736","why":"The address did not pass on-chain ERC-20 metadata verification, or it is already registered.","fix":"Check that the address exposes name, symbol, and decimals on this chain, and that it is not registered already.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["GOVERNANCE_BALLOT_RATE_LIMITED","TOO_MANY_REQUESTS","WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","GOVERNANCE_STATE_UNAVAILABLE","PORTFOLIO_PERSISTENCE_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","portfolio.http.WRITE_OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Queues registration of an existing ERC-20 on the active chain. The 202 body carries a `transactionId` and `statusUrl` you poll until the registration is indexed. The contract must expose readable `symbol` and `decimals`, and the organization must not already track the address as an active, hand-registered token. Registering a token the platform detected automatically, or one the organization dismissed, brings it back instead: the token stops being dismissed and takes the requested `tokenType` for this organization. When the organization's system first registered the token on chain under a different type, the same request queues the registry's type update and answers like a registration, with a 202 `transactionId` and `statusUrl`. Otherwise no transaction is queued, and the 200 body returns only `tokenAddress` with empty `txHashes`. Do not submit a second registration until you have read the first attempt's status. When the body names `instrumentAdmin` and `instrumentId` instead of `tokenAddress`, the same route records a Canton instrument's type label in the ledger registry: the command is submitted as the body's `cantonPartyId` party, and the 202 handle reports the operation the same way.","summary":"Queue external-token registration","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExternalTokenRegisterWrite"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/external-tokens/{assetId}/dismissals":{"post":{"tags":["External tokens"],"operationId":"assetPortfolioV2.v2/externalToken/dismiss","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The dismissed registration, with `dismissed` set to `true`.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ExternalTokenView"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","name":"USD Coin","symbol":"USDC","decimals":6,"totalSupply":"25000000","type":"stablecoin","pausable":null,"asOf":"2026-03-04T09:12:39.000Z","externalRegisteredAt":"2026-03-04T09:12:41.000Z","externalRegisteredBy":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"},"externalDetectedInterfaces":["ERC20"],"implementsERC3643":false,"implementsSMART":false,"origin":"auto","dismissed":true,"indexingStatus":"indexed","quarantineReason":null},"links":{"self":"/api/v2/external-tokens/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48/dismissals"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","wire.http.SESSION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIONS_STREAM_ORIGIN_REJECTED","ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","EXTERNAL_TOKEN_MANAGER_REQUIRED","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIONS_STREAM_ORIGIN_REJECTED","status":403,"message":"Live actions feed requires Console origin","data":{"id":"DALP-0671","why":"The live actions feed carries browser session cookies, and the request origin did not match the Console origin accepted for live updates.","fix":"Refresh the Console and retry the actions view. API clients should call `GET /v2/actions` instead of the stream.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","PORTFOLIO_RESOURCE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"PORTFOLIO_RESOURCE_NOT_FOUND","status":404,"message":"Portfolio resource was not found","data":{"id":"DALP-0733","why":"The requested portfolio resource does not exist in the active organization.","fix":"Verify the identifier and the active organization, then request it again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","GOVERNANCE_POLL_NOT_OPEN","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","portfolio.polls.SIGNING_PENDING"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXTERNAL_TOKEN_REGISTRATION_REJECTED","GOVERNANCE_BALLOT_REJECTED","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"EXTERNAL_TOKEN_REGISTRATION_REJECTED","status":422,"message":"The external token wasn't registered","data":{"id":"DALP-0736","why":"The address did not pass on-chain ERC-20 metadata verification, or it is already registered.","fix":"Check that the address exposes name, symbol, and decimals on this chain, and that it is not registered already.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["GOVERNANCE_BALLOT_RATE_LIMITED","TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","GOVERNANCE_STATE_UNAVAILABLE","PORTFOLIO_PERSISTENCE_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","portfolio.http.WRITE_OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Dismisses one token in the organization's external-token registry on the active chain, named by its contract address. Use it for tokens the platform registered automatically that the organization does not want to track. The token stays registered, and the platform does not detect it again. The organization's holdings, portfolio, holder lists, token catalog, token details, and marks leave it out. To bring it back, register it by hand with `POST /api/v2/external-tokens`. The caller needs the tokenManager role on the organization's system; anyone else gets 403. A token the organization never registered answers 404. Dismissing a dismissed token again answers the same view.","summary":"Dismiss an external token","x-dalp-auth":"session-or-api-key"}},"/api/v2/external-tokens/{assetId}":{"patch":{"tags":["External tokens"],"operationId":"assetPortfolioV2.v2/externalToken/update","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"description":"The instrument's own identifier: the Canton instrument id the route acts on, which the body's `instrumentAdmin` completes. A body naming the id as well is refused rather than silently folded onto the path."},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Accepted restatement. A 202 body carries `transactionId` and `statusUrl`; poll that URL until the operation settles.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CantonAddonOperationOutput"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"operationId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","submissionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","ledgerSubmissionId":"canton-ledger-sub-1","preparedHashHex":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"},"meta":{"txHashes":[]},"links":{"self":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","wire.http.SESSION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIONS_STREAM_ORIGIN_REJECTED","ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIONS_STREAM_ORIGIN_REJECTED","status":403,"message":"Live actions feed requires Console origin","data":{"id":"DALP-0671","why":"The live actions feed carries browser session cookies, and the request origin did not match the Console origin accepted for live updates.","fix":"Refresh the Console and retry the actions view. API clients should call `GET /v2/actions` instead of the stream.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","PORTFOLIO_RESOURCE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"PORTFOLIO_RESOURCE_NOT_FOUND","status":404,"message":"Portfolio resource was not found","data":{"id":"DALP-0733","why":"The requested portfolio resource does not exist in the active organization.","fix":"Verify the identifier and the active organization, then request it again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","GOVERNANCE_POLL_NOT_OPEN","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","portfolio.polls.SIGNING_PENDING"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXTERNAL_TOKEN_REGISTRATION_REJECTED","GOVERNANCE_BALLOT_REJECTED","OPERATION_FAMILY_UNSUPPORTED","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"EXTERNAL_TOKEN_REGISTRATION_REJECTED","status":422,"message":"The external token wasn't registered","data":{"id":"DALP-0736","why":"The address did not pass on-chain ERC-20 metadata verification, or it is already registered.","fix":"Check that the address exposes name, symbol, and decimals on this chain, and that it is not registered already.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["GOVERNANCE_BALLOT_RATE_LIMITED","TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","GOVERNANCE_STATE_UNAVAILABLE","PORTFOLIO_PERSISTENCE_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","portfolio.http.WRITE_OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Restates the type label recorded for an external Canton instrument, named by the body's `instrumentAdmin` and the instrument id in the path. The ledger replaces the registration receipt it resolves from the instrument, so a receipt archived out of band makes this refuse rather than guess; that case is a force-deregistration followed by a fresh registration. This route serves Canton alone: a body naming no `instrumentAdmin` answers 422 `OperationFamilyUnsupportedError`.","summary":"Restate a Canton instrument's external-token type","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CantonExternalTokenUpdateInput"}}},"required":true},"x-dalp-auth":"session-or-api-key"},"delete":{"tags":["External tokens"],"operationId":"assetPortfolioV2.v2/externalToken/deregister","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"description":"The instrument's own identifier: the Canton instrument id the route acts on, which the body's `instrumentAdmin` completes. A body naming the id as well is refused rather than silently folded onto the path."},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Accepted deregistration. A 202 body carries `transactionId` and `statusUrl`; poll that URL until the operation settles.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CantonAddonOperationOutput"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"operationId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","submissionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","ledgerSubmissionId":"canton-ledger-sub-1","preparedHashHex":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"},"meta":{"txHashes":[]},"links":{"self":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","wire.http.SESSION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIONS_STREAM_ORIGIN_REJECTED","ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIONS_STREAM_ORIGIN_REJECTED","status":403,"message":"Live actions feed requires Console origin","data":{"id":"DALP-0671","why":"The live actions feed carries browser session cookies, and the request origin did not match the Console origin accepted for live updates.","fix":"Refresh the Console and retry the actions view. API clients should call `GET /v2/actions` instead of the stream.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","PORTFOLIO_RESOURCE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"PORTFOLIO_RESOURCE_NOT_FOUND","status":404,"message":"Portfolio resource was not found","data":{"id":"DALP-0733","why":"The requested portfolio resource does not exist in the active organization.","fix":"Verify the identifier and the active organization, then request it again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","GOVERNANCE_POLL_NOT_OPEN","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","portfolio.polls.SIGNING_PENDING"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXTERNAL_TOKEN_REGISTRATION_REJECTED","GOVERNANCE_BALLOT_REJECTED","OPERATION_FAMILY_UNSUPPORTED","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"EXTERNAL_TOKEN_REGISTRATION_REJECTED","status":422,"message":"The external token wasn't registered","data":{"id":"DALP-0736","why":"The address did not pass on-chain ERC-20 metadata verification, or it is already registered.","fix":"Check that the address exposes name, symbol, and decimals on this chain, and that it is not registered already.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["GOVERNANCE_BALLOT_RATE_LIMITED","TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","GOVERNANCE_STATE_UNAVAILABLE","PORTFOLIO_PERSISTENCE_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","portfolio.http.WRITE_OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Drops an external Canton instrument and archives its registration receipt, both resolved from the instrument named by the body's `instrumentAdmin` and the instrument id in the path. This is the normal removal. When the receipt was archived out of band there is none to resolve, so use the force-removals route instead. This route serves Canton alone: a body naming no `instrumentAdmin` answers 422 `OperationFamilyUnsupportedError`.","summary":"Deregister an external Canton instrument","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CantonExternalTokenDeregisterInput"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/external-tokens/{assetId}/force-removals":{"post":{"tags":["External tokens"],"operationId":"assetPortfolioV2.v2/externalToken/forceDeregister","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"description":"The instrument's own identifier: the Canton instrument id the route acts on, which the body's `instrumentAdmin` completes. A body naming the id as well is refused rather than silently folded onto the path."},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Accepted force-deregistration. A 202 body carries `transactionId` and `statusUrl`; poll that URL until the operation settles.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CantonAddonOperationOutput"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"operationId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","submissionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","ledgerSubmissionId":"canton-ledger-sub-1","preparedHashHex":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"},"meta":{"txHashes":[]},"links":{"self":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","wire.http.SESSION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIONS_STREAM_ORIGIN_REJECTED","ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIONS_STREAM_ORIGIN_REJECTED","status":403,"message":"Live actions feed requires Console origin","data":{"id":"DALP-0671","why":"The live actions feed carries browser session cookies, and the request origin did not match the Console origin accepted for live updates.","fix":"Refresh the Console and retry the actions view. API clients should call `GET /v2/actions` instead of the stream.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","PORTFOLIO_RESOURCE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"PORTFOLIO_RESOURCE_NOT_FOUND","status":404,"message":"Portfolio resource was not found","data":{"id":"DALP-0733","why":"The requested portfolio resource does not exist in the active organization.","fix":"Verify the identifier and the active organization, then request it again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","GOVERNANCE_POLL_NOT_OPEN","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","portfolio.polls.SIGNING_PENDING"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXTERNAL_TOKEN_REGISTRATION_REJECTED","GOVERNANCE_BALLOT_REJECTED","OPERATION_FAMILY_UNSUPPORTED","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"EXTERNAL_TOKEN_REGISTRATION_REJECTED","status":422,"message":"The external token wasn't registered","data":{"id":"DALP-0736","why":"The address did not pass on-chain ERC-20 metadata verification, or it is already registered.","fix":"Check that the address exposes name, symbol, and decimals on this chain, and that it is not registered already.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["GOVERNANCE_BALLOT_RATE_LIMITED","TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","GOVERNANCE_STATE_UNAVAILABLE","PORTFOLIO_PERSISTENCE_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","portfolio.http.WRITE_OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Drops an external-token registry entry whose registration receipt is already gone, named by the body's `instrumentAdmin` and the instrument id in the path. It archives nothing, so a receipt the platform can still resolve makes this refuse with 409 and name that contract id: deregister through the removal route instead, which archives it. This route serves Canton alone: a body naming no `instrumentAdmin` answers 422 `OperationFamilyUnsupportedError`.","summary":"Force-deregister an external Canton instrument","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CantonExternalTokenForceDeregisterInput"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/accounts":{"get":{"tags":["Accounts and portfolio"],"operationId":"assetPortfolioV2.v2/account/list","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"chainId":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"string"}]},{"type":"object","properties":{"eq":{"anyOf":[{"type":"number"},{"type":"string"}]},"ne":{"anyOf":[{"type":"number"},{"type":"string"}]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"anyOf":[{"type":"number"},{"type":"string"}]},"gte":{"anyOf":[{"type":"number"},{"type":"string"}]},"lt":{"anyOf":[{"type":"number"},{"type":"string"}]},"lte":{"anyOf":[{"type":"number"},{"type":"string"}]},"between":{"type":"string","maxLength":64}},"additionalProperties":false}]},"entityType":{"anyOf":[{"type":"string","enum":["eoa","asset","bond","equity","fund","deposit","stablecoin","real-estate","precious-metal","system","smart-account","operator-wallet","contract"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"One page of indexed accounts. `meta.total` counts every matching account, not only this page. `links.prev` and `links.next` are null at the ends of the collection.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/AccountView"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"chainId":11155111,"address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","entityType":"eoa","contractName":null,"nativeBalance":"2500000000000000000","nativeBalanceObservedAtBlock":"8923411","nativeBalanceObservedAt":"2026-03-15T09:12:41.000Z","funding":{"role":"signer","measure":"native","measuredWei":"2500000000000000000","lowMarkWei":"100000000000000000","status":"healthy"}}],"meta":{"total":1,"facets":{}},"links":{"self":"/v2/accounts?sort=-firstSeenBlock&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/accounts?sort=-firstSeenBlock&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/accounts?sort=-firstSeenBlock&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","wire.http.SESSION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIONS_STREAM_ORIGIN_REJECTED","ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIONS_STREAM_ORIGIN_REJECTED","status":403,"message":"Live actions feed requires Console origin","data":{"id":"DALP-0671","why":"The live actions feed carries browser session cookies, and the request origin did not match the Console origin accepted for live updates.","fix":"Refresh the Console and retry the actions view. API clients should call `GET /v2/actions` instead of the stream.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","PORTFOLIO_RESOURCE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"PORTFOLIO_RESOURCE_NOT_FOUND","status":404,"message":"Portfolio resource was not found","data":{"id":"DALP-0733","why":"The requested portfolio resource does not exist in the active organization.","fix":"Verify the identifier and the active organization, then request it again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","GOVERNANCE_POLL_NOT_OPEN","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","portfolio.polls.SIGNING_PENDING"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXTERNAL_TOKEN_REGISTRATION_REJECTED","GOVERNANCE_BALLOT_REJECTED","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"EXTERNAL_TOKEN_REGISTRATION_REJECTED","status":422,"message":"The external token wasn't registered","data":{"id":"DALP-0736","why":"The address did not pass on-chain ERC-20 metadata verification, or it is already registered.","fix":"Check that the address exposes name, symbol, and decimals on this chain, and that it is not registered already.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["GOVERNANCE_BALLOT_RATE_LIMITED","TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","GOVERNANCE_STATE_UNAVAILABLE","PORTFOLIO_PERSISTENCE_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","portfolio.http.WRITE_OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of indexed accounts and their native-gas balances on the active chain. Paging uses `page[limit]` (default 50, maximum 200) and `page[offset]`. Default sort is newest first-seen block descending. Filter on `chainId`, `entityType`, or native-balance fields. Repeating the request is safe.","summary":"Page indexed accounts","x-dalp-auth":"session-or-api-key"}},"/api/v2/accounts/{chainId}/{address}":{"get":{"tags":["Accounts and portfolio"],"operationId":"assetPortfolioV2.v2/account/byAddress","parameters":[{"name":"chainId","in":"path","schema":{"type":"integer","exclusiveMinimum":0,"description":"EVM chain identifier.","examples":[11155111]},"required":true},{"name":"address","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true}],"responses":{"200":{"description":"The requested account and links to this resource and its native-balance history. `data` is the latest indexed observation.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/AccountView"},"links":{"type":"object","properties":{"self":{"type":"string"},"history":{"type":"string"}},"required":["self","history"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"chainId":11155111,"address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","entityType":"eoa","contractName":null,"nativeBalance":"2500000000000000000","nativeBalanceObservedAtBlock":"8923411","nativeBalanceObservedAt":"2026-03-15T09:12:41.000Z","funding":{"role":"signer","measure":"native","measuredWei":"2500000000000000000","lowMarkWei":"100000000000000000","status":"healthy"}},"links":{"self":"/v2/accounts/11155111/0x71C7656EC7ab88b098defB751B7401B5f6d8976F","history":"/v2/accounts/11155111/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/native-balance/history"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","wire.http.SESSION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIONS_STREAM_ORIGIN_REJECTED","ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIONS_STREAM_ORIGIN_REJECTED","status":403,"message":"Live actions feed requires Console origin","data":{"id":"DALP-0671","why":"The live actions feed carries browser session cookies, and the request origin did not match the Console origin accepted for live updates.","fix":"Refresh the Console and retry the actions view. API clients should call `GET /v2/actions` instead of the stream.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","PORTFOLIO_RESOURCE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"PORTFOLIO_RESOURCE_NOT_FOUND","status":404,"message":"Portfolio resource was not found","data":{"id":"DALP-0733","why":"The requested portfolio resource does not exist in the active organization.","fix":"Verify the identifier and the active organization, then request it again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","GOVERNANCE_POLL_NOT_OPEN","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","portfolio.polls.SIGNING_PENDING"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXTERNAL_TOKEN_REGISTRATION_REJECTED","GOVERNANCE_BALLOT_REJECTED","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"EXTERNAL_TOKEN_REGISTRATION_REJECTED","status":422,"message":"The external token wasn't registered","data":{"id":"DALP-0736","why":"The address did not pass on-chain ERC-20 metadata verification, or it is already registered.","fix":"Check that the address exposes name, symbol, and decimals on this chain, and that it is not registered already.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["GOVERNANCE_BALLOT_RATE_LIMITED","TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","GOVERNANCE_STATE_UNAVAILABLE","PORTFOLIO_PERSISTENCE_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","portfolio.http.WRITE_OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the indexed native-gas balance for the account named by `chainId` and `address`. The path chain must match the organization's active chain or the platform answers 409. An address the indexer has not seen answers 404. Repeating the request is safe.","summary":"Read one indexed account","x-dalp-auth":"session-or-api-key"}},"/api/v2/accounts/{chainId}/{address}/native-balance/history":{"get":{"tags":["Accounts and portfolio"],"operationId":"assetPortfolioV2.v2/account/nativeBalanceHistory","parameters":[{"name":"chainId","in":"path","schema":{"type":"integer","exclusiveMinimum":0,"description":"EVM chain identifier.","examples":[11155111]},"required":true},{"name":"address","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000}},"allOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"object","properties":{"eq":{"anyOf":[{"type":"string"},{"type":"number"}]},"ne":{"anyOf":[{"type":"string"},{"type":"number"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]}},"additionalProperties":false}]}}]},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"One page of native-gas observations for the account, newest block first.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/NativeBalanceObservation"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"11155111:0x71c7656ec7ab88b098defb751b7401b5f6d8976f:8923411","chainId":11155111,"address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","nativeBalance":"2500000000000000000","nativeBalanceObservedAtBlock":"8923411","nativeBalanceObservedAt":"2026-03-15T09:12:41.000Z"}],"meta":{"total":1,"facets":{}},"links":{"self":"/v2/accounts/11155111/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/native-balance/history?filter%5Bsince%5D=8900000&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/accounts/11155111/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/native-balance/history?filter%5Bsince%5D=8900000&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/accounts/11155111/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/native-balance/history?filter%5Bsince%5D=8900000&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","wire.http.SESSION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIONS_STREAM_ORIGIN_REJECTED","ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIONS_STREAM_ORIGIN_REJECTED","status":403,"message":"Live actions feed requires Console origin","data":{"id":"DALP-0671","why":"The live actions feed carries browser session cookies, and the request origin did not match the Console origin accepted for live updates.","fix":"Refresh the Console and retry the actions view. API clients should call `GET /v2/actions` instead of the stream.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","PORTFOLIO_RESOURCE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"PORTFOLIO_RESOURCE_NOT_FOUND","status":404,"message":"Portfolio resource was not found","data":{"id":"DALP-0733","why":"The requested portfolio resource does not exist in the active organization.","fix":"Verify the identifier and the active organization, then request it again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","GOVERNANCE_POLL_NOT_OPEN","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","portfolio.polls.SIGNING_PENDING"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXTERNAL_TOKEN_REGISTRATION_REJECTED","GOVERNANCE_BALLOT_REJECTED","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"EXTERNAL_TOKEN_REGISTRATION_REJECTED","status":422,"message":"The external token wasn't registered","data":{"id":"DALP-0736","why":"The address did not pass on-chain ERC-20 metadata verification, or it is already registered.","fix":"Check that the address exposes name, symbol, and decimals on this chain, and that it is not registered already.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["GOVERNANCE_BALLOT_RATE_LIMITED","TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","GOVERNANCE_STATE_UNAVAILABLE","PORTFOLIO_PERSISTENCE_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","portfolio.http.WRITE_OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns observed native-gas balances for one account, newest observation first. `filter[since]` is optional and `page[limit]` cannot exceed 100. History is retained only for the configured window. The path chain must match the active chain. Repeating the request is safe.","summary":"List native-balance history","x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/governance/proposals":{"get":{"tags":["Governance"],"operationId":"governanceV2.v2/governance/proposals/list","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000},"token":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"status":{"anyOf":[{"type":"string","enum":["pending","active","succeeded","defeated","queued","executed","canceled"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"mode":{"anyOf":[{"type":"string","enum":["binary","multiOption"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"proposer":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"deadlineAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"createdAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"One page of token-governor proposals. `meta.total` counts every matching proposal, not only this page.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ProposalListRow"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"42","governorAddress":"0x5FbDB2315678afecb367f032d93F642f64180aa3","timelockAddress":"0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512","tokenAddress":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","votesSourceAddress":"0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0","proposer":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","status":"active","mode":"binary","optionCount":null,"title":"Extend the Series A coupon window","description":"Holders vote whether to extend the next coupon payment by 30 days.","createdExternally":false,"snapshotAt":"2026-03-16T08:00:00.000Z","deadlineAt":"2026-03-23T08:00:00.000Z","etaAt":null,"quorumBps":1000,"approvalThresholdBps":7500,"votingPeriodSeconds":604800,"executionDelaySeconds":172800,"forVotes":"125000000000000000000000","againstVotes":"0","abstainVotes":"0","totalBallots":"1","optionTallies":null,"createdAt":"2026-03-15T09:12:41.000Z","executedAt":null,"canceledAt":null}],"meta":{"total":1},"links":{"self":"/v2/addons/governance/proposals?sort=createdAt&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/addons/governance/proposals?sort=createdAt&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/addons/governance/proposals?sort=createdAt&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIONS_STREAM_ORIGIN_REJECTED","ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIONS_STREAM_ORIGIN_REJECTED","status":403,"message":"Live actions feed requires Console origin","data":{"id":"DALP-0671","why":"The live actions feed carries browser session cookies, and the request origin did not match the Console origin accepted for live updates.","fix":"Refresh the Console and retry the actions view. API clients should call `GET /v2/actions` instead of the stream.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","PORTFOLIO_RESOURCE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"PORTFOLIO_RESOURCE_NOT_FOUND","status":404,"message":"Portfolio resource was not found","data":{"id":"DALP-0733","why":"The requested portfolio resource does not exist in the active organization.","fix":"Verify the identifier and the active organization, then request it again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","GOVERNANCE_POLL_NOT_OPEN","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","portfolio.polls.SIGNING_PENDING"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXTERNAL_TOKEN_REGISTRATION_REJECTED","GOVERNANCE_BALLOT_REJECTED","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"EXTERNAL_TOKEN_REGISTRATION_REJECTED","status":422,"message":"The external token wasn't registered","data":{"id":"DALP-0736","why":"The address did not pass on-chain ERC-20 metadata verification, or it is already registered.","fix":"Check that the address exposes name, symbol, and decimals on this chain, and that it is not registered already.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["GOVERNANCE_BALLOT_RATE_LIMITED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","GOVERNANCE_STATE_UNAVAILABLE","PORTFOLIO_PERSISTENCE_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","portfolio.http.WRITE_OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of proposals across the organization's token governors. Set `scope=held` to include only tokens held by the authenticated participant in the active organization and chain. Default sort is `createdAt`. Filter by `token`, `status`, `mode`, `proposer`, or `deadlineAt`. The collection is indexed state, so a newly created proposal appears after the create transaction is indexed. Repeating the request is safe.","summary":"List governance proposals","x-dalp-auth":"session-or-api-key"},"post":{"tags":["Governance"],"operationId":"governanceV2.v2/governance/proposals/create","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Accepted governance write. A 202 body carries `transactionId` and `statusUrl`. Poll that URL until the write is indexed.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/GovernanceCreateSettledData"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"transactionHash":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae","governorAddress":"0x5FbDB2315678afecb367f032d93F642f64180aa3","timelockAddress":"0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512","proposalId":"42"},"meta":{"txHashes":["0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"]},"links":{"self":"/v2/addons/governance/proposals"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIONS_STREAM_ORIGIN_REJECTED","ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIONS_STREAM_ORIGIN_REJECTED","status":403,"message":"Live actions feed requires Console origin","data":{"id":"DALP-0671","why":"The live actions feed carries browser session cookies, and the request origin did not match the Console origin accepted for live updates.","fix":"Refresh the Console and retry the actions view. API clients should call `GET /v2/actions` instead of the stream.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","PORTFOLIO_RESOURCE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"PORTFOLIO_RESOURCE_NOT_FOUND","status":404,"message":"Portfolio resource was not found","data":{"id":"DALP-0733","why":"The requested portfolio resource does not exist in the active organization.","fix":"Verify the identifier and the active organization, then request it again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","GOVERNANCE_POLL_NOT_OPEN","GOVERNANCE_TIMELOCK_MISSING_ROLE","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","portfolio.polls.SIGNING_PENDING"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXTERNAL_TOKEN_REGISTRATION_REJECTED","GOVERNANCE_ACTION_NOT_IN_CATALOG","GOVERNANCE_BALLOT_REJECTED","OPERATION_FAMILY_UNSUPPORTED","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"EXTERNAL_TOKEN_REGISTRATION_REJECTED","status":422,"message":"The external token wasn't registered","data":{"id":"DALP-0736","why":"The address did not pass on-chain ERC-20 metadata verification, or it is already registered.","fix":"Check that the address exposes name, symbol, and decimals on this chain, and that it is not registered already.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["GOVERNANCE_BALLOT_RATE_LIMITED","WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","GOVERNANCE_STATE_UNAVAILABLE","PORTFOLIO_PERSISTENCE_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","portfolio.http.WRITE_OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Queues a new proposal on the token's governor. Binary proposals may carry executable actions; multi-option proposals are resolution-only and require at least two options. The 202 body carries a `statusUrl` you poll until the proposal is indexed. Do not submit a second create until you have read the first attempt's status. A body that carries `instrumentAdmin` is a Canton proposal instead: it names its configuration by the contract id a platform read returned and submits `Proposal_Create` as the party wallet in the body.","summary":"Create a governance proposal","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GovernanceProposalCreate"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/governance/governors/{governorAddress}/proposals/{proposalId}":{"get":{"tags":["Governance"],"operationId":"governanceV2.v2/governance/proposals/read","parameters":[{"name":"governorAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"name":"proposalId","in":"path","schema":{"type":"string","minLength":1,"maxLength":78,"pattern":"^\\d+$"},"required":true}],"responses":{"200":{"description":"The requested proposal including targets, calldata, documents, and option labels, with a `self` link.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ProposalView"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"42","governorAddress":"0x5FbDB2315678afecb367f032d93F642f64180aa3","timelockAddress":"0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512","tokenAddress":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","votesSourceAddress":"0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0","proposer":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","status":"active","mode":"binary","optionCount":null,"title":"Extend the Series A coupon window","description":"Holders vote whether to extend the next coupon payment by 30 days.","createdExternally":false,"snapshotAt":"2026-03-16T08:00:00.000Z","deadlineAt":"2026-03-23T08:00:00.000Z","etaAt":null,"quorumBps":1000,"approvalThresholdBps":7500,"votingPeriodSeconds":604800,"executionDelaySeconds":172800,"forVotes":"125000000000000000000000","againstVotes":"0","abstainVotes":"0","totalBallots":"1","optionTallies":null,"createdAt":"2026-03-15T09:12:41.000Z","executedAt":null,"canceledAt":null,"targets":[],"values":[],"calldatas":[],"descriptionHash":"0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","descriptionRichText":"<p>Holders vote whether to extend the next coupon payment by 30 days.</p>","documents":null,"options":null,"supersedesProposalId":null,"snapshotTotalVotingUnits":"500000000000000000000000","quorumVotes":"50000000000000000000000","approvalVotes":"93750000000000000000000"},"links":{"self":"/v2/addons/governance/governors/0x5FbDB2315678afecb367f032d93F642f64180aa3/proposals/42"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIONS_STREAM_ORIGIN_REJECTED","ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIONS_STREAM_ORIGIN_REJECTED","status":403,"message":"Live actions feed requires Console origin","data":{"id":"DALP-0671","why":"The live actions feed carries browser session cookies, and the request origin did not match the Console origin accepted for live updates.","fix":"Refresh the Console and retry the actions view. API clients should call `GET /v2/actions` instead of the stream.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","PORTFOLIO_RESOURCE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"PORTFOLIO_RESOURCE_NOT_FOUND","status":404,"message":"Portfolio resource was not found","data":{"id":"DALP-0733","why":"The requested portfolio resource does not exist in the active organization.","fix":"Verify the identifier and the active organization, then request it again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","GOVERNANCE_POLL_NOT_OPEN","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","portfolio.polls.SIGNING_PENDING"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXTERNAL_TOKEN_REGISTRATION_REJECTED","GOVERNANCE_BALLOT_REJECTED","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"EXTERNAL_TOKEN_REGISTRATION_REJECTED","status":422,"message":"The external token wasn't registered","data":{"id":"DALP-0736","why":"The address did not pass on-chain ERC-20 metadata verification, or it is already registered.","fix":"Check that the address exposes name, symbol, and decimals on this chain, and that it is not registered already.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["GOVERNANCE_BALLOT_RATE_LIMITED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","GOVERNANCE_STATE_UNAVAILABLE","PORTFOLIO_PERSISTENCE_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","portfolio.http.WRITE_OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one proposal including targets, calldata, documents, and option labels. `proposalId` is the on-chain uint256 as a decimal string. A proposal that is not indexed on this governor answers 404. Repeating the request is safe.","summary":"Read a governance proposal","x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/governance/governors/{governorAddress}/proposals/{proposalId}/ballots":{"get":{"tags":["Governance"],"operationId":"governanceV2.v2/governance/proposals/ballots","parameters":[{"name":"governorAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"name":"proposalId","in":"path","schema":{"type":"string","minLength":1,"maxLength":78,"pattern":"^\\d+$"},"required":true},{"name":"filter","in":"query","schema":{"type":"object","properties":{"voter":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"castAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"One page of ballots cast on the named proposal. Each row is one voter's support or option and weight.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ProposalBallot"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"voter":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","support":"for","optionIndex":null,"weight":"125000000000000000000000","reason":"Extending the coupon window matches the harvest calendar.","castAt":"2026-03-16T10:04:12.000Z","transactionHash":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"}],"meta":{"total":1},"links":{"self":"/v2/addons/governance/governors/0x5FbDB2315678afecb367f032d93F642f64180aa3/proposals/42/ballots?sort=castAt&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/addons/governance/governors/0x5FbDB2315678afecb367f032d93F642f64180aa3/proposals/42/ballots?sort=castAt&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/addons/governance/governors/0x5FbDB2315678afecb367f032d93F642f64180aa3/proposals/42/ballots?sort=castAt&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIONS_STREAM_ORIGIN_REJECTED","ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIONS_STREAM_ORIGIN_REJECTED","status":403,"message":"Live actions feed requires Console origin","data":{"id":"DALP-0671","why":"The live actions feed carries browser session cookies, and the request origin did not match the Console origin accepted for live updates.","fix":"Refresh the Console and retry the actions view. API clients should call `GET /v2/actions` instead of the stream.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","PORTFOLIO_RESOURCE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"PORTFOLIO_RESOURCE_NOT_FOUND","status":404,"message":"Portfolio resource was not found","data":{"id":"DALP-0733","why":"The requested portfolio resource does not exist in the active organization.","fix":"Verify the identifier and the active organization, then request it again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","GOVERNANCE_POLL_NOT_OPEN","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","portfolio.polls.SIGNING_PENDING"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXTERNAL_TOKEN_REGISTRATION_REJECTED","GOVERNANCE_BALLOT_REJECTED","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"EXTERNAL_TOKEN_REGISTRATION_REJECTED","status":422,"message":"The external token wasn't registered","data":{"id":"DALP-0736","why":"The address did not pass on-chain ERC-20 metadata verification, or it is already registered.","fix":"Check that the address exposes name, symbol, and decimals on this chain, and that it is not registered already.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["GOVERNANCE_BALLOT_RATE_LIMITED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","GOVERNANCE_STATE_UNAVAILABLE","PORTFOLIO_PERSISTENCE_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","portfolio.http.WRITE_OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of ballots cast on the named proposal. Each row is one voter's support or option, weight, optional reason, and transaction hash. Repeating the request is safe.","summary":"List proposal ballots","x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/governance/governors/{governorAddress}/proposals/{proposalId}/export":{"get":{"tags":["Governance"],"operationId":"governanceV2.v2/governance/proposals/export","parameters":[{"name":"governorAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"name":"proposalId","in":"path","schema":{"type":"string","minLength":1,"maxLength":78,"pattern":"^\\d+$"},"required":true}],"responses":{"200":{"description":"CSV of every ballot on the named proposal, with a `self` link.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ProposalExport"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"filename":"proposal-42-ballots.csv","contentType":"text/csv","csv":"voter,support,weight,transactionHash\n0x71C7656EC7ab88b098defB751B7401B5f6d8976F,for,125000,0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae\n"},"links":{"self":"/v2/addons/governance/governors/0x5FbDB2315678afecb367f032d93F642f64180aa3/proposals/42/export"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIONS_STREAM_ORIGIN_REJECTED","ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIONS_STREAM_ORIGIN_REJECTED","status":403,"message":"Live actions feed requires Console origin","data":{"id":"DALP-0671","why":"The live actions feed carries browser session cookies, and the request origin did not match the Console origin accepted for live updates.","fix":"Refresh the Console and retry the actions view. API clients should call `GET /v2/actions` instead of the stream.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","PORTFOLIO_RESOURCE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"PORTFOLIO_RESOURCE_NOT_FOUND","status":404,"message":"Portfolio resource was not found","data":{"id":"DALP-0733","why":"The requested portfolio resource does not exist in the active organization.","fix":"Verify the identifier and the active organization, then request it again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","GOVERNANCE_POLL_NOT_OPEN","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","portfolio.polls.SIGNING_PENDING"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXTERNAL_TOKEN_REGISTRATION_REJECTED","GOVERNANCE_BALLOT_REJECTED","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"EXTERNAL_TOKEN_REGISTRATION_REJECTED","status":422,"message":"The external token wasn't registered","data":{"id":"DALP-0736","why":"The address did not pass on-chain ERC-20 metadata verification, or it is already registered.","fix":"Check that the address exposes name, symbol, and decimals on this chain, and that it is not registered already.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["GOVERNANCE_BALLOT_RATE_LIMITED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","GOVERNANCE_STATE_UNAVAILABLE","PORTFOLIO_PERSISTENCE_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","portfolio.http.WRITE_OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns a CSV of every ballot on the named proposal. Use this for an audit export rather than paging the ballots collection. Repeating the request is safe and does not change votes.","summary":"Export proposal ballots as CSV","x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/governance/votes":{"post":{"tags":["Governance"],"operationId":"governanceV2.v2/governance/votes/cast","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Accepted governance write. A 202 body carries `transactionId` and `statusUrl`. Poll that URL until the write is indexed.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/GovernanceLifecycleSettledData"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"transactionHash":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae","proposalId":"42"},"meta":{"txHashes":["0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"]},"links":{"self":"/v2/addons/governance/votes"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIONS_STREAM_ORIGIN_REJECTED","ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIONS_STREAM_ORIGIN_REJECTED","status":403,"message":"Live actions feed requires Console origin","data":{"id":"DALP-0671","why":"The live actions feed carries browser session cookies, and the request origin did not match the Console origin accepted for live updates.","fix":"Refresh the Console and retry the actions view. API clients should call `GET /v2/actions` instead of the stream.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","PORTFOLIO_RESOURCE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"PORTFOLIO_RESOURCE_NOT_FOUND","status":404,"message":"Portfolio resource was not found","data":{"id":"DALP-0733","why":"The requested portfolio resource does not exist in the active organization.","fix":"Verify the identifier and the active organization, then request it again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","GOVERNANCE_POLL_NOT_OPEN","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","portfolio.polls.SIGNING_PENDING"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXTERNAL_TOKEN_REGISTRATION_REJECTED","GOVERNANCE_BALLOT_REJECTED","OPERATION_FAMILY_UNSUPPORTED","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"EXTERNAL_TOKEN_REGISTRATION_REJECTED","status":422,"message":"The external token wasn't registered","data":{"id":"DALP-0736","why":"The address did not pass on-chain ERC-20 metadata verification, or it is already registered.","fix":"Check that the address exposes name, symbol, and decimals on this chain, and that it is not registered already.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["GOVERNANCE_BALLOT_RATE_LIMITED","WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","GOVERNANCE_STATE_UNAVAILABLE","PORTFOLIO_PERSISTENCE_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","portfolio.http.WRITE_OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Queues a vote on an active proposal. Send `support` for a binary proposal or `optionIndex` for a multi-option proposal, never both. A voter with zero snapshot weight or a proposal that is not in the voting window is rejected. Poll the 202 `statusUrl` before you submit another vote on the same proposal. A body that carries `instrumentAdmin` is a Canton ballot instead: it names the proposal and the voting-power record by their contract ids and submits `Proposal_Vote` as the party wallet in the body.","summary":"Cast a governance vote","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GovernanceVoteCast"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/governance/queue-operations":{"post":{"tags":["Governance"],"operationId":"governanceV2.v2/governance/proposals/queue","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Accepted governance write. A 202 body carries `transactionId` and `statusUrl`. Poll that URL until the write is indexed.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/GovernanceLifecycleSettledData"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"transactionHash":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae","proposalId":"42"},"meta":{"txHashes":["0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"]},"links":{"self":"/v2/addons/governance/votes"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIONS_STREAM_ORIGIN_REJECTED","ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIONS_STREAM_ORIGIN_REJECTED","status":403,"message":"Live actions feed requires Console origin","data":{"id":"DALP-0671","why":"The live actions feed carries browser session cookies, and the request origin did not match the Console origin accepted for live updates.","fix":"Refresh the Console and retry the actions view. API clients should call `GET /v2/actions` instead of the stream.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","PORTFOLIO_RESOURCE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"PORTFOLIO_RESOURCE_NOT_FOUND","status":404,"message":"Portfolio resource was not found","data":{"id":"DALP-0733","why":"The requested portfolio resource does not exist in the active organization.","fix":"Verify the identifier and the active organization, then request it again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","GOVERNANCE_POLL_NOT_OPEN","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","portfolio.polls.SIGNING_PENDING"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXTERNAL_TOKEN_REGISTRATION_REJECTED","GOVERNANCE_BALLOT_REJECTED","OPERATION_FAMILY_UNSUPPORTED","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"EXTERNAL_TOKEN_REGISTRATION_REJECTED","status":422,"message":"The external token wasn't registered","data":{"id":"DALP-0736","why":"The address did not pass on-chain ERC-20 metadata verification, or it is already registered.","fix":"Check that the address exposes name, symbol, and decimals on this chain, and that it is not registered already.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["GOVERNANCE_BALLOT_RATE_LIMITED","WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","GOVERNANCE_STATE_UNAVAILABLE","PORTFOLIO_PERSISTENCE_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","portfolio.http.WRITE_OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Queues a succeeded proposal into the timelock. The proposal must already have passed its vote and must not already be queued, executed, or canceled. Poll the 202 `statusUrl` before you send execute. A Canton body closes the proposal's vote with the snapshot supply it passes and submits `Proposal_CloseVote` as the party wallet in the body.","summary":"Queue a succeeded proposal","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GovernanceProposalQueue"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/governance/executions":{"post":{"tags":["Governance"],"operationId":"governanceV2.v2/governance/proposals/execute","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Accepted governance write. A 202 body carries `transactionId` and `statusUrl`. Poll that URL until the write is indexed.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/GovernanceLifecycleSettledData"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"transactionHash":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae","proposalId":"42"},"meta":{"txHashes":["0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"]},"links":{"self":"/v2/addons/governance/votes"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIONS_STREAM_ORIGIN_REJECTED","ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIONS_STREAM_ORIGIN_REJECTED","status":403,"message":"Live actions feed requires Console origin","data":{"id":"DALP-0671","why":"The live actions feed carries browser session cookies, and the request origin did not match the Console origin accepted for live updates.","fix":"Refresh the Console and retry the actions view. API clients should call `GET /v2/actions` instead of the stream.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","PORTFOLIO_RESOURCE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"PORTFOLIO_RESOURCE_NOT_FOUND","status":404,"message":"Portfolio resource was not found","data":{"id":"DALP-0733","why":"The requested portfolio resource does not exist in the active organization.","fix":"Verify the identifier and the active organization, then request it again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","GOVERNANCE_POLL_NOT_OPEN","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","portfolio.polls.SIGNING_PENDING"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXTERNAL_TOKEN_REGISTRATION_REJECTED","GOVERNANCE_BALLOT_REJECTED","OPERATION_FAMILY_UNSUPPORTED","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"EXTERNAL_TOKEN_REGISTRATION_REJECTED","status":422,"message":"The external token wasn't registered","data":{"id":"DALP-0736","why":"The address did not pass on-chain ERC-20 metadata verification, or it is already registered.","fix":"Check that the address exposes name, symbol, and decimals on this chain, and that it is not registered already.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["GOVERNANCE_BALLOT_RATE_LIMITED","WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","GOVERNANCE_STATE_UNAVAILABLE","PORTFOLIO_PERSISTENCE_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","portfolio.http.WRITE_OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Queues execution of a proposal whose timelock delay has elapsed. The proposal must be in the queued state. Poll the 202 `statusUrl` until the execute transaction is indexed. A Canton body executes the proposal under the execution capability its body names, as the party wallet in the body.","summary":"Execute a queued proposal","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GovernanceProposalExecute"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/governance/configurations":{"post":{"tags":["Governance"],"operationId":"governanceV2.v2/governance/configurations/create","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled Canton addon write (HTTP 200). The operation id is also the submission id, so the status URL resolves under the same id.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CantonAddonOperationOutput"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"operationId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","submissionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","ledgerSubmissionId":"canton-ledger-sub-1","preparedHashHex":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","contractId":"00a1b2c3d4e5f60718293a4b5c6d7e8f90a1b2c3d4e5f60718293a4b5c6d7e8f90"},"meta":{"txHashes":["0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIONS_STREAM_ORIGIN_REJECTED","ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIONS_STREAM_ORIGIN_REJECTED","status":403,"message":"Live actions feed requires Console origin","data":{"id":"DALP-0671","why":"The live actions feed carries browser session cookies, and the request origin did not match the Console origin accepted for live updates.","fix":"Refresh the Console and retry the actions view. API clients should call `GET /v2/actions` instead of the stream.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","PORTFOLIO_RESOURCE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"PORTFOLIO_RESOURCE_NOT_FOUND","status":404,"message":"Portfolio resource was not found","data":{"id":"DALP-0733","why":"The requested portfolio resource does not exist in the active organization.","fix":"Verify the identifier and the active organization, then request it again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","GOVERNANCE_POLL_NOT_OPEN","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","portfolio.polls.SIGNING_PENDING"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXTERNAL_TOKEN_REGISTRATION_REJECTED","GOVERNANCE_BALLOT_REJECTED","OPERATION_FAMILY_UNSUPPORTED","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"EXTERNAL_TOKEN_REGISTRATION_REJECTED","status":422,"message":"The external token wasn't registered","data":{"id":"DALP-0736","why":"The address did not pass on-chain ERC-20 metadata verification, or it is already registered.","fix":"Check that the address exposes name, symbol, and decimals on this chain, and that it is not registered already.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["GOVERNANCE_BALLOT_RATE_LIMITED","WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","GOVERNANCE_STATE_UNAVAILABLE","PORTFOLIO_PERSISTENCE_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","portfolio.http.WRITE_OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Opens a Canton governance configuration on an instrument: the quorum its proposals need, the window voting runs for, and the execution timelock. It creates `GovernanceConfig` as the party wallet in the body and answers with the id of the contract it created, which every later proposal then names. This route serves Canton configurations only: a body naming no `instrumentAdmin` is refused for the family, because nothing EVM-side opens a governance configuration. The operation id is the submission id, so the status URL is the transaction-request read.","summary":"Create a governance configuration","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CantonGovernanceConfigCreateInput"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/governance/execution-capabilities":{"post":{"tags":["Governance"],"operationId":"governanceV2.v2/governance/executionCapabilities/create","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled Canton addon write (HTTP 200). The operation id is also the submission id, so the status URL resolves under the same id.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CantonAddonOperationOutput"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"operationId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","submissionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","ledgerSubmissionId":"canton-ledger-sub-1","preparedHashHex":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","contractId":"00a1b2c3d4e5f60718293a4b5c6d7e8f90a1b2c3d4e5f60718293a4b5c6d7e8f90"},"meta":{"txHashes":["0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIONS_STREAM_ORIGIN_REJECTED","ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIONS_STREAM_ORIGIN_REJECTED","status":403,"message":"Live actions feed requires Console origin","data":{"id":"DALP-0671","why":"The live actions feed carries browser session cookies, and the request origin did not match the Console origin accepted for live updates.","fix":"Refresh the Console and retry the actions view. API clients should call `GET /v2/actions` instead of the stream.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","PORTFOLIO_RESOURCE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"PORTFOLIO_RESOURCE_NOT_FOUND","status":404,"message":"Portfolio resource was not found","data":{"id":"DALP-0733","why":"The requested portfolio resource does not exist in the active organization.","fix":"Verify the identifier and the active organization, then request it again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","GOVERNANCE_POLL_NOT_OPEN","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","portfolio.polls.SIGNING_PENDING"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXTERNAL_TOKEN_REGISTRATION_REJECTED","GOVERNANCE_BALLOT_REJECTED","OPERATION_FAMILY_UNSUPPORTED","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"EXTERNAL_TOKEN_REGISTRATION_REJECTED","status":422,"message":"The external token wasn't registered","data":{"id":"DALP-0736","why":"The address did not pass on-chain ERC-20 metadata verification, or it is already registered.","fix":"Check that the address exposes name, symbol, and decimals on this chain, and that it is not registered already.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["GOVERNANCE_BALLOT_RATE_LIMITED","WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","GOVERNANCE_STATE_UNAVAILABLE","PORTFOLIO_PERSISTENCE_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","portfolio.http.WRITE_OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Opens a Canton governance execution capability on an instrument: the standing delegation an approved and queued proposal performs its action through. It creates `GovernanceExecutionCapability` as the party wallet in the body and answers with the id of the contract it created, which a proposal then names when it executes. This route serves Canton capabilities only: a body naming no `instrumentAdmin` is refused for the family, because nothing EVM-side opens an execution capability. The operation id is the submission id, so the status URL is the transaction-request read.","summary":"Create a governance execution capability","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CantonGovernanceExecutionCapabilityCreateInput"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/governance/configurations/{configId}":{"delete":{"tags":["Governance"],"operationId":"governanceV2.v2/governance/configurations/revoke","parameters":[{"name":"configId","in":"path","schema":{"type":"string","minLength":1,"description":"Contract id of the Canton governance configuration being retired, as a platform read returned it. The template behind it is pinned by the platform."},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled Canton addon write (HTTP 200). The operation id is also the submission id, so the status URL resolves under the same id.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CantonAddonOperationOutput"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"operationId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","submissionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","ledgerSubmissionId":"canton-ledger-sub-1","preparedHashHex":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","contractId":"00a1b2c3d4e5f60718293a4b5c6d7e8f90a1b2c3d4e5f60718293a4b5c6d7e8f90"},"meta":{"txHashes":["0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIONS_STREAM_ORIGIN_REJECTED","ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIONS_STREAM_ORIGIN_REJECTED","status":403,"message":"Live actions feed requires Console origin","data":{"id":"DALP-0671","why":"The live actions feed carries browser session cookies, and the request origin did not match the Console origin accepted for live updates.","fix":"Refresh the Console and retry the actions view. API clients should call `GET /v2/actions` instead of the stream.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","PORTFOLIO_RESOURCE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"PORTFOLIO_RESOURCE_NOT_FOUND","status":404,"message":"Portfolio resource was not found","data":{"id":"DALP-0733","why":"The requested portfolio resource does not exist in the active organization.","fix":"Verify the identifier and the active organization, then request it again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","GOVERNANCE_POLL_NOT_OPEN","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","portfolio.polls.SIGNING_PENDING"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXTERNAL_TOKEN_REGISTRATION_REJECTED","GOVERNANCE_BALLOT_REJECTED","OPERATION_FAMILY_UNSUPPORTED","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"EXTERNAL_TOKEN_REGISTRATION_REJECTED","status":422,"message":"The external token wasn't registered","data":{"id":"DALP-0736","why":"The address did not pass on-chain ERC-20 metadata verification, or it is already registered.","fix":"Check that the address exposes name, symbol, and decimals on this chain, and that it is not registered already.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["GOVERNANCE_BALLOT_RATE_LIMITED","WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","GOVERNANCE_STATE_UNAVAILABLE","PORTFOLIO_PERSISTENCE_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","portfolio.http.WRITE_OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Retires a Canton governance configuration capability, so no further proposal can be opened against it. It exercises `GovernanceConfig_Revoke` on the configuration the path names, and it is one of the Canton-only addon writes: this route serves Canton configurations only, the path segment is the contract id a platform read returned, and an EVM governance address is refused for the family rather than looked up. The write submits as the party wallet in the body, and the operation id it answers with is the submission id, so the status URL is the transaction-request read.","summary":"Revoke a governance configuration","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CantonGovernanceConfigRevokeInput"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/governance/execution-capabilities/{capabilityId}":{"delete":{"tags":["Governance"],"operationId":"governanceV2.v2/governance/executionCapabilities/revoke","parameters":[{"name":"capabilityId","in":"path","schema":{"type":"string","minLength":1,"description":"Contract id of the Canton execution capability being retired, as a platform read returned it. Disarming every queued proposal at once is what revoking it does."},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled Canton addon write (HTTP 200). The operation id is also the submission id, so the status URL resolves under the same id.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CantonAddonOperationOutput"},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"operationId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","submissionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","ledgerSubmissionId":"canton-ledger-sub-1","preparedHashHex":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","contractId":"00a1b2c3d4e5f60718293a4b5c6d7e8f90a1b2c3d4e5f60718293a4b5c6d7e8f90"},"meta":{"txHashes":["0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIONS_STREAM_ORIGIN_REJECTED","ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIONS_STREAM_ORIGIN_REJECTED","status":403,"message":"Live actions feed requires Console origin","data":{"id":"DALP-0671","why":"The live actions feed carries browser session cookies, and the request origin did not match the Console origin accepted for live updates.","fix":"Refresh the Console and retry the actions view. API clients should call `GET /v2/actions` instead of the stream.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","PORTFOLIO_RESOURCE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"PORTFOLIO_RESOURCE_NOT_FOUND","status":404,"message":"Portfolio resource was not found","data":{"id":"DALP-0733","why":"The requested portfolio resource does not exist in the active organization.","fix":"Verify the identifier and the active organization, then request it again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","GOVERNANCE_POLL_NOT_OPEN","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","portfolio.polls.SIGNING_PENDING"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXTERNAL_TOKEN_REGISTRATION_REJECTED","GOVERNANCE_BALLOT_REJECTED","OPERATION_FAMILY_UNSUPPORTED","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"EXTERNAL_TOKEN_REGISTRATION_REJECTED","status":422,"message":"The external token wasn't registered","data":{"id":"DALP-0736","why":"The address did not pass on-chain ERC-20 metadata verification, or it is already registered.","fix":"Check that the address exposes name, symbol, and decimals on this chain, and that it is not registered already.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["GOVERNANCE_BALLOT_RATE_LIMITED","WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","GOVERNANCE_STATE_UNAVAILABLE","PORTFOLIO_PERSISTENCE_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","portfolio.http.WRITE_OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Retires a Canton execution capability, which disarms every queued proposal that would have executed under it. It exercises `GovernanceExecutionCapability_Revoke` on the capability the path names, and it is a Canton-only addon write for the same reason the configuration revocation is. The write submits as the party wallet in the body, and the operation id it answers with is the submission id, so the status URL is the transaction-request read.","summary":"Revoke a governance execution capability","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CantonGovernanceExecutionCapabilityRevokeInput"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/governance/cancellations":{"post":{"tags":["Governance"],"operationId":"governanceV2.v2/governance/proposals/cancel","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Accepted governance write. A 202 body carries `transactionId` and `statusUrl`. Poll that URL until the write is indexed.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"transactionHash":{"type":"string"},"proposalId":{"type":"string","minLength":1,"maxLength":78,"pattern":"^\\d+$"}},"required":["transactionHash","proposalId"],"additionalProperties":false},"meta":{"$ref":"#/components/schemas/BlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"transactionHash":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae","proposalId":"42"},"meta":{"txHashes":["0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"]},"links":{"self":"/v2/addons/governance/votes"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIONS_STREAM_ORIGIN_REJECTED","ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIONS_STREAM_ORIGIN_REJECTED","status":403,"message":"Live actions feed requires Console origin","data":{"id":"DALP-0671","why":"The live actions feed carries browser session cookies, and the request origin did not match the Console origin accepted for live updates.","fix":"Refresh the Console and retry the actions view. API clients should call `GET /v2/actions` instead of the stream.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","PORTFOLIO_RESOURCE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"PORTFOLIO_RESOURCE_NOT_FOUND","status":404,"message":"Portfolio resource was not found","data":{"id":"DALP-0733","why":"The requested portfolio resource does not exist in the active organization.","fix":"Verify the identifier and the active organization, then request it again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","GOVERNANCE_POLL_NOT_OPEN","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","portfolio.polls.SIGNING_PENDING"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXTERNAL_TOKEN_REGISTRATION_REJECTED","GOVERNANCE_BALLOT_REJECTED","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"EXTERNAL_TOKEN_REGISTRATION_REJECTED","status":422,"message":"The external token wasn't registered","data":{"id":"DALP-0736","why":"The address did not pass on-chain ERC-20 metadata verification, or it is already registered.","fix":"Check that the address exposes name, symbol, and decimals on this chain, and that it is not registered already.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["GOVERNANCE_BALLOT_RATE_LIMITED","WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","GOVERNANCE_STATE_UNAVAILABLE","PORTFOLIO_PERSISTENCE_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","portfolio.http.WRITE_OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Queues cancellation of a proposal that has not yet executed. An executed proposal cannot be canceled. Poll the 202 `statusUrl` before you treat the proposal as gone.","summary":"Cancel a governance proposal","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProposalLifecycle"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/governance/instances/{assetId}":{"get":{"tags":["Governance"],"operationId":"governanceV2.v2/governance/instances/read","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true}],"responses":{"200":{"description":"Whether the token has a deployed governor, with a `self` link. Addresses are null when `exists` is false.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/GovernanceInstance"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"exists":true,"tokenAddress":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","governorAddress":"0x5FbDB2315678afecb367f032d93F642f64180aa3","timelockAddress":"0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512","votesSourceAddress":"0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0"},"links":{"self":"/v2/addons/governance/instances/0x8ba1f109551bD432803012645Ac136ddd64DBA72"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIONS_STREAM_ORIGIN_REJECTED","ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIONS_STREAM_ORIGIN_REJECTED","status":403,"message":"Live actions feed requires Console origin","data":{"id":"DALP-0671","why":"The live actions feed carries browser session cookies, and the request origin did not match the Console origin accepted for live updates.","fix":"Refresh the Console and retry the actions view. API clients should call `GET /v2/actions` instead of the stream.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","PORTFOLIO_RESOURCE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"PORTFOLIO_RESOURCE_NOT_FOUND","status":404,"message":"Portfolio resource was not found","data":{"id":"DALP-0733","why":"The requested portfolio resource does not exist in the active organization.","fix":"Verify the identifier and the active organization, then request it again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","GOVERNANCE_POLL_NOT_OPEN","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","portfolio.polls.SIGNING_PENDING"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXTERNAL_TOKEN_REGISTRATION_REJECTED","GOVERNANCE_BALLOT_REJECTED","OPERATION_FAMILY_UNSUPPORTED","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"EXTERNAL_TOKEN_REGISTRATION_REJECTED","status":422,"message":"The external token wasn't registered","data":{"id":"DALP-0736","why":"The address did not pass on-chain ERC-20 metadata verification, or it is already registered.","fix":"Check that the address exposes name, symbol, and decimals on this chain, and that it is not registered already.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["GOVERNANCE_BALLOT_RATE_LIMITED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","GOVERNANCE_STATE_UNAVAILABLE","PORTFOLIO_PERSISTENCE_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","portfolio.http.WRITE_OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns whether the token has a deployed governor and, when it does, the governor, timelock, and votes-source addresses. `exists` is false when the token has no governance addon. The path segment is the asset's own identifier: a token contract address is read here, and a Canton instrument id answers 422 `OperationFamilyUnsupportedError`, because a governance instance is the EVM governor and timelock pair and the Canton twin of this read is the governance configuration collection. Repeating the request is safe.","summary":"Read a token governance instance","x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/governance/preflights":{"post":{"tags":["Governance"],"operationId":"governanceV2.v2/governance/preflights/create","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Preflight verdict for the proposed actions. This route writes no chain state.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ProposalPreflight"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"governorExists":true,"governorAddress":"0x5FbDB2315678afecb367f032d93F642f64180aa3","timelockAddress":"0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512","votingPowerAttached":true,"actionAuthority":[{"action":"setYieldSchedule","target":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","hasTimelockAuthority":true,"operationAllowlisted":true}],"grantRoleCta":null},"links":{"self":"/v2/addons/governance/preflights"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIONS_STREAM_ORIGIN_REJECTED","ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIONS_STREAM_ORIGIN_REJECTED","status":403,"message":"Live actions feed requires Console origin","data":{"id":"DALP-0671","why":"The live actions feed carries browser session cookies, and the request origin did not match the Console origin accepted for live updates.","fix":"Refresh the Console and retry the actions view. API clients should call `GET /v2/actions` instead of the stream.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","PORTFOLIO_RESOURCE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"PORTFOLIO_RESOURCE_NOT_FOUND","status":404,"message":"Portfolio resource was not found","data":{"id":"DALP-0733","why":"The requested portfolio resource does not exist in the active organization.","fix":"Verify the identifier and the active organization, then request it again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","GOVERNANCE_POLL_NOT_OPEN","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","portfolio.polls.SIGNING_PENDING"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXTERNAL_TOKEN_REGISTRATION_REJECTED","GOVERNANCE_BALLOT_REJECTED","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"EXTERNAL_TOKEN_REGISTRATION_REJECTED","status":422,"message":"The external token wasn't registered","data":{"id":"DALP-0736","why":"The address did not pass on-chain ERC-20 metadata verification, or it is already registered.","fix":"Check that the address exposes name, symbol, and decimals on this chain, and that it is not registered already.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["GOVERNANCE_BALLOT_RATE_LIMITED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","GOVERNANCE_STATE_UNAVAILABLE","PORTFOLIO_PERSISTENCE_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","portfolio.http.WRITE_OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Checks whether the token has a governor and whether each proposed action is allowlisted and authorized for the timelock. This route writes no chain state. Repeat it after you change the action list or after a role grant settles.","summary":"Preflight a proposal's actions","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"actions":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/GovernanceAction"},"maxItems":10},{"type":"null"}]}},"required":["tokenAddress"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/governance/document-uploads":{"post":{"tags":["Governance"],"operationId":"governanceV2.v2/governance/documents/upload","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Time-limited PUT URL for a proposal attachment. PUT the bytes, then include `objectKey` on create.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ProposalDocumentUploadGrant"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"uploadUrl":"https://objects.northwind.example/upload/proposal-terms.pdf","objectKey":"governance/proposals/42/terms.pdf","expiresAt":"2026-03-15T10:12:41.000Z","method":"PUT","headers":{"content-type":"application/pdf"}},"links":{"self":"/v2/addons/governance/document-uploads"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIONS_STREAM_ORIGIN_REJECTED","ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIONS_STREAM_ORIGIN_REJECTED","status":403,"message":"Live actions feed requires Console origin","data":{"id":"DALP-0671","why":"The live actions feed carries browser session cookies, and the request origin did not match the Console origin accepted for live updates.","fix":"Refresh the Console and retry the actions view. API clients should call `GET /v2/actions` instead of the stream.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","PORTFOLIO_RESOURCE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"PORTFOLIO_RESOURCE_NOT_FOUND","status":404,"message":"Portfolio resource was not found","data":{"id":"DALP-0733","why":"The requested portfolio resource does not exist in the active organization.","fix":"Verify the identifier and the active organization, then request it again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","GOVERNANCE_POLL_NOT_OPEN","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","portfolio.polls.SIGNING_PENDING"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXTERNAL_TOKEN_REGISTRATION_REJECTED","GOVERNANCE_BALLOT_REJECTED","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"EXTERNAL_TOKEN_REGISTRATION_REJECTED","status":422,"message":"The external token wasn't registered","data":{"id":"DALP-0736","why":"The address did not pass on-chain ERC-20 metadata verification, or it is already registered.","fix":"Check that the address exposes name, symbol, and decimals on this chain, and that it is not registered already.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["GOVERNANCE_BALLOT_RATE_LIMITED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","GOVERNANCE_STATE_UNAVAILABLE","PORTFOLIO_PERSISTENCE_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","portfolio.http.WRITE_OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns a time-limited PUT URL for a proposal attachment. The file must be at most 25 MB and one of the allowed MIME types. PUT the bytes to `uploadUrl`, then include the returned `objectKey` on the create-proposal payload. Request a new URL if the previous one has expired.","summary":"Create a proposal document upload URL","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProposalDocumentUpload"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/governance/document-downloads":{"post":{"tags":["Governance"],"operationId":"governanceV2.v2/governance/documents/download","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Time-limited GET URL for a document already attached to a proposal.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ProposalDocumentDownloadGrant"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"downloadUrl":"https://objects.northwind.example/download/proposal-terms.pdf","fileName":"proposal-terms.pdf","mimeType":"application/pdf","expiresAt":"2026-03-15T10:12:41.000Z"},"links":{"self":"/v2/addons/governance/document-downloads"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIONS_STREAM_ORIGIN_REJECTED","ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIONS_STREAM_ORIGIN_REJECTED","status":403,"message":"Live actions feed requires Console origin","data":{"id":"DALP-0671","why":"The live actions feed carries browser session cookies, and the request origin did not match the Console origin accepted for live updates.","fix":"Refresh the Console and retry the actions view. API clients should call `GET /v2/actions` instead of the stream.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","PORTFOLIO_RESOURCE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"PORTFOLIO_RESOURCE_NOT_FOUND","status":404,"message":"Portfolio resource was not found","data":{"id":"DALP-0733","why":"The requested portfolio resource does not exist in the active organization.","fix":"Verify the identifier and the active organization, then request it again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","GOVERNANCE_POLL_NOT_OPEN","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","portfolio.polls.SIGNING_PENDING"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXTERNAL_TOKEN_REGISTRATION_REJECTED","GOVERNANCE_BALLOT_REJECTED","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"EXTERNAL_TOKEN_REGISTRATION_REJECTED","status":422,"message":"The external token wasn't registered","data":{"id":"DALP-0736","why":"The address did not pass on-chain ERC-20 metadata verification, or it is already registered.","fix":"Check that the address exposes name, symbol, and decimals on this chain, and that it is not registered already.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["GOVERNANCE_BALLOT_RATE_LIMITED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","GOVERNANCE_STATE_UNAVAILABLE","PORTFOLIO_PERSISTENCE_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","portfolio.http.WRITE_OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns a time-limited GET URL for a document already attached to a proposal. Send the governor, proposal id, and `objectKey`. Request a new URL if the previous one has expired. This route does not change proposal state.","summary":"Create a proposal document download URL","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"governorAddress":{"$ref":"#/components/schemas/EvmAddress"},"proposalId":{"type":"string","minLength":1,"maxLength":78,"pattern":"^\\d+$"},"objectKey":{"type":"string","minLength":1}},"required":["governorAddress","proposalId","objectKey"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/governance/polls":{"post":{"tags":["Governance"],"operationId":"governanceV2.v2/governance/polls/create","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The created off-chain poll. The write landed immediately and did not queue a chain transaction.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/PollView"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","chainId":11155111,"tokenAddress":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","title":"Dividend policy for harvest 2026","description":"Choose whether Northwind Coffee pays the 2026 harvest dividend in USDC or additional NCB.","options":["Pay in USDC","Pay in additional NCB"],"recordDateAt":"2026-03-20T08:00:00.000Z","opensAt":"2026-03-21T08:00:00.000Z","closesAt":"2026-03-28T08:00:00.000Z","status":"open","definitionHash":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae","createdBy":"7f1c2b90-3f4a-4b6f-9a1e-5c8d0e2f6a41","createdAt":"2026-03-15T09:12:41.000Z","updatedAt":"2026-03-15T09:12:41.000Z"},"links":{"self":"/v2/addons/governance/polls"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIONS_STREAM_ORIGIN_REJECTED","ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","GOVERNANCE_POLL_OPERATOR_REQUIRED","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIONS_STREAM_ORIGIN_REJECTED","status":403,"message":"Live actions feed requires Console origin","data":{"id":"DALP-0671","why":"The live actions feed carries browser session cookies, and the request origin did not match the Console origin accepted for live updates.","fix":"Refresh the Console and retry the actions view. API clients should call `GET /v2/actions` instead of the stream.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","PORTFOLIO_RESOURCE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"PORTFOLIO_RESOURCE_NOT_FOUND","status":404,"message":"Portfolio resource was not found","data":{"id":"DALP-0733","why":"The requested portfolio resource does not exist in the active organization.","fix":"Verify the identifier and the active organization, then request it again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","GOVERNANCE_POLL_NOT_OPEN","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","portfolio.polls.SIGNING_PENDING"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXTERNAL_TOKEN_REGISTRATION_REJECTED","GOVERNANCE_BALLOT_REJECTED","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"EXTERNAL_TOKEN_REGISTRATION_REJECTED","status":422,"message":"The external token wasn't registered","data":{"id":"DALP-0736","why":"The address did not pass on-chain ERC-20 metadata verification, or it is already registered.","fix":"Check that the address exposes name, symbol, and decimals on this chain, and that it is not registered already.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["GOVERNANCE_BALLOT_RATE_LIMITED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","GOVERNANCE_STATE_UNAVAILABLE","PORTFOLIO_PERSISTENCE_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","portfolio.http.WRITE_OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Stores an off-chain poll against a token. Send at least two options and a record date, open time, and close time. The poll is stored immediately and does not queue a chain transaction. Creating the same title twice is allowed; each call allocates a new poll id.","summary":"Create a governance poll","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PollCreate"}}},"required":true},"x-dalp-auth":"session-or-api-key"},"get":{"tags":["Governance"],"operationId":"governanceV2.v2/governance/polls/list","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000},"tokenAddress":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"status":{"anyOf":[{"type":"string","enum":["open","closed"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"recordDateAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"opensAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"closesAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"createdAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"One page of off-chain polls in the active organization. `meta.total` counts every matching poll.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PollView"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","chainId":11155111,"tokenAddress":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","title":"Dividend policy for harvest 2026","description":"Choose whether Northwind Coffee pays the 2026 harvest dividend in USDC or additional NCB.","options":["Pay in USDC","Pay in additional NCB"],"recordDateAt":"2026-03-20T08:00:00.000Z","opensAt":"2026-03-21T08:00:00.000Z","closesAt":"2026-03-28T08:00:00.000Z","status":"open","definitionHash":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae","createdBy":"7f1c2b90-3f4a-4b6f-9a1e-5c8d0e2f6a41","createdAt":"2026-03-15T09:12:41.000Z","updatedAt":"2026-03-15T09:12:41.000Z"}],"meta":{"total":1},"links":{"self":"/v2/addons/governance/polls?sort=createdAt&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/addons/governance/polls?sort=createdAt&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/addons/governance/polls?sort=createdAt&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIONS_STREAM_ORIGIN_REJECTED","ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIONS_STREAM_ORIGIN_REJECTED","status":403,"message":"Live actions feed requires Console origin","data":{"id":"DALP-0671","why":"The live actions feed carries browser session cookies, and the request origin did not match the Console origin accepted for live updates.","fix":"Refresh the Console and retry the actions view. API clients should call `GET /v2/actions` instead of the stream.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","PORTFOLIO_RESOURCE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"PORTFOLIO_RESOURCE_NOT_FOUND","status":404,"message":"Portfolio resource was not found","data":{"id":"DALP-0733","why":"The requested portfolio resource does not exist in the active organization.","fix":"Verify the identifier and the active organization, then request it again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","GOVERNANCE_POLL_NOT_OPEN","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","portfolio.polls.SIGNING_PENDING"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXTERNAL_TOKEN_REGISTRATION_REJECTED","GOVERNANCE_BALLOT_REJECTED","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"EXTERNAL_TOKEN_REGISTRATION_REJECTED","status":422,"message":"The external token wasn't registered","data":{"id":"DALP-0736","why":"The address did not pass on-chain ERC-20 metadata verification, or it is already registered.","fix":"Check that the address exposes name, symbol, and decimals on this chain, and that it is not registered already.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["GOVERNANCE_BALLOT_RATE_LIMITED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","GOVERNANCE_STATE_UNAVAILABLE","PORTFOLIO_PERSISTENCE_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","portfolio.http.WRITE_OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of off-chain polls in the active organization. Default sort is `createdAt`. Filter by `tokenAddress`, `status`, or the record, open, and close timestamps. Repeating the request is safe.","summary":"List governance polls","x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/governance/polls/{pollId}":{"get":{"tags":["Governance"],"operationId":"governanceV2.v2/governance/polls/read","parameters":[{"name":"pollId","in":"path","schema":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"required":true}],"responses":{"200":{"description":"The requested poll with its running tally and total ballot count.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/PollTally"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","chainId":11155111,"tokenAddress":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","title":"Dividend policy for harvest 2026","description":"Choose whether Northwind Coffee pays the 2026 harvest dividend in USDC or additional NCB.","options":["Pay in USDC","Pay in additional NCB"],"recordDateAt":"2026-03-20T08:00:00.000Z","opensAt":"2026-03-21T08:00:00.000Z","closesAt":"2026-03-28T08:00:00.000Z","status":"open","definitionHash":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae","createdBy":"7f1c2b90-3f4a-4b6f-9a1e-5c8d0e2f6a41","createdAt":"2026-03-15T09:12:41.000Z","updatedAt":"2026-03-15T09:12:41.000Z","tally":[{"optionIndex":0,"label":"Pay in USDC","ballotCount":3,"weightExact":"90000"},{"optionIndex":1,"label":"Pay in additional NCB","ballotCount":1,"weightExact":"35000"}],"totalBallots":4},"links":{"self":"/v2/addons/governance/polls/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIONS_STREAM_ORIGIN_REJECTED","ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIONS_STREAM_ORIGIN_REJECTED","status":403,"message":"Live actions feed requires Console origin","data":{"id":"DALP-0671","why":"The live actions feed carries browser session cookies, and the request origin did not match the Console origin accepted for live updates.","fix":"Refresh the Console and retry the actions view. API clients should call `GET /v2/actions` instead of the stream.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","PORTFOLIO_RESOURCE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"PORTFOLIO_RESOURCE_NOT_FOUND","status":404,"message":"Portfolio resource was not found","data":{"id":"DALP-0733","why":"The requested portfolio resource does not exist in the active organization.","fix":"Verify the identifier and the active organization, then request it again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","GOVERNANCE_POLL_NOT_OPEN","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","portfolio.polls.SIGNING_PENDING"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXTERNAL_TOKEN_REGISTRATION_REJECTED","GOVERNANCE_BALLOT_REJECTED","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"EXTERNAL_TOKEN_REGISTRATION_REJECTED","status":422,"message":"The external token wasn't registered","data":{"id":"DALP-0736","why":"The address did not pass on-chain ERC-20 metadata verification, or it is already registered.","fix":"Check that the address exposes name, symbol, and decimals on this chain, and that it is not registered already.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["GOVERNANCE_BALLOT_RATE_LIMITED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","GOVERNANCE_STATE_UNAVAILABLE","PORTFOLIO_PERSISTENCE_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","portfolio.http.WRITE_OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one poll with its running tally and total ballot count. `pollId` is the UUID the platform assigned at create. A missing poll or a poll that belongs to another organization answers 404. Repeating the request is safe.","summary":"Read a governance poll","x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/governance/polls/{pollId}/ballots":{"post":{"tags":["Governance"],"operationId":"governanceV2.v2/governance/polls/castBallot","parameters":[{"name":"pollId","in":"path","schema":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The stored ballot. A voter may submit only one ballot on a poll.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/BallotRecorded"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"pollId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","voterAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","optionIndex":0,"typedData":{"domain":{"name":"Core holdings","version":"3.0.5","chainId":11155111,"salt":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"},"types":{"PollBallot":[{"name":"Core holdings","type":"bond"}]},"primaryType":"PollBallot","message":{"pollId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","chainId":11155111,"tokenAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","voter":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","optionIndex":0,"definitionHash":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"}},"signature":"0x5208","weightExact":"90000","submittedAt":"2026-03-21T09:15:00.000Z"},"links":{"self":"/v2/addons/governance/polls/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b/ballots"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIONS_STREAM_ORIGIN_REJECTED","ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIONS_STREAM_ORIGIN_REJECTED","status":403,"message":"Live actions feed requires Console origin","data":{"id":"DALP-0671","why":"The live actions feed carries browser session cookies, and the request origin did not match the Console origin accepted for live updates.","fix":"Refresh the Console and retry the actions view. API clients should call `GET /v2/actions` instead of the stream.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","PORTFOLIO_RESOURCE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"PORTFOLIO_RESOURCE_NOT_FOUND","status":404,"message":"Portfolio resource was not found","data":{"id":"DALP-0733","why":"The requested portfolio resource does not exist in the active organization.","fix":"Verify the identifier and the active organization, then request it again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","GOVERNANCE_POLL_NOT_OPEN","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","portfolio.polls.SIGNING_PENDING"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXTERNAL_TOKEN_REGISTRATION_REJECTED","GOVERNANCE_BALLOT_REJECTED","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"EXTERNAL_TOKEN_REGISTRATION_REJECTED","status":422,"message":"The external token wasn't registered","data":{"id":"DALP-0736","why":"The address did not pass on-chain ERC-20 metadata verification, or it is already registered.","fix":"Check that the address exposes name, symbol, and decimals on this chain, and that it is not registered already.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["GOVERNANCE_BALLOT_RATE_LIMITED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","GOVERNANCE_STATE_UNAVAILABLE","PORTFOLIO_PERSISTENCE_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","portfolio.http.WRITE_OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Records a ballot whose `definitionHash` and `signature` the caller already produced. The poll must be open. A voter may submit only one ballot. The write is stored immediately; repeating the same signed payload after a success returns a conflict rather than a second vote.","summary":"Cast a signed poll ballot","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BallotCast"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/governance/polls/{pollId}/ballots/sign":{"post":{"tags":["Governance"],"operationId":"governanceV2.v2/governance/polls/signBallot","parameters":[{"name":"pollId","in":"path","schema":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The platform-signed ballot that was just stored.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/BallotRecorded"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"pollId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","voterAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","optionIndex":0,"typedData":{"domain":{"name":"Core holdings","version":"3.0.5","chainId":11155111,"salt":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"},"types":{"PollBallot":[{"name":"Core holdings","type":"bond"}]},"primaryType":"PollBallot","message":{"pollId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","chainId":11155111,"tokenAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","voter":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","optionIndex":0,"definitionHash":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"}},"signature":"0x5208","weightExact":"90000","submittedAt":"2026-03-21T09:15:00.000Z"},"links":{"self":"/v2/addons/governance/polls/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b/ballots/sign"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIONS_STREAM_ORIGIN_REJECTED","ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIONS_STREAM_ORIGIN_REJECTED","status":403,"message":"Live actions feed requires Console origin","data":{"id":"DALP-0671","why":"The live actions feed carries browser session cookies, and the request origin did not match the Console origin accepted for live updates.","fix":"Refresh the Console and retry the actions view. API clients should call `GET /v2/actions` instead of the stream.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","PORTFOLIO_RESOURCE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"PORTFOLIO_RESOURCE_NOT_FOUND","status":404,"message":"Portfolio resource was not found","data":{"id":"DALP-0733","why":"The requested portfolio resource does not exist in the active organization.","fix":"Verify the identifier and the active organization, then request it again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","GOVERNANCE_POLL_NOT_OPEN","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","portfolio.polls.SIGNING_PENDING"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXTERNAL_TOKEN_REGISTRATION_REJECTED","GOVERNANCE_BALLOT_REJECTED","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"EXTERNAL_TOKEN_REGISTRATION_REJECTED","status":422,"message":"The external token wasn't registered","data":{"id":"DALP-0736","why":"The address did not pass on-chain ERC-20 metadata verification, or it is already registered.","fix":"Check that the address exposes name, symbol, and decimals on this chain, and that it is not registered already.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["GOVERNANCE_BALLOT_RATE_LIMITED","WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","GOVERNANCE_STATE_UNAVAILABLE","PORTFOLIO_PERSISTENCE_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","portfolio.http.WRITE_OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Asks the platform to sign `optionIndex` with the caller's authorized wallet and store the ballot. The poll must be open. A pending custody approval answers 409; a signer recovery failure answers 503 and is retryable. Do not submit a second sign until the first attempt has settled.","summary":"Sign and cast a poll ballot","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BallotSignRequest"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/governance/polls/{pollId}/close":{"post":{"tags":["Governance"],"operationId":"governanceV2.v2/governance/polls/close","parameters":[{"name":"pollId","in":"path","schema":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The closed poll and its final tally. No further ballots are accepted.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/PollTally"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","chainId":11155111,"tokenAddress":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","title":"Dividend policy for harvest 2026","description":"Choose whether Northwind Coffee pays the 2026 harvest dividend in USDC or additional NCB.","options":["Pay in USDC","Pay in additional NCB"],"recordDateAt":"2026-03-20T08:00:00.000Z","opensAt":"2026-03-21T08:00:00.000Z","closesAt":"2026-03-28T08:00:00.000Z","status":"closed","definitionHash":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae","createdBy":"7f1c2b90-3f4a-4b6f-9a1e-5c8d0e2f6a41","createdAt":"2026-03-15T09:12:41.000Z","updatedAt":"2026-03-15T09:12:41.000Z","tally":[{"optionIndex":0,"label":"Pay in USDC","ballotCount":3,"weightExact":"90000"},{"optionIndex":1,"label":"Pay in additional NCB","ballotCount":1,"weightExact":"35000"}],"totalBallots":4},"links":{"self":"/v2/addons/governance/polls/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b/close"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIONS_STREAM_ORIGIN_REJECTED","ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","GOVERNANCE_POLL_OPERATOR_REQUIRED","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIONS_STREAM_ORIGIN_REJECTED","status":403,"message":"Live actions feed requires Console origin","data":{"id":"DALP-0671","why":"The live actions feed carries browser session cookies, and the request origin did not match the Console origin accepted for live updates.","fix":"Refresh the Console and retry the actions view. API clients should call `GET /v2/actions` instead of the stream.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","PORTFOLIO_RESOURCE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"PORTFOLIO_RESOURCE_NOT_FOUND","status":404,"message":"Portfolio resource was not found","data":{"id":"DALP-0733","why":"The requested portfolio resource does not exist in the active organization.","fix":"Verify the identifier and the active organization, then request it again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","GOVERNANCE_POLL_NOT_OPEN","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","portfolio.polls.SIGNING_PENDING"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXTERNAL_TOKEN_REGISTRATION_REJECTED","GOVERNANCE_BALLOT_REJECTED","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"EXTERNAL_TOKEN_REGISTRATION_REJECTED","status":422,"message":"The external token wasn't registered","data":{"id":"DALP-0736","why":"The address did not pass on-chain ERC-20 metadata verification, or it is already registered.","fix":"Check that the address exposes name, symbol, and decimals on this chain, and that it is not registered already.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["GOVERNANCE_BALLOT_RATE_LIMITED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","GOVERNANCE_STATE_UNAVAILABLE","PORTFOLIO_PERSISTENCE_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","portfolio.http.WRITE_OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Closes an open poll so no further ballots are accepted and returns the final tally. Closing an already closed poll is rejected. The write is stored immediately and does not queue a chain transaction.","summary":"Close a governance poll","x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/governance/polls/{pollId}/export":{"get":{"tags":["Governance"],"operationId":"governanceV2.v2/governance/polls/export","parameters":[{"name":"pollId","in":"path","schema":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"required":true}],"responses":{"200":{"description":"CSV of every ballot on the named poll, with a `self` link.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/PollExport"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"filename":"poll-0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b-ballots.csv","contentType":"text/csv","csv":"voter,optionIndex,weight\n0x71C7656EC7ab88b098defB751B7401B5f6d8976F,0,90000\n"},"links":{"self":"/v2/addons/governance/polls/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b/export"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIONS_STREAM_ORIGIN_REJECTED","ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIONS_STREAM_ORIGIN_REJECTED","status":403,"message":"Live actions feed requires Console origin","data":{"id":"DALP-0671","why":"The live actions feed carries browser session cookies, and the request origin did not match the Console origin accepted for live updates.","fix":"Refresh the Console and retry the actions view. API clients should call `GET /v2/actions` instead of the stream.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","PORTFOLIO_RESOURCE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"PORTFOLIO_RESOURCE_NOT_FOUND","status":404,"message":"Portfolio resource was not found","data":{"id":"DALP-0733","why":"The requested portfolio resource does not exist in the active organization.","fix":"Verify the identifier and the active organization, then request it again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","GOVERNANCE_POLL_NOT_OPEN","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","portfolio.polls.SIGNING_PENDING"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXTERNAL_TOKEN_REGISTRATION_REJECTED","GOVERNANCE_BALLOT_REJECTED","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"EXTERNAL_TOKEN_REGISTRATION_REJECTED","status":422,"message":"The external token wasn't registered","data":{"id":"DALP-0736","why":"The address did not pass on-chain ERC-20 metadata verification, or it is already registered.","fix":"Check that the address exposes name, symbol, and decimals on this chain, and that it is not registered already.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["GOVERNANCE_BALLOT_RATE_LIMITED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","GOVERNANCE_STATE_UNAVAILABLE","PORTFOLIO_PERSISTENCE_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","portfolio.http.WRITE_OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns a CSV of every ballot on the named poll. Use this for an audit export rather than paging the poll read. Repeating the request is safe and does not change ballots.","summary":"Export poll ballots as CSV","x-dalp-auth":"session-or-api-key"}},"/api/v2/historical-balances/at-block":{"get":{"tags":["Accounts and portfolio"],"operationId":"tokenPortfolioReadsV2.v2/historicalBalances/atBlock","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000}},"allOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"object","properties":{"eq":{"anyOf":[{"type":"string"},{"type":"number"}]},"ne":{"anyOf":[{"type":"string"},{"type":"number"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]}},"additionalProperties":false}]}}]},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false},{"name":"block","in":"query","schema":{"type":"string","pattern":"^-?\\d+$"},"required":true}],"responses":{"200":{"description":"One page of token-balance snapshots as of the requested block. `kind` is `account` for a holder row and `totalSupply` for the token supply row.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/HistoricalBalanceRow"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"tokenAddress":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","account":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","kind":"account","balance":"125000","balanceExact":"125000000000000000000000","asOfBlockNumber":"8923411","asOfBlockTimestamp":"2026-03-15T09:12:41.000Z","asOfTxHash":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae","asOfLogIndex":4}],"meta":{"total":1},"links":{"self":"/v2/historical-balances/at-block?block=8923411&filter%5Baccount%5D=0x71C7656EC7ab88b098defB751B7401B5f6d8976F&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/historical-balances/at-block?block=8923411&filter%5Baccount%5D=0x71C7656EC7ab88b098defB751B7401B5f6d8976F&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/historical-balances/at-block?block=8923411&filter%5Baccount%5D=0x71C7656EC7ab88b098defB751B7401B5f6d8976F&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","wire.http.SESSION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIONS_STREAM_ORIGIN_REJECTED","ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIONS_STREAM_ORIGIN_REJECTED","status":403,"message":"Live actions feed requires Console origin","data":{"id":"DALP-0671","why":"The live actions feed carries browser session cookies, and the request origin did not match the Console origin accepted for live updates.","fix":"Refresh the Console and retry the actions view. API clients should call `GET /v2/actions` instead of the stream.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","PORTFOLIO_RESOURCE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"PORTFOLIO_RESOURCE_NOT_FOUND","status":404,"message":"Portfolio resource was not found","data":{"id":"DALP-0733","why":"The requested portfolio resource does not exist in the active organization.","fix":"Verify the identifier and the active organization, then request it again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","GOVERNANCE_POLL_NOT_OPEN","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","portfolio.polls.SIGNING_PENDING"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXTERNAL_TOKEN_REGISTRATION_REJECTED","GOVERNANCE_BALLOT_REJECTED","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"EXTERNAL_TOKEN_REGISTRATION_REJECTED","status":422,"message":"The external token wasn't registered","data":{"id":"DALP-0736","why":"The address did not pass on-chain ERC-20 metadata verification, or it is already registered.","fix":"Check that the address exposes name, symbol, and decimals on this chain, and that it is not registered already.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["GOVERNANCE_BALLOT_RATE_LIMITED","TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","GOVERNANCE_STATE_UNAVAILABLE","PORTFOLIO_PERSISTENCE_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","portfolio.http.WRITE_OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns token-balance snapshots as of the required `block` number. You must send `filter[tokenAddress]` or `filter[account]`; those discriminators accept only the `eq` operator. `kind` distinguishes account balances from total-supply rows. Repeating the request is safe.","summary":"List balances at a block","x-dalp-auth":"session-or-api-key"}},"/api/v2/contracts/{address}":{"get":{"tags":["Systems and factories"],"operationId":"tokenPortfolioReadsV2.v2/contracts/read","parameters":[{"name":"address","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true}],"responses":{"200":{"description":"Preview of the requested address on the active chain, with a `self` link. `registration.eligible` tells you whether a subsequent external-token registration would be accepted.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ContractInspection"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"address":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","hasCode":true,"token":{"name":"Northwind Coffee Bond","symbol":"NCB","decimals":18,"totalSupply":"50000000"},"isSmart":true,"knownTo":"factory-token","registration":{"eligible":false,"blockingReason":"system-managed"},"parentToken":null},"links":{"self":"/v2/contracts/0x8ba1f109551bD432803012645Ac136ddd64DBA72"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","wire.http.SESSION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIONS_STREAM_ORIGIN_REJECTED","ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIONS_STREAM_ORIGIN_REJECTED","status":403,"message":"Live actions feed requires Console origin","data":{"id":"DALP-0671","why":"The live actions feed carries browser session cookies, and the request origin did not match the Console origin accepted for live updates.","fix":"Refresh the Console and retry the actions view. API clients should call `GET /v2/actions` instead of the stream.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","PORTFOLIO_RESOURCE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"PORTFOLIO_RESOURCE_NOT_FOUND","status":404,"message":"Portfolio resource was not found","data":{"id":"DALP-0733","why":"The requested portfolio resource does not exist in the active organization.","fix":"Verify the identifier and the active organization, then request it again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","GOVERNANCE_POLL_NOT_OPEN","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","portfolio.polls.SIGNING_PENDING"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXTERNAL_TOKEN_REGISTRATION_REJECTED","GOVERNANCE_BALLOT_REJECTED","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"EXTERNAL_TOKEN_REGISTRATION_REJECTED","status":422,"message":"The external token wasn't registered","data":{"id":"DALP-0736","why":"The address did not pass on-chain ERC-20 metadata verification, or it is already registered.","fix":"Check that the address exposes name, symbol, and decimals on this chain, and that it is not registered already.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["GOVERNANCE_BALLOT_RATE_LIMITED","TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","GOVERNANCE_STATE_UNAVAILABLE","PORTFOLIO_PERSISTENCE_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","portfolio.http.WRITE_OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns a preview of any address on the active chain: whether it has code, a best-effort ERC-20 card, whether it advertises a SMART interface, and whether the organization can register it as an external token. Use `registration.eligible` before you submit a registration. Repeating the request is safe.","summary":"Inspect a contract address","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/actions":{"get":{"tags":["Actions"],"operationId":"tokenPortfolioReadsV2.v2/token/actions","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000}},"allOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"object","properties":{"eq":{"anyOf":[{"type":"string"},{"type":"number"}]},"ne":{"anyOf":[{"type":"string"},{"type":"number"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]}},"additionalProperties":false}]}}]},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"One page of actions the caller can execute. `meta.facets` counts `status` and `actionType` across the filtered set.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ActionRow"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"xvp-approve:0xcf7ed3acca5a467e9e704c703e8d87f634fb0fc9","actionType":"ApproveXvPSettlement","name":"Approve Northwind Series A settlement","target":"0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9","tokenAddress":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","activeAt":"2026-03-15T09:12:41.000Z","status":"PENDING","executedAt":null,"executedBy":null,"expiresAt":"2026-04-20T16:00:00.000Z","source":"on-chain"}],"meta":{"total":1},"links":{"self":"/v2/actions?sort=-activeAt&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/actions?sort=-activeAt&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/actions?sort=-activeAt&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"This response has one of these causes:\n\n- The path segment is not a token contract address and the request sent no `instrumentAdmin`, so it names neither an EVM token nor a Canton instrument. Send an address, or send the instrument id together with `instrumentAdmin`.\n- A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REF_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REF_INVALID","status":400,"message":"Token reference is incomplete","data":{"id":"DALP-0707","why":"The asset reference cannot identify a token in its stated family.","fix":"Send an EVM contract address, or a Canton instrument id together with its instrument admin.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","wire.http.SESSION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIONS_STREAM_ORIGIN_REJECTED","ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIONS_STREAM_ORIGIN_REJECTED","status":403,"message":"Live actions feed requires Console origin","data":{"id":"DALP-0671","why":"The live actions feed carries browser session cookies, and the request origin did not match the Console origin accepted for live updates.","fix":"Refresh the Console and retry the actions view. API clients should call `GET /v2/actions` instead of the stream.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","PORTFOLIO_RESOURCE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"PORTFOLIO_RESOURCE_NOT_FOUND","status":404,"message":"Portfolio resource was not found","data":{"id":"DALP-0733","why":"The requested portfolio resource does not exist in the active organization.","fix":"Verify the identifier and the active organization, then request it again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","GOVERNANCE_POLL_NOT_OPEN","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","portfolio.polls.SIGNING_PENDING"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXTERNAL_TOKEN_REGISTRATION_REJECTED","GOVERNANCE_BALLOT_REJECTED","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"EXTERNAL_TOKEN_REGISTRATION_REJECTED","status":422,"message":"The external token wasn't registered","data":{"id":"DALP-0736","why":"The address did not pass on-chain ERC-20 metadata verification, or it is already registered.","fix":"Check that the address exposes name, symbol, and decimals on this chain, and that it is not registered already.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["GOVERNANCE_BALLOT_RATE_LIMITED","TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","GOVERNANCE_STATE_UNAVAILABLE","PORTFOLIO_PERSISTENCE_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","portfolio.http.WRITE_OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of actions that target the token named in the path, including allowance and yield rows whose `target` is a feature address. Default sort is newest `activeAt` first. Filter by `status`, `actionType`, `target`, or `name`. Repeating the request is safe.","summary":"Page actions for a token","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/participants/roles":{"get":{"tags":["Actions"],"operationId":"tokenPortfolioReadsV2.v2/token/participantRolesView","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000}},"allOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"object","properties":{"eq":{"anyOf":[{"type":"string"},{"type":"number"}]},"ne":{"anyOf":[{"type":"string"},{"type":"number"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]}},"additionalProperties":false}]}}]},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"One page of participants and the asset-access roles they hold on the token. `drift` is true when signing and operations addresses disagree.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ParticipantRolesRow"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"participantId":"7f1c2b90-3f4a-4b6f-9a1e-5c8d0e2f6a41","displayName":"Northwind Coffee Treasury","signingAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","operationsAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","accountAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false,"eoaRoles":["governance"],"smartWalletRoles":["governance"],"missingRoles":[],"drift":false}],"meta":{"total":1},"links":{"self":"/v2/tokens/0x8ba1f109551bD432803012645Ac136ddd64DBA72/participants/roles?sort=displayName&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/tokens/0x8ba1f109551bD432803012645Ac136ddd64DBA72/participants/roles?sort=displayName&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/tokens/0x8ba1f109551bD432803012645Ac136ddd64DBA72/participants/roles?sort=displayName&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"This response has one of these causes:\n\n- The path segment is not a token contract address and the request sent no `instrumentAdmin`, so it names neither an EVM token nor a Canton instrument. Send an address, or send the instrument id together with `instrumentAdmin`.\n- A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REF_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REF_INVALID","status":400,"message":"Token reference is incomplete","data":{"id":"DALP-0707","why":"The asset reference cannot identify a token in its stated family.","fix":"Send an EVM contract address, or a Canton instrument id together with its instrument admin.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","wire.http.SESSION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIONS_STREAM_ORIGIN_REJECTED","ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIONS_STREAM_ORIGIN_REJECTED","status":403,"message":"Live actions feed requires Console origin","data":{"id":"DALP-0671","why":"The live actions feed carries browser session cookies, and the request origin did not match the Console origin accepted for live updates.","fix":"Refresh the Console and retry the actions view. API clients should call `GET /v2/actions` instead of the stream.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","PORTFOLIO_RESOURCE_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"PORTFOLIO_RESOURCE_NOT_FOUND","status":404,"message":"Portfolio resource was not found","data":{"id":"DALP-0733","why":"The requested portfolio resource does not exist in the active organization.","fix":"Verify the identifier and the active organization, then request it again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","GOVERNANCE_POLL_NOT_OPEN","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","portfolio.polls.SIGNING_PENDING"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","EXTERNAL_TOKEN_REGISTRATION_REJECTED","GOVERNANCE_BALLOT_REJECTED","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"EXTERNAL_TOKEN_REGISTRATION_REJECTED","status":422,"message":"The external token wasn't registered","data":{"id":"DALP-0736","why":"The address did not pass on-chain ERC-20 metadata verification, or it is already registered.","fix":"Check that the address exposes name, symbol, and decimals on this chain, and that it is not registered already.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["GOVERNANCE_BALLOT_RATE_LIMITED","TOO_MANY_REQUESTS","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","GOVERNANCE_STATE_UNAVAILABLE","PORTFOLIO_PERSISTENCE_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","portfolio.http.WRITE_OUTCOME_UNKNOWN"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of participants and the asset-access roles they hold on the token, split across signing and operations addresses. `drift` is true when the two address sets disagree. Filter by address, role, or `drift`. Repeating the request is safe.","summary":"List participant roles on a token","x-dalp-auth":"session-or-api-key"}},"/api/v2/reporting/obligations":{"get":{"tags":["Regulatory reporting"],"operationId":"reporting.obligations.obligationsList","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000}},"allOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"object","properties":{"eq":{"anyOf":[{"type":"string"},{"type":"number"}]},"ne":{"anyOf":[{"type":"string"},{"type":"number"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]}},"additionalProperties":false}]}}]},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"Every reporting obligation the active organization can see: its own, plus the platform catalog entries every deployment carries.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ReportingObligation"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"obl_mica_art_quarterly","organizationId":"org_1","isSystem":false,"name":"MiCA asset-referenced token quarterly report","description":"Quarterly reserve and holder position report for an asset-referenced token issuer.","regime":"mica","reportingEntityLei":"529900T8BM49AURSDO55","publishedVersion":3,"cadence":"quarterly","disabledAt":null,"editable":true,"anchoringEnabled":true,"anchorSeverities":["error"]}],"meta":{"total":1,"facets":{}},"links":{"self":"/v2/reporting/obligations","first":"/v2/accounts?sort=-firstSeenBlock&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/accounts?sort=-firstSeenBlock&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_SYSTEM_REQUIRED","CONTRACT_ERROR","FILING_NOT_FOUND","OBLIGATION_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_SYSTEM_REQUIRED","status":404,"message":"No blockchain system is available for this organization","data":{"id":"DALP-9440","why":"The active organization has no indexed system on the selected network, so the requested system-backed profile or operation does not exist there.","fix":"Deploy the organization system or select a network where its system is indexed, then retry.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["ANCHOR_ENABLEMENT_REFUSED","CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REACH_BACK_EXCEEDED","REPORTING_FILING_ROW_VERSION_CONFLICT","REPORTING_GENERATION_CONFLICT","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"ANCHOR_ENABLEMENT_REFUSED","status":409,"message":"Anchoring could not be turned on","data":{"id":"DALP-0727","why":"A configuration check refused anchoring for this obligation. `data.reason` names which check.","fix":"Read `data.reason`: register the issuer for the document-hash topic, give its managed signer a claim key, choose a warning severity where publication is the fulfilment act, and confirm the disclosure with a written reason.","retryable":false,"category":"domain","reason":"disclosure-not-confirmed"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["APPROVER_SHORTFALL","CONTRACT_ERROR","REPORTING_COVERAGE_UNAVAILABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"APPROVER_SHORTFALL","status":422,"message":"The organization has too few approvers to publish","data":{"id":"DALP-0719","why":"The organization has fewer approvers than maker-checker publishing requires.","fix":"Give a second owner or administrator to the organization, then publish again.","retryable":false,"category":"client","approvers":1,"required":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","REPORTING_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns every reporting obligation the active organization can see: the ones it configured, plus the platform catalog entries every deployment carries. A catalog entry reads `editable: false`. Repeating the request is safe.","summary":"List reporting obligations","x-dalp-auth":"session-or-api-key"},"post":{"tags":["Regulatory reporting"],"operationId":"reporting.obligations.obligationsCreateDraft","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Creates a draft obligation.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ReportingObligation"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"obl_mica_art_quarterly","organizationId":"org_1","isSystem":false,"name":"MiCA asset-referenced token quarterly report","description":"Quarterly reserve and holder position report for an asset-referenced token issuer.","regime":"mica","reportingEntityLei":"529900T8BM49AURSDO55","publishedVersion":3,"cadence":"quarterly","disabledAt":null,"editable":true,"anchoringEnabled":true,"anchorSeverities":["error","warning"]},"links":{"self":"/v2/reporting/obligations/obl_mica_art_quarterly"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_SYSTEM_REQUIRED","CONTRACT_ERROR","FILING_NOT_FOUND","OBLIGATION_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_SYSTEM_REQUIRED","status":404,"message":"No blockchain system is available for this organization","data":{"id":"DALP-9440","why":"The active organization has no indexed system on the selected network, so the requested system-backed profile or operation does not exist there.","fix":"Deploy the organization system or select a network where its system is indexed, then retry.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["ANCHOR_ENABLEMENT_REFUSED","CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REACH_BACK_EXCEEDED","REPORTING_FILING_ROW_VERSION_CONFLICT","REPORTING_GENERATION_CONFLICT","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"ANCHOR_ENABLEMENT_REFUSED","status":409,"message":"Anchoring could not be turned on","data":{"id":"DALP-0727","why":"A configuration check refused anchoring for this obligation. `data.reason` names which check.","fix":"Read `data.reason`: register the issuer for the document-hash topic, give its managed signer a claim key, choose a warning severity where publication is the fulfilment act, and confirm the disclosure with a written reason.","retryable":false,"category":"domain","reason":"disclosure-not-confirmed"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["APPROVER_SHORTFALL","CONTRACT_ERROR","REPORTING_COVERAGE_UNAVAILABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"APPROVER_SHORTFALL","status":422,"message":"The organization has too few approvers to publish","data":{"id":"DALP-0719","why":"The organization has fewer approvers than maker-checker publishing requires.","fix":"Give a second owner or administrator to the organization, then publish again.","retryable":false,"category":"client","approvers":1,"required":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","REPORTING_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Creates a draft obligation. The draft is not yet a duty: nothing materializes a filing period until a version is published. You choose the identifier, so retrying after a lost response is safe.","summary":"Create a reporting obligation draft","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportingObligationDraft"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/reporting/obligations/{obligationId}":{"get":{"tags":["Regulatory reporting"],"operationId":"reporting.obligations.obligationsGet","parameters":[{"name":"obligationId","in":"path","schema":{"type":"string","minLength":1},"required":true}],"responses":{"200":{"description":"The requested obligation as configured.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ReportingObligation"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"obl_mica_art_quarterly","organizationId":"org_1","isSystem":false,"name":"MiCA asset-referenced token quarterly report","description":"Quarterly reserve and holder position report for an asset-referenced token issuer.","regime":"mica","reportingEntityLei":"529900T8BM49AURSDO55","publishedVersion":3,"cadence":"quarterly","disabledAt":null,"editable":true,"anchoringEnabled":true,"anchorSeverities":["error","warning"]},"links":{"self":"/v2/reporting/obligations/obl_mica_art_quarterly"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_SYSTEM_REQUIRED","CONTRACT_ERROR","FILING_NOT_FOUND","OBLIGATION_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_SYSTEM_REQUIRED","status":404,"message":"No blockchain system is available for this organization","data":{"id":"DALP-9440","why":"The active organization has no indexed system on the selected network, so the requested system-backed profile or operation does not exist there.","fix":"Deploy the organization system or select a network where its system is indexed, then retry.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["ANCHOR_ENABLEMENT_REFUSED","CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REACH_BACK_EXCEEDED","REPORTING_FILING_ROW_VERSION_CONFLICT","REPORTING_GENERATION_CONFLICT","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"ANCHOR_ENABLEMENT_REFUSED","status":409,"message":"Anchoring could not be turned on","data":{"id":"DALP-0727","why":"A configuration check refused anchoring for this obligation. `data.reason` names which check.","fix":"Read `data.reason`: register the issuer for the document-hash topic, give its managed signer a claim key, choose a warning severity where publication is the fulfilment act, and confirm the disclosure with a written reason.","retryable":false,"category":"domain","reason":"disclosure-not-confirmed"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["APPROVER_SHORTFALL","CONTRACT_ERROR","REPORTING_COVERAGE_UNAVAILABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"APPROVER_SHORTFALL","status":422,"message":"The organization has too few approvers to publish","data":{"id":"DALP-0719","why":"The organization has fewer approvers than maker-checker publishing requires.","fix":"Give a second owner or administrator to the organization, then publish again.","retryable":false,"category":"client","approvers":1,"required":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","REPORTING_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one obligation as configured, with the version pointer naming its latest published version. An obligation outside the active organization answers 404. Repeating the request is safe.","summary":"Read a reporting obligation","x-dalp-auth":"session-or-api-key"},"put":{"tags":["Regulatory reporting"],"operationId":"reporting.obligations.obligationsUpdateDraft","parameters":[{"name":"obligationId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Replaces the draft configuration.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ReportingObligation"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"obl_mica_art_quarterly","organizationId":"org_1","isSystem":false,"name":"MiCA asset-referenced token quarterly report","description":"Quarterly reserve and holder position report for an asset-referenced token issuer.","regime":"mica","reportingEntityLei":"529900T8BM49AURSDO55","publishedVersion":3,"cadence":"quarterly","disabledAt":null,"editable":true,"anchoringEnabled":true,"anchorSeverities":["error","warning"]},"links":{"self":"/v2/reporting/obligations/obl_mica_art_quarterly"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_SYSTEM_REQUIRED","CONTRACT_ERROR","FILING_NOT_FOUND","OBLIGATION_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_SYSTEM_REQUIRED","status":404,"message":"No blockchain system is available for this organization","data":{"id":"DALP-9440","why":"The active organization has no indexed system on the selected network, so the requested system-backed profile or operation does not exist there.","fix":"Deploy the organization system or select a network where its system is indexed, then retry.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["ANCHOR_ENABLEMENT_REFUSED","CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REACH_BACK_EXCEEDED","REPORTING_FILING_ROW_VERSION_CONFLICT","REPORTING_GENERATION_CONFLICT","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"ANCHOR_ENABLEMENT_REFUSED","status":409,"message":"Anchoring could not be turned on","data":{"id":"DALP-0727","why":"A configuration check refused anchoring for this obligation. `data.reason` names which check.","fix":"Read `data.reason`: register the issuer for the document-hash topic, give its managed signer a claim key, choose a warning severity where publication is the fulfilment act, and confirm the disclosure with a written reason.","retryable":false,"category":"domain","reason":"disclosure-not-confirmed"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["APPROVER_SHORTFALL","CONTRACT_ERROR","REPORTING_COVERAGE_UNAVAILABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"APPROVER_SHORTFALL","status":422,"message":"The organization has too few approvers to publish","data":{"id":"DALP-0719","why":"The organization has fewer approvers than maker-checker publishing requires.","fix":"Give a second owner or administrator to the organization, then publish again.","retryable":false,"category":"client","approvers":1,"required":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","REPORTING_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Replaces the draft configuration. Published versions are untouched, so a filing already generated stays explainable by the version it was generated under. A platform catalog obligation answers 409.","summary":"Update a reporting obligation draft","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportingObligationDraft"}}},"required":true},"x-dalp-auth":"session-or-api-key"},"delete":{"tags":["Regulatory reporting"],"operationId":"reporting.obligations.obligationsDisable","parameters":[{"name":"obligationId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The obligation, now carrying its disabled timestamp.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ReportingObligation"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"obl_mica_art_quarterly","organizationId":"org_1","isSystem":false,"name":"MiCA asset-referenced token quarterly report","description":"Quarterly reserve and holder position report for an asset-referenced token issuer.","regime":"mica","reportingEntityLei":"529900T8BM49AURSDO55","publishedVersion":3,"cadence":"quarterly","disabledAt":null,"editable":true,"anchoringEnabled":true,"anchorSeverities":["error","warning"]},"links":{"self":"/v2/reporting/obligations/obl_mica_art_quarterly"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_SYSTEM_REQUIRED","CONTRACT_ERROR","FILING_NOT_FOUND","OBLIGATION_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_SYSTEM_REQUIRED","status":404,"message":"No blockchain system is available for this organization","data":{"id":"DALP-9440","why":"The active organization has no indexed system on the selected network, so the requested system-backed profile or operation does not exist there.","fix":"Deploy the organization system or select a network where its system is indexed, then retry.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["ANCHOR_ENABLEMENT_REFUSED","CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REACH_BACK_EXCEEDED","REPORTING_FILING_ROW_VERSION_CONFLICT","REPORTING_GENERATION_CONFLICT","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"ANCHOR_ENABLEMENT_REFUSED","status":409,"message":"Anchoring could not be turned on","data":{"id":"DALP-0727","why":"A configuration check refused anchoring for this obligation. `data.reason` names which check.","fix":"Read `data.reason`: register the issuer for the document-hash topic, give its managed signer a claim key, choose a warning severity where publication is the fulfilment act, and confirm the disclosure with a written reason.","retryable":false,"category":"domain","reason":"disclosure-not-confirmed"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["APPROVER_SHORTFALL","CONTRACT_ERROR","REPORTING_COVERAGE_UNAVAILABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"APPROVER_SHORTFALL","status":422,"message":"The organization has too few approvers to publish","data":{"id":"DALP-0719","why":"The organization has fewer approvers than maker-checker publishing requires.","fix":"Give a second owner or administrator to the organization, then publish again.","retryable":false,"category":"client","approvers":1,"required":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","REPORTING_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Stops new filing periods. Open periods run to completion and the published versions stay on record, because a duty the organization once owed is part of its record. There is no delete.","summary":"Disable a reporting obligation","x-dalp-auth":"session-or-api-key"}},"/api/v2/reporting/obligations/{obligationId}/publish":{"post":{"tags":["Regulatory reporting"],"operationId":"reporting.obligations.obligationsPublish","parameters":[{"name":"obligationId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The frozen version the draft became.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ReportingObligationVersion"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","obligationId":"obl_mica_art_quarterly","version":3,"publishedAt":"2026-08-21T12:49:00.000Z","publishedBy":"usr_compliance_lead","config":{"scopeExpression":{"kind":"self"},"dataPointSet":[{"identifier":"holders","label":"Holders in issue","type":"integer","denomination":"EUR","dimensions":[]}],"derivationRules":[{"dataPoint":"holders","source":"holder-register","field":"count","aggregate":"none"}],"validationRules":[{"identity":"reserve-non-negative","version":1,"severity":"blocking","expression":"reserve >= 0","message":"Reserve may not be negative","effectiveFrom":"2026-01-01","effectiveTo":null}],"reportSet":["holder-register"],"cadence":"quarterly","deadlineRule":{"anchor":"periodEnd","offset":25,"unit":"calendarDays","calendars":["EU_TARGET2","EU_TARGET2"],"roll":"following","cutoffLocalTime":"17:00","timeZone":"Europe/Brussels"},"filerCalendar":"EU_TARGET2","authorityCalendar":"EU_TARGET2","outputFormat":"xlsx","reportFormat":null,"fulfilmentMode":"authority_acknowledgement","ackSlaHours":1,"requiresMakerChecker":true,"operatorApprovalAllowed":false,"acceptsNilReturn":true,"retentionClass":"seven-years","reachBackMonths":12,"deadlineAuthoredBy":null,"deadlineCitation":null}},"links":{"self":"/v2/reporting/obligations/obl_mica_art_quarterly"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_SYSTEM_REQUIRED","CONTRACT_ERROR","FILING_NOT_FOUND","OBLIGATION_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_SYSTEM_REQUIRED","status":404,"message":"No blockchain system is available for this organization","data":{"id":"DALP-9440","why":"The active organization has no indexed system on the selected network, so the requested system-backed profile or operation does not exist there.","fix":"Deploy the organization system or select a network where its system is indexed, then retry.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["ANCHOR_ENABLEMENT_REFUSED","CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REACH_BACK_EXCEEDED","REPORTING_FILING_ROW_VERSION_CONFLICT","REPORTING_GENERATION_CONFLICT","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"ANCHOR_ENABLEMENT_REFUSED","status":409,"message":"Anchoring could not be turned on","data":{"id":"DALP-0727","why":"A configuration check refused anchoring for this obligation. `data.reason` names which check.","fix":"Read `data.reason`: register the issuer for the document-hash topic, give its managed signer a claim key, choose a warning severity where publication is the fulfilment act, and confirm the disclosure with a written reason.","retryable":false,"category":"domain","reason":"disclosure-not-confirmed"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["APPROVER_SHORTFALL","CONTRACT_ERROR","REPORTING_COVERAGE_UNAVAILABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"APPROVER_SHORTFALL","status":422,"message":"The organization has too few approvers to publish","data":{"id":"DALP-0719","why":"The organization has fewer approvers than maker-checker publishing requires.","fix":"Give a second owner or administrator to the organization, then publish again.","retryable":false,"category":"client","approvers":1,"required":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","REPORTING_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Freezes the current draft as the next version. From then on, filing periods materialize against it. An obligation requiring maker-checker sign-off is refused when the organization has fewer than two people who can sign, because that is a deadlock discovered on a filing deadline rather than a policy.","summary":"Publish a reporting obligation version","x-dalp-auth":"session-or-api-key"}},"/api/v2/reporting/obligations/{obligationId}/versions":{"get":{"tags":["Regulatory reporting"],"operationId":"reporting.obligations.obligationsListVersions","parameters":[{"name":"obligationId","in":"path","schema":{"type":"string","minLength":1},"required":true}],"responses":{"200":{"description":"Published versions of the obligation with their configuration.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ReportingObligationVersion"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[],"meta":{"total":1,"facets":{}},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants","first":"/v2/accounts?sort=-firstSeenBlock&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/accounts?sort=-firstSeenBlock&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_SYSTEM_REQUIRED","CONTRACT_ERROR","FILING_NOT_FOUND","OBLIGATION_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_SYSTEM_REQUIRED","status":404,"message":"No blockchain system is available for this organization","data":{"id":"DALP-9440","why":"The active organization has no indexed system on the selected network, so the requested system-backed profile or operation does not exist there.","fix":"Deploy the organization system or select a network where its system is indexed, then retry.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["ANCHOR_ENABLEMENT_REFUSED","CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REACH_BACK_EXCEEDED","REPORTING_FILING_ROW_VERSION_CONFLICT","REPORTING_GENERATION_CONFLICT","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"ANCHOR_ENABLEMENT_REFUSED","status":409,"message":"Anchoring could not be turned on","data":{"id":"DALP-0727","why":"A configuration check refused anchoring for this obligation. `data.reason` names which check.","fix":"Read `data.reason`: register the issuer for the document-hash topic, give its managed signer a claim key, choose a warning severity where publication is the fulfilment act, and confirm the disclosure with a written reason.","retryable":false,"category":"domain","reason":"disclosure-not-confirmed"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["APPROVER_SHORTFALL","CONTRACT_ERROR","REPORTING_COVERAGE_UNAVAILABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"APPROVER_SHORTFALL","status":422,"message":"The organization has too few approvers to publish","data":{"id":"DALP-0719","why":"The organization has fewer approvers than maker-checker publishing requires.","fix":"Give a second owner or administrator to the organization, then publish again.","retryable":false,"category":"client","approvers":1,"required":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","REPORTING_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the published versions of the reporting obligation in the path, each with its version number, publication time and author, and configuration. Repeating the request is safe.","summary":"List obligation versions","x-dalp-auth":"session-or-api-key"}},"/api/v2/reporting/filing-periods":{"get":{"tags":["Regulatory reporting"],"operationId":"reporting.filings.filingsListPeriods","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000}},"allOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"object","properties":{"eq":{"anyOf":[{"type":"string"},{"type":"number"}]},"ne":{"anyOf":[{"type":"string"},{"type":"number"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]}},"additionalProperties":false}]}}]},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"One SQL-paginated collection of filing periods for the active organization. Every row carries the claimed family set and one state per claimed family; a refused or historically unconfirmed family is never omitted.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ReportingFilingPeriod"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","obligationId":"quarterly-reserve","obligationVersionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","obligationName":"Quarterly reserve report","regime":"mica","organizationId":"org_1","state":"open","referenceStart":"2026-04-01T00:00:00.000Z","referenceEnd":"2026-07-01T00:00:00.000Z","referenceZone":"Europe/Brussels","fiscalLabel":"2026-Q2","remittanceAt":"2026-07-26T15:00:00.000Z","fulfilledLate":false,"coveredFamilies":["evm"],"familyCoverage":[{"family":"evm","state":"pending"}],"latestSubmissionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","latestSubmissionState":"blocked"}],"meta":{"total":1,"facets":{}},"links":{"self":"/v2/reporting/filing-periods?page[offset]=0&page[limit]=50","first":"/v2/reporting/filing-periods?page[offset]=0&page[limit]=50","prev":null,"next":null,"last":"/v2/reporting/filing-periods?page[offset]=0&page[limit]=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_SYSTEM_REQUIRED","CONTRACT_ERROR","FILING_NOT_FOUND","OBLIGATION_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_SYSTEM_REQUIRED","status":404,"message":"No blockchain system is available for this organization","data":{"id":"DALP-9440","why":"The active organization has no indexed system on the selected network, so the requested system-backed profile or operation does not exist there.","fix":"Deploy the organization system or select a network where its system is indexed, then retry.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["ANCHOR_ENABLEMENT_REFUSED","CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REACH_BACK_EXCEEDED","REPORTING_FILING_ROW_VERSION_CONFLICT","REPORTING_GENERATION_CONFLICT","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"ANCHOR_ENABLEMENT_REFUSED","status":409,"message":"Anchoring could not be turned on","data":{"id":"DALP-0727","why":"A configuration check refused anchoring for this obligation. `data.reason` names which check.","fix":"Read `data.reason`: register the issuer for the document-hash topic, give its managed signer a claim key, choose a warning severity where publication is the fulfilment act, and confirm the disclosure with a written reason.","retryable":false,"category":"domain","reason":"disclosure-not-confirmed"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["APPROVER_SHORTFALL","CONTRACT_ERROR","REPORTING_COVERAGE_UNAVAILABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"APPROVER_SHORTFALL","status":422,"message":"The organization has too few approvers to publish","data":{"id":"DALP-0719","why":"The organization has fewer approvers than maker-checker publishing requires.","fix":"Give a second owner or administrator to the organization, then publish again.","retryable":false,"category":"client","approvers":1,"required":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","REPORTING_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of the active organization's filing periods, ordered by remittance deadline unless requested otherwise. Every row names each family the period claimed and whether that family is pending, covered, refused with reasons, or historically unconfirmed.","summary":"List reporting filing periods","x-dalp-auth":"session-or-api-key"}},"/api/v2/reporting/filing-periods/{filingPeriodId}":{"get":{"tags":["Regulatory reporting"],"operationId":"reporting.filings.filingsGetPeriod","parameters":[{"name":"filingPeriodId","in":"path","schema":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"},"required":true}],"responses":{"200":{"description":"One filing period of the active organization, with one state per claimed family.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ReportingFilingPeriod"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","obligationId":"quarterly-reserve","obligationVersionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","obligationName":"Quarterly reserve report","regime":"mica","organizationId":"org_1","state":"open","referenceStart":"2026-04-01T00:00:00.000Z","referenceEnd":"2026-07-01T00:00:00.000Z","referenceZone":"Europe/Brussels","fiscalLabel":"2026-Q2","remittanceAt":"2026-07-26T15:00:00.000Z","fulfilledLate":false,"coveredFamilies":["evm"],"familyCoverage":[{"family":"evm","state":"pending"}],"latestSubmissionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","latestSubmissionState":"blocked"},"links":{"self":"/v2/reporting/filing-periods/per_01H"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_SYSTEM_REQUIRED","CONTRACT_ERROR","FILING_NOT_FOUND","OBLIGATION_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_SYSTEM_REQUIRED","status":404,"message":"No blockchain system is available for this organization","data":{"id":"DALP-9440","why":"The active organization has no indexed system on the selected network, so the requested system-backed profile or operation does not exist there.","fix":"Deploy the organization system or select a network where its system is indexed, then retry.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["ANCHOR_ENABLEMENT_REFUSED","CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REACH_BACK_EXCEEDED","REPORTING_FILING_ROW_VERSION_CONFLICT","REPORTING_GENERATION_CONFLICT","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"ANCHOR_ENABLEMENT_REFUSED","status":409,"message":"Anchoring could not be turned on","data":{"id":"DALP-0727","why":"A configuration check refused anchoring for this obligation. `data.reason` names which check.","fix":"Read `data.reason`: register the issuer for the document-hash topic, give its managed signer a claim key, choose a warning severity where publication is the fulfilment act, and confirm the disclosure with a written reason.","retryable":false,"category":"domain","reason":"disclosure-not-confirmed"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["APPROVER_SHORTFALL","CONTRACT_ERROR","REPORTING_COVERAGE_UNAVAILABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"APPROVER_SHORTFALL","status":422,"message":"The organization has too few approvers to publish","data":{"id":"DALP-0719","why":"The organization has fewer approvers than maker-checker publishing requires.","fix":"Give a second owner or administrator to the organization, then publish again.","retryable":false,"category":"client","approvers":1,"required":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","REPORTING_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one of the active organization's filing periods, in the shape the collection returns it: the claimed family set with one state per claimed family, the remittance deadline, and the newest submission against the period. A period belonging to another organization answers `404` rather than `403`, because a `403` would confirm the identifier exists.","summary":"Read one reporting filing period","x-dalp-auth":"session-or-api-key"}},"/api/v2/reporting/submissions/{submissionId}":{"get":{"tags":["Regulatory reporting"],"operationId":"reporting.filings.filingsGetSubmission","parameters":[{"name":"submissionId","in":"path","schema":{"type":"string","minLength":1},"required":true}],"responses":{"200":{"description":"One filing attempt of the active organization.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ReportingSubmission"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","filingPeriodId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","organizationId":"org_1","attemptSequence":1,"state":"pending_approval","actionType":"new","correctsSubmissionId":null,"artifactDigest":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","rowVersion":3,"makerUserId":"usr_maker","checkerUserId":null,"approvedAt":null,"submittedAt":null,"ackReceiptReference":null,"ackAuthorityTimestamp":null,"publishedAt":null,"publicationReference":null,"anchorState":"not_requested","anchorDigest":null,"anchorReference":null,"anchorEntryId":null,"anchorRegistryAddress":null,"anchorChainId":null,"anchoredAt":null},"links":{"self":"/v2/reporting/submissions/sub_01H"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_SYSTEM_REQUIRED","CONTRACT_ERROR","FILING_NOT_FOUND","OBLIGATION_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_SYSTEM_REQUIRED","status":404,"message":"No blockchain system is available for this organization","data":{"id":"DALP-9440","why":"The active organization has no indexed system on the selected network, so the requested system-backed profile or operation does not exist there.","fix":"Deploy the organization system or select a network where its system is indexed, then retry.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["ANCHOR_ENABLEMENT_REFUSED","CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REACH_BACK_EXCEEDED","REPORTING_FILING_ROW_VERSION_CONFLICT","REPORTING_GENERATION_CONFLICT","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"ANCHOR_ENABLEMENT_REFUSED","status":409,"message":"Anchoring could not be turned on","data":{"id":"DALP-0727","why":"A configuration check refused anchoring for this obligation. `data.reason` names which check.","fix":"Read `data.reason`: register the issuer for the document-hash topic, give its managed signer a claim key, choose a warning severity where publication is the fulfilment act, and confirm the disclosure with a written reason.","retryable":false,"category":"domain","reason":"disclosure-not-confirmed"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["APPROVER_SHORTFALL","CONTRACT_ERROR","REPORTING_COVERAGE_UNAVAILABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"APPROVER_SHORTFALL","status":422,"message":"The organization has too few approvers to publish","data":{"id":"DALP-0719","why":"The organization has fewer approvers than maker-checker publishing requires.","fix":"Give a second owner or administrator to the organization, then publish again.","retryable":false,"category":"client","approvers":1,"required":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","REPORTING_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one of the active organization's filing attempts, including its anchor state. A submission belonging to another organization answers `404` rather than `403`, because a `403` would confirm the identifier exists.","summary":"Read one reporting submission","x-dalp-auth":"session-or-api-key"}},"/api/v2/reporting/submissions/{submissionId}/acts":{"post":{"tags":["Regulatory reporting"],"operationId":"reporting.filings.filingsAct","parameters":[{"name":"submissionId","in":"path","schema":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The reporting submission after the act, with its state and row version.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ReportingSubmission"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","filingPeriodId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","organizationId":"org_northwind_coffee","attemptSequence":1,"state":"queued","actionType":"new","correctsSubmissionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","artifactDigest":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","rowVersion":3,"makerUserId":"usr_maker","checkerUserId":"user-checker-001","approvedAt":"2026-06-05T14:05:00.000Z","submittedAt":"2026-06-04T10:22:00.000Z","ackReceiptReference":null,"ackAuthorityTimestamp":0,"publishedAt":"2026-03-04T09:12:41.000Z","publicationReference":null,"anchorState":"not_requested","anchorDigest":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","anchorReference":null,"anchorEntryId":null,"anchorRegistryAddress":null,"anchorChainId":11155111,"anchoredAt":"2026-04-02T09:15:00.000Z"},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_SYSTEM_REQUIRED","CONTRACT_ERROR","FILING_NOT_FOUND","OBLIGATION_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_SYSTEM_REQUIRED","status":404,"message":"No blockchain system is available for this organization","data":{"id":"DALP-9440","why":"The active organization has no indexed system on the selected network, so the requested system-backed profile or operation does not exist there.","fix":"Deploy the organization system or select a network where its system is indexed, then retry.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["ANCHOR_ENABLEMENT_REFUSED","CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REACH_BACK_EXCEEDED","REPORTING_FILING_ROW_VERSION_CONFLICT","REPORTING_GENERATION_CONFLICT","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"ANCHOR_ENABLEMENT_REFUSED","status":409,"message":"Anchoring could not be turned on","data":{"id":"DALP-0727","why":"A configuration check refused anchoring for this obligation. `data.reason` names which check.","fix":"Read `data.reason`: register the issuer for the document-hash topic, give its managed signer a claim key, choose a warning severity where publication is the fulfilment act, and confirm the disclosure with a written reason.","retryable":false,"category":"domain","reason":"disclosure-not-confirmed"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["APPROVER_SHORTFALL","CONTRACT_ERROR","REPORTING_COVERAGE_UNAVAILABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"APPROVER_SHORTFALL","status":422,"message":"The organization has too few approvers to publish","data":{"id":"DALP-0719","why":"The organization has fewer approvers than maker-checker publishing requires.","fix":"Give a second owner or administrator to the organization, then publish again.","retryable":false,"category":"client","approvers":1,"required":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","REPORTING_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Applies one act to the reporting submission in the path, such as generate, sign off, submit, reject, replace, or acknowledge. The platform checks the act against the submission state and returns the submission.","summary":"Act on a reporting submission","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportingSubmissionAct"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/reporting/submissions/{submissionId}/generations":{"post":{"tags":["Regulatory reporting"],"operationId":"reporting.filings.filingsStartGeneration","parameters":[{"name":"submissionId","in":"path","schema":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Submission identifier and execution identifier of the generation run.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ReportingGenerationHandle"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"submissionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","executionId":"reporting-generation-1"},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_SYSTEM_REQUIRED","CONTRACT_ERROR","FILING_NOT_FOUND","OBLIGATION_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_SYSTEM_REQUIRED","status":404,"message":"No blockchain system is available for this organization","data":{"id":"DALP-9440","why":"The active organization has no indexed system on the selected network, so the requested system-backed profile or operation does not exist there.","fix":"Deploy the organization system or select a network where its system is indexed, then retry.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["ANCHOR_ENABLEMENT_REFUSED","CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REACH_BACK_EXCEEDED","REPORTING_FILING_ROW_VERSION_CONFLICT","REPORTING_GENERATION_CONFLICT","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"ANCHOR_ENABLEMENT_REFUSED","status":409,"message":"Anchoring could not be turned on","data":{"id":"DALP-0727","why":"A configuration check refused anchoring for this obligation. `data.reason` names which check.","fix":"Read `data.reason`: register the issuer for the document-hash topic, give its managed signer a claim key, choose a warning severity where publication is the fulfilment act, and confirm the disclosure with a written reason.","retryable":false,"category":"domain","reason":"disclosure-not-confirmed"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["APPROVER_SHORTFALL","CONTRACT_ERROR","REPORTING_COVERAGE_UNAVAILABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"APPROVER_SHORTFALL","status":422,"message":"The organization has too few approvers to publish","data":{"id":"DALP-0719","why":"The organization has fewer approvers than maker-checker publishing requires.","fix":"Give a second owner or administrator to the organization, then publish again.","retryable":false,"category":"client","approvers":1,"required":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","REPORTING_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Starts generation of the filing artifact for the reporting submission in the path. The platform returns the submission identifier and the execution identifier of the generation run.","summary":"Start submission generation","x-dalp-auth":"session-or-api-key"}},"/api/v2/reporting/obligations/{obligationId}/anchor-settings":{"get":{"tags":["Regulatory reporting"],"operationId":"reporting.filings.filingsGetAnchorSettings","parameters":[{"name":"obligationId","in":"path","schema":{"type":"string","minLength":1},"required":true}],"responses":{"200":{"description":"Anchor settings of the obligation with the rationale and author of each change.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ReportingAnchorSetting"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","obligationId":"quarterly-reserve","organizationId":"org_northwind_coffee","enabled":true,"issuer":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","claimTopic":"documentHash","chainId":11155111,"documentType":"regulatory-filing","label":"Pay in USDC","severity":"error","disclosureConfirmedAt":"2026-07-01T08:00:00.000Z","rationale":"Signing key withdrawn after rotation.","changedBy":"user_northwind_treasury","changedAt":"2026-07-01T08:00:00.000Z"}],"meta":{"total":1,"facets":{}},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants","first":"/v2/accounts?sort=-firstSeenBlock&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/accounts?sort=-firstSeenBlock&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_SYSTEM_REQUIRED","CONTRACT_ERROR","FILING_NOT_FOUND","OBLIGATION_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_SYSTEM_REQUIRED","status":404,"message":"No blockchain system is available for this organization","data":{"id":"DALP-9440","why":"The active organization has no indexed system on the selected network, so the requested system-backed profile or operation does not exist there.","fix":"Deploy the organization system or select a network where its system is indexed, then retry.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["ANCHOR_ENABLEMENT_REFUSED","CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REACH_BACK_EXCEEDED","REPORTING_FILING_ROW_VERSION_CONFLICT","REPORTING_GENERATION_CONFLICT","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"ANCHOR_ENABLEMENT_REFUSED","status":409,"message":"Anchoring could not be turned on","data":{"id":"DALP-0727","why":"A configuration check refused anchoring for this obligation. `data.reason` names which check.","fix":"Read `data.reason`: register the issuer for the document-hash topic, give its managed signer a claim key, choose a warning severity where publication is the fulfilment act, and confirm the disclosure with a written reason.","retryable":false,"category":"domain","reason":"disclosure-not-confirmed"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["APPROVER_SHORTFALL","CONTRACT_ERROR","REPORTING_COVERAGE_UNAVAILABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"APPROVER_SHORTFALL","status":422,"message":"The organization has too few approvers to publish","data":{"id":"DALP-0719","why":"The organization has fewer approvers than maker-checker publishing requires.","fix":"Give a second owner or administrator to the organization, then publish again.","retryable":false,"category":"client","approvers":1,"required":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","REPORTING_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the on-chain anchoring settings recorded for the reporting obligation in the path, with the issuer, chain, document type, rationale, and who changed each one. Repeating the request is safe.","summary":"List obligation anchor settings","x-dalp-auth":"session-or-api-key"},"put":{"tags":["Regulatory reporting"],"operationId":"reporting.filings.filingsPutAnchorSettings","parameters":[{"name":"obligationId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The anchor setting as stored, with its rationale and author.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ReportingAnchorSetting"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","obligationId":"quarterly-reserve","organizationId":"org_northwind_coffee","enabled":true,"issuer":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","claimTopic":"documentHash","chainId":11155111,"documentType":"regulatory-filing","label":"Pay in USDC","severity":"error","disclosureConfirmedAt":"2026-07-01T08:00:00.000Z","rationale":"Signing key withdrawn after rotation.","changedBy":"user_northwind_treasury","changedAt":"2026-07-01T08:00:00.000Z"},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_SYSTEM_REQUIRED","CONTRACT_ERROR","FILING_NOT_FOUND","OBLIGATION_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_SYSTEM_REQUIRED","status":404,"message":"No blockchain system is available for this organization","data":{"id":"DALP-9440","why":"The active organization has no indexed system on the selected network, so the requested system-backed profile or operation does not exist there.","fix":"Deploy the organization system or select a network where its system is indexed, then retry.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["ANCHOR_ENABLEMENT_REFUSED","CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REACH_BACK_EXCEEDED","REPORTING_FILING_ROW_VERSION_CONFLICT","REPORTING_GENERATION_CONFLICT","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"ANCHOR_ENABLEMENT_REFUSED","status":409,"message":"Anchoring could not be turned on","data":{"id":"DALP-0727","why":"A configuration check refused anchoring for this obligation. `data.reason` names which check.","fix":"Read `data.reason`: register the issuer for the document-hash topic, give its managed signer a claim key, choose a warning severity where publication is the fulfilment act, and confirm the disclosure with a written reason.","retryable":false,"category":"domain","reason":"disclosure-not-confirmed"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["APPROVER_SHORTFALL","CONTRACT_ERROR","REPORTING_COVERAGE_UNAVAILABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"APPROVER_SHORTFALL","status":422,"message":"The organization has too few approvers to publish","data":{"id":"DALP-0719","why":"The organization has fewer approvers than maker-checker publishing requires.","fix":"Give a second owner or administrator to the organization, then publish again.","retryable":false,"category":"client","approvers":1,"required":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","REPORTING_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Enables or disables on-chain anchoring of filings for the reporting obligation in the path. Send a rationale with either act. To enable, also send the chain, issuer, document type, severity, and label, and confirm the disclosure.","summary":"Enable or disable obligation anchoring","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportingAnchorSettingAct"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/reporting/submissions/{submissionId}/anchor-overrides":{"post":{"tags":["Regulatory reporting"],"operationId":"reporting.filings.filingsOverrideAnchor","parameters":[{"name":"submissionId","in":"path","schema":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The reporting submission after the override, with its state and row version.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ReportingSubmission"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","filingPeriodId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","organizationId":"org_northwind_coffee","attemptSequence":1,"state":"queued","actionType":"new","correctsSubmissionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","artifactDigest":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","rowVersion":3,"makerUserId":"usr_maker","checkerUserId":"user-checker-001","approvedAt":"2026-06-05T14:05:00.000Z","submittedAt":"2026-06-04T10:22:00.000Z","ackReceiptReference":null,"ackAuthorityTimestamp":0,"publishedAt":"2026-03-04T09:12:41.000Z","publicationReference":null,"anchorState":"not_requested","anchorDigest":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","anchorReference":null,"anchorEntryId":null,"anchorRegistryAddress":null,"anchorChainId":11155111,"anchoredAt":"2026-04-02T09:15:00.000Z"},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_SYSTEM_REQUIRED","CONTRACT_ERROR","FILING_NOT_FOUND","OBLIGATION_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_SYSTEM_REQUIRED","status":404,"message":"No blockchain system is available for this organization","data":{"id":"DALP-9440","why":"The active organization has no indexed system on the selected network, so the requested system-backed profile or operation does not exist there.","fix":"Deploy the organization system or select a network where its system is indexed, then retry.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["ANCHOR_ENABLEMENT_REFUSED","CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REACH_BACK_EXCEEDED","REPORTING_FILING_ROW_VERSION_CONFLICT","REPORTING_GENERATION_CONFLICT","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"ANCHOR_ENABLEMENT_REFUSED","status":409,"message":"Anchoring could not be turned on","data":{"id":"DALP-0727","why":"A configuration check refused anchoring for this obligation. `data.reason` names which check.","fix":"Read `data.reason`: register the issuer for the document-hash topic, give its managed signer a claim key, choose a warning severity where publication is the fulfilment act, and confirm the disclosure with a written reason.","retryable":false,"category":"domain","reason":"disclosure-not-confirmed"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["APPROVER_SHORTFALL","CONTRACT_ERROR","REPORTING_COVERAGE_UNAVAILABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"APPROVER_SHORTFALL","status":422,"message":"The organization has too few approvers to publish","data":{"id":"DALP-0719","why":"The organization has fewer approvers than maker-checker publishing requires.","fix":"Give a second owner or administrator to the organization, then publish again.","retryable":false,"category":"client","approvers":1,"required":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","REPORTING_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Overrides the on-chain anchoring requirement for the reporting submission in the path and records your rationale. The platform returns the submission.","summary":"Override submission anchoring","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"rationale":{"type":"string","minLength":1}},"required":["rationale"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/reporting/submissions":{"get":{"tags":["Regulatory reporting"],"operationId":"reporting.filings.submissionsList","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"id":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"filingPeriodId":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"state":{"anyOf":[{"type":"string","enum":["queued","generating","generation_failed","discarded","generated","validating","blocked","ready_for_review","pending_approval","approved","submitted","acknowledged","unacknowledged","published","rejected","superseded"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"actionType":{"anyOf":[{"type":"string","enum":["new","modify","correct","terminate","error","revive"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"anchorState":{"anyOf":[{"type":"string","enum":["not_requested","pending","confirmed","unconfirmed"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"createdAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","enum":["id","-id","filingPeriodId","-filingPeriodId","state","-state","actionType","-actionType","anchorState","-anchorState","createdAt","-createdAt"]},"required":false}],"responses":{"200":{"description":"One SQL-paginated collection of submission attempts for the active organization.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ReportingSubmission"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","filingPeriodId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","organizationId":"org_1","attemptSequence":1,"state":"pending_approval","actionType":"new","correctsSubmissionId":null,"artifactDigest":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","rowVersion":3,"makerUserId":"usr_maker","checkerUserId":null,"approvedAt":null,"submittedAt":null,"ackReceiptReference":null,"ackAuthorityTimestamp":null,"publishedAt":null,"publicationReference":null,"anchorState":"not_requested","anchorDigest":null,"anchorReference":null,"anchorEntryId":null,"anchorRegistryAddress":null,"anchorChainId":null,"anchoredAt":null}],"meta":{"total":1,"facets":{}},"links":{"self":"/v2/reporting/submissions?page[offset]=0&page[limit]=50","first":"/v2/reporting/submissions?page[offset]=0&page[limit]=50","prev":null,"next":null,"last":"/v2/reporting/submissions?page[offset]=0&page[limit]=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_SYSTEM_REQUIRED","CONTRACT_ERROR","FILING_NOT_FOUND","OBLIGATION_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_SYSTEM_REQUIRED","status":404,"message":"No blockchain system is available for this organization","data":{"id":"DALP-9440","why":"The active organization has no indexed system on the selected network, so the requested system-backed profile or operation does not exist there.","fix":"Deploy the organization system or select a network where its system is indexed, then retry.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["ANCHOR_ENABLEMENT_REFUSED","CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REACH_BACK_EXCEEDED","REPORTING_FILING_ROW_VERSION_CONFLICT","REPORTING_GENERATION_CONFLICT","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"ANCHOR_ENABLEMENT_REFUSED","status":409,"message":"Anchoring could not be turned on","data":{"id":"DALP-0727","why":"A configuration check refused anchoring for this obligation. `data.reason` names which check.","fix":"Read `data.reason`: register the issuer for the document-hash topic, give its managed signer a claim key, choose a warning severity where publication is the fulfilment act, and confirm the disclosure with a written reason.","retryable":false,"category":"domain","reason":"disclosure-not-confirmed"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["APPROVER_SHORTFALL","CONTRACT_ERROR","REPORTING_COVERAGE_UNAVAILABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"APPROVER_SHORTFALL","status":422,"message":"The organization has too few approvers to publish","data":{"id":"DALP-0719","why":"The organization has fewer approvers than maker-checker publishing requires.","fix":"Give a second owner or administrator to the organization, then publish again.","retryable":false,"category":"client","approvers":1,"required":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","REPORTING_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of the active organization's filing attempts, ordered by creation time unless requested otherwise.","summary":"List reporting submissions","x-dalp-auth":"session-or-api-key"}},"/api/v2/reporting/submissions/{submissionId}/artifact":{"get":{"tags":["Regulatory reporting"],"operationId":"reporting.filings.submissionsArtifact","parameters":[{"name":"submissionId","in":"path","schema":{"type":"string","minLength":1},"required":true}],"responses":{"200":{"description":"One fifteen-minute download per stored part, or the record of an erasure.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ReportingSubmissionArtifact"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"status":"available","parts":[{"partIndex":0,"downloadUrl":"https://objects.example.invalid/reporting/org_1/sub_01H/part-0?X-Amz-Expires=900","expiresAt":"2026-06-30T12:15:00.000Z","partDigest":"sha256:6c1f2b7a9d0e4c3b8a5f1d2e7c9b0a4d6e8f1a3c5b7d9e0f2a4c6b8d0e2f4a6c","contentLength":48213,"mimeType":"application/xml"}],"tombstone":null,"legalHold":false,"artifactDigest":"sha256:6c1f2b7a9d0e4c3b8a5f1d2e7c9b0a4d6e8f1a3c5b7d9e0f2a4c6b8d0e2f4a6c","anchorDigest":"sha256:6c1f2b7a9d0e4c3b8a5f1d2e7c9b0a4d6e8f1a3c5b7d9e0f2a4c6b8d0e2f4a6c"},"links":{"self":"/v2/reporting/submissions/sub_01H/artifact"}}},"example-2":{"value":{"data":{"status":"erased","parts":[],"tombstone":{"retainedDigest":"sha256:6c1f2b7a9d0e4c3b8a5f1d2e7c9b0a4d6e8f1a3c5b7d9e0f2a4c6b8d0e2f4a6c","retentionBasis":"erasure-request-2026-08-14","objectsDeleted":1,"tombstonedAt":"2026-08-14T09:02:11.000Z"},"legalHold":false,"artifactDigest":"sha256:6c1f2b7a9d0e4c3b8a5f1d2e7c9b0a4d6e8f1a3c5b7d9e0f2a4c6b8d0e2f4a6c","anchorDigest":"sha256:6c1f2b7a9d0e4c3b8a5f1d2e7c9b0a4d6e8f1a3c5b7d9e0f2a4c6b8d0e2f4a6c"},"links":{"self":"/v2/reporting/submissions/sub_01H/artifact"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_SYSTEM_REQUIRED","CONTRACT_ERROR","FILING_NOT_FOUND","OBLIGATION_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_SYSTEM_REQUIRED","status":404,"message":"No blockchain system is available for this organization","data":{"id":"DALP-9440","why":"The active organization has no indexed system on the selected network, so the requested system-backed profile or operation does not exist there.","fix":"Deploy the organization system or select a network where its system is indexed, then retry.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["ANCHOR_ENABLEMENT_REFUSED","ARTIFACT_UNAVAILABLE","CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"ANCHOR_ENABLEMENT_REFUSED","status":409,"message":"Anchoring could not be turned on","data":{"id":"DALP-0727","why":"A configuration check refused anchoring for this obligation. `data.reason` names which check.","fix":"Read `data.reason`: register the issuer for the document-hash topic, give its managed signer a claim key, choose a warning severity where publication is the fulfilment act, and confirm the disclosure with a written reason.","retryable":false,"category":"domain","reason":"disclosure-not-confirmed"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","REPORTING_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one fifteen-minute download URL per stored part of the active organization's filing artifact, in manifest order, and records the successful read in the operations audit trail. A split artifact is returned as its parts and never assembled: the anchored digest is the manifest digest computed across them, so a concatenated file would hash to nothing that was ever committed. A filing whose objects have been erased answers `status: \"erased\"` with its tombstone rather than a refusal, because its digest is on chain forever and \"never existed\" would be a false statement about the platform's own evidence; a caller with no rights to the filing is refused instead, so the two are distinguishable. A filing under legal hold stays retrievable and reports the hold beside the download. Only an organization owner or a platform administrator may call this: the artifact carries holder-level personal data, and every other reporting read admits staff with a system role as well.","summary":"Download a reporting artifact","x-dalp-auth":"session-or-api-key"}},"/api/v2/reporting/submissions/{submissionId}/submit-for-review":{"post":{"tags":["Regulatory reporting"],"operationId":"reporting.filings.submissionsSubmitForReview","parameters":[{"name":"submissionId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The submission, now awaiting approval.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ReportingSubmission"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","filingPeriodId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","organizationId":"org_1","attemptSequence":1,"state":"pending_approval","actionType":"new","correctsSubmissionId":null,"artifactDigest":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","rowVersion":3,"makerUserId":"usr_maker","checkerUserId":null,"approvedAt":null,"submittedAt":null,"ackReceiptReference":null,"ackAuthorityTimestamp":null,"publishedAt":null,"publicationReference":null,"anchorState":"not_requested","anchorDigest":null,"anchorReference":null,"anchorEntryId":null,"anchorRegistryAddress":null,"anchorChainId":null,"anchoredAt":null},"links":{"self":"/v2/reporting/submissions/sub_01H"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_SYSTEM_REQUIRED","CONTRACT_ERROR","FILING_NOT_FOUND","OBLIGATION_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_SYSTEM_REQUIRED","status":404,"message":"No blockchain system is available for this organization","data":{"id":"DALP-9440","why":"The active organization has no indexed system on the selected network, so the requested system-backed profile or operation does not exist there.","fix":"Deploy the organization system or select a network where its system is indexed, then retry.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["ANCHOR_ENABLEMENT_REFUSED","CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REACH_BACK_EXCEEDED","REPORTING_FILING_ROW_VERSION_CONFLICT","REPORTING_GENERATION_CONFLICT","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"ANCHOR_ENABLEMENT_REFUSED","status":409,"message":"Anchoring could not be turned on","data":{"id":"DALP-0727","why":"A configuration check refused anchoring for this obligation. `data.reason` names which check.","fix":"Read `data.reason`: register the issuer for the document-hash topic, give its managed signer a claim key, choose a warning severity where publication is the fulfilment act, and confirm the disclosure with a written reason.","retryable":false,"category":"domain","reason":"disclosure-not-confirmed"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["APPROVER_SHORTFALL","CONTRACT_ERROR","REPORTING_COVERAGE_UNAVAILABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"APPROVER_SHORTFALL","status":422,"message":"The organization has too few approvers to publish","data":{"id":"DALP-0719","why":"The organization has fewer approvers than maker-checker publishing requires.","fix":"Give a second owner or administrator to the organization, then publish again.","retryable":false,"category":"client","approvers":1,"required":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","REPORTING_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Moves a reviewed submission to pending approval. A submission whose current state has no submit-for-review transition is refused with `TRANSITION_REFUSED`, whose `data.from` names the state it was in and `data.event` the transition it does not offer.","summary":"Put a submission up for approval","x-dalp-auth":"session-or-api-key"}},"/api/v2/reporting/submissions/{submissionId}/approve":{"post":{"tags":["Regulatory reporting"],"operationId":"reporting.filings.submissionsApprove","parameters":[{"name":"submissionId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The approved submission.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ReportingSubmission"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","filingPeriodId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","organizationId":"org_1","attemptSequence":1,"state":"pending_approval","actionType":"new","correctsSubmissionId":null,"artifactDigest":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","rowVersion":3,"makerUserId":"usr_maker","checkerUserId":null,"approvedAt":null,"submittedAt":null,"ackReceiptReference":null,"ackAuthorityTimestamp":null,"publishedAt":null,"publicationReference":null,"anchorState":"not_requested","anchorDigest":null,"anchorReference":null,"anchorEntryId":null,"anchorRegistryAddress":null,"anchorChainId":null,"anchoredAt":null},"links":{"self":"/v2/reporting/submissions/sub_01H"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_SYSTEM_REQUIRED","CONTRACT_ERROR","FILING_NOT_FOUND","OBLIGATION_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_SYSTEM_REQUIRED","status":404,"message":"No blockchain system is available for this organization","data":{"id":"DALP-9440","why":"The active organization has no indexed system on the selected network, so the requested system-backed profile or operation does not exist there.","fix":"Deploy the organization system or select a network where its system is indexed, then retry.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["ANCHOR_ENABLEMENT_REFUSED","CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REACH_BACK_EXCEEDED","REPORTING_FILING_ROW_VERSION_CONFLICT","REPORTING_GENERATION_CONFLICT","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"ANCHOR_ENABLEMENT_REFUSED","status":409,"message":"Anchoring could not be turned on","data":{"id":"DALP-0727","why":"A configuration check refused anchoring for this obligation. `data.reason` names which check.","fix":"Read `data.reason`: register the issuer for the document-hash topic, give its managed signer a claim key, choose a warning severity where publication is the fulfilment act, and confirm the disclosure with a written reason.","retryable":false,"category":"domain","reason":"disclosure-not-confirmed"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["APPROVER_SHORTFALL","CONTRACT_ERROR","REPORTING_COVERAGE_UNAVAILABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"APPROVER_SHORTFALL","status":422,"message":"The organization has too few approvers to publish","data":{"id":"DALP-0719","why":"The organization has fewer approvers than maker-checker publishing requires.","fix":"Give a second owner or administrator to the organization, then publish again.","retryable":false,"category":"client","approvers":1,"required":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","REPORTING_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Signs off on a submission. The approver must be someone other than the person who prepared it, must not be an operator acting as another user, and names the artifact digest they reviewed. Approving a submission that has been regenerated since is refused rather than applied to different bytes. Two approvers acting at once resolve to one winner and one conflict.","summary":"Approve a submission","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"approvedDigest":{"type":"string","minLength":1},"expectedRowVersion":{"type":"integer"}},"required":["approvedDigest","expectedRowVersion"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/reporting/submissions/{submissionId}/acknowledge":{"post":{"tags":["Regulatory reporting"],"operationId":"reporting.filings.submissionsAcknowledge","parameters":[{"name":"submissionId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The acknowledged submission.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ReportingSubmission"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","filingPeriodId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","organizationId":"org_1","attemptSequence":1,"state":"pending_approval","actionType":"new","correctsSubmissionId":null,"artifactDigest":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","rowVersion":3,"makerUserId":"usr_maker","checkerUserId":null,"approvedAt":null,"submittedAt":null,"ackReceiptReference":null,"ackAuthorityTimestamp":null,"publishedAt":null,"publicationReference":null,"anchorState":"not_requested","anchorDigest":null,"anchorReference":null,"anchorEntryId":null,"anchorRegistryAddress":null,"anchorChainId":null,"anchoredAt":null},"links":{"self":"/v2/reporting/submissions/sub_01H"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_SYSTEM_REQUIRED","CONTRACT_ERROR","FILING_NOT_FOUND","OBLIGATION_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_SYSTEM_REQUIRED","status":404,"message":"No blockchain system is available for this organization","data":{"id":"DALP-9440","why":"The active organization has no indexed system on the selected network, so the requested system-backed profile or operation does not exist there.","fix":"Deploy the organization system or select a network where its system is indexed, then retry.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["ANCHOR_ENABLEMENT_REFUSED","CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REACH_BACK_EXCEEDED","REPORTING_FILING_ROW_VERSION_CONFLICT","REPORTING_GENERATION_CONFLICT","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"ANCHOR_ENABLEMENT_REFUSED","status":409,"message":"Anchoring could not be turned on","data":{"id":"DALP-0727","why":"A configuration check refused anchoring for this obligation. `data.reason` names which check.","fix":"Read `data.reason`: register the issuer for the document-hash topic, give its managed signer a claim key, choose a warning severity where publication is the fulfilment act, and confirm the disclosure with a written reason.","retryable":false,"category":"domain","reason":"disclosure-not-confirmed"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["APPROVER_SHORTFALL","CONTRACT_ERROR","REPORTING_COVERAGE_UNAVAILABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"APPROVER_SHORTFALL","status":422,"message":"The organization has too few approvers to publish","data":{"id":"DALP-0719","why":"The organization has fewer approvers than maker-checker publishing requires.","fix":"Give a second owner or administrator to the organization, then publish again.","retryable":false,"category":"client","approvers":1,"required":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","REPORTING_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Records the authority's acknowledgement, which discharges the filing period's duty and stops its overdue clock. Its own permission, and its own separation of duties: the entering user must differ from the approver. The claimed authority timestamp is recorded beside the server's receipt time, and one preceding submission or reaching far past entry is refused. Entering the same receipt reference twice changes nothing. An obligation discharged by publication has no authority to acknowledge, and this route refuses it.","summary":"Enter an acknowledgement","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"receiptReference":{"type":"string","minLength":1},"authorityTimestamp":{"$ref":"#/components/schemas/ReportingFrozenTimestampEncoded"},"rawPayloadRef":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]}},"required":["receiptReference","authorityTimestamp"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/reporting/submissions/{submissionId}/publish":{"post":{"tags":["Regulatory reporting"],"operationId":"reporting.filings.submissionsPublish","parameters":[{"name":"submissionId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The published submission.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ReportingSubmission"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","filingPeriodId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","organizationId":"org_1","attemptSequence":1,"state":"pending_approval","actionType":"new","correctsSubmissionId":null,"artifactDigest":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","rowVersion":3,"makerUserId":"usr_maker","checkerUserId":null,"approvedAt":null,"submittedAt":null,"ackReceiptReference":null,"ackAuthorityTimestamp":null,"publishedAt":null,"publicationReference":null,"anchorState":"not_requested","anchorDigest":null,"anchorReference":null,"anchorEntryId":null,"anchorRegistryAddress":null,"anchorChainId":null,"anchoredAt":null},"links":{"self":"/v2/reporting/submissions/sub_01H"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_SYSTEM_REQUIRED","CONTRACT_ERROR","FILING_NOT_FOUND","OBLIGATION_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_SYSTEM_REQUIRED","status":404,"message":"No blockchain system is available for this organization","data":{"id":"DALP-9440","why":"The active organization has no indexed system on the selected network, so the requested system-backed profile or operation does not exist there.","fix":"Deploy the organization system or select a network where its system is indexed, then retry.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["ANCHOR_ENABLEMENT_REFUSED","CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REACH_BACK_EXCEEDED","REPORTING_FILING_ROW_VERSION_CONFLICT","REPORTING_GENERATION_CONFLICT","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"ANCHOR_ENABLEMENT_REFUSED","status":409,"message":"Anchoring could not be turned on","data":{"id":"DALP-0727","why":"A configuration check refused anchoring for this obligation. `data.reason` names which check.","fix":"Read `data.reason`: register the issuer for the document-hash topic, give its managed signer a claim key, choose a warning severity where publication is the fulfilment act, and confirm the disclosure with a written reason.","retryable":false,"category":"domain","reason":"disclosure-not-confirmed"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["APPROVER_SHORTFALL","CONTRACT_ERROR","REPORTING_COVERAGE_UNAVAILABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"APPROVER_SHORTFALL","status":422,"message":"The organization has too few approvers to publish","data":{"id":"DALP-0719","why":"The organization has fewer approvers than maker-checker publishing requires.","fix":"Give a second owner or administrator to the organization, then publish again.","retryable":false,"category":"client","approvers":1,"required":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","REPORTING_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Publishes an approved artifact to the holders it is owed to, which is what discharges an investor-facing reporting duty and stops the filing period's overdue clock. Only an obligation configured for publication accepts this; one filed with an authority is discharged by acknowledgement instead. The submission must carry a standing approval and still match the digest that approval named, and an operator acting as another user may not publish. Publishing after the deadline is accepted and is recorded as late; there is no operation that returns a period to open.","summary":"Publish a submission","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"publicationReference":{"type":"string","minLength":1},"approvedDigest":{"type":"string","minLength":1},"expectedRowVersion":{"type":"integer"}},"required":["publicationReference","approvedDigest","expectedRowVersion"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/reporting/obligations/{obligationId}/anchoring/enable":{"post":{"tags":["Regulatory reporting"],"operationId":"reporting.filings.anchoringEnable","parameters":[{"name":"obligationId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The decision, as it was recorded.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"obligationId":{"type":"string","minLength":1},"organizationId":{"anyOf":[{"type":"string"},{"type":"null"}]},"enabled":{"type":"boolean"},"chainId":{"anyOf":[{"type":"integer"},{"type":"null"}]},"issuerAddress":{"anyOf":[{"type":"string"},{"type":"null"}]},"claimTopic":{"anyOf":[{"type":"string"},{"type":"null"}]},"severity":{"anyOf":[{"type":"string","enum":["error","warning"]},{"type":"null"}]},"documentType":{"anyOf":[{"type":"string","enum":["regulatory-filing","investor-report"]},{"type":"null"}]},"label":{"anyOf":[{"type":"string"},{"type":"null"}]},"disclosureConfirmedAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"changedByUserId":{"type":"string","minLength":1},"changeRationale":{"type":"string","minLength":1},"changedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["obligationId","organizationId","enabled","chainId","issuerAddress","claimTopic","severity","documentType","label","disclosureConfirmedAt","changedByUserId","changeRationale","changedAt"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"obligationId":"quarterly-investor-report","organizationId":"org_01H8XKJ","enabled":true,"chainId":1,"issuerAddress":"0x5c610E27CB09EcFDB3eFEE607E7dD133226D316c","claimTopic":"documentHash","severity":"warning","documentType":"regulatory-filing","label":"Regulatory filing","disclosureConfirmedAt":"2026-07-01T08:00:00.000Z","changedByUserId":"usr_01H8XKJ","changeRationale":"The supervisor asked for evidence holders can check themselves.","changedAt":"2026-07-01T08:00:00.000Z"},"links":{"self":"/v2/reporting/obligations/quarterly-investor-report/anchoring"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_SYSTEM_REQUIRED","CONTRACT_ERROR","FILING_NOT_FOUND","OBLIGATION_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_SYSTEM_REQUIRED","status":404,"message":"No blockchain system is available for this organization","data":{"id":"DALP-9440","why":"The active organization has no indexed system on the selected network, so the requested system-backed profile or operation does not exist there.","fix":"Deploy the organization system or select a network where its system is indexed, then retry.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["ANCHOR_ENABLEMENT_REFUSED","CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REACH_BACK_EXCEEDED","REPORTING_FILING_ROW_VERSION_CONFLICT","REPORTING_GENERATION_CONFLICT","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"ANCHOR_ENABLEMENT_REFUSED","status":409,"message":"Anchoring could not be turned on","data":{"id":"DALP-0727","why":"A configuration check refused anchoring for this obligation. `data.reason` names which check.","fix":"Read `data.reason`: register the issuer for the document-hash topic, give its managed signer a claim key, choose a warning severity where publication is the fulfilment act, and confirm the disclosure with a written reason.","retryable":false,"category":"domain","reason":"disclosure-not-confirmed"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["APPROVER_SHORTFALL","CONTRACT_ERROR","REPORTING_COVERAGE_UNAVAILABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"APPROVER_SHORTFALL","status":422,"message":"The organization has too few approvers to publish","data":{"id":"DALP-0719","why":"The organization has fewer approvers than maker-checker publishing requires.","fix":"Give a second owner or administrator to the organization, then publish again.","retryable":false,"category":"client","approvers":1,"required":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","REPORTING_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"From the next fulfilled filing onward, the digest of the filed artifact is published as a claim on the organization's own identity, signed by the organization's own credential. **The disclosure is permanent**: every anchored filing tells any reader of the chain that this issuer filed a document of this kind at this time, and no later act removes it. The call is refused unless the trusted-issuer registry of the organization's own system already lists the named identity for the anchoring topic, unless a written reason is given, unless the permanence is explicitly confirmed, and when the label would carry an organization, period or submission identifier onto a public chain. An operator acting as a user may not take this decision on their behalf. A refusal answers `ANCHOR_ENABLEMENT_REFUSED`, whose `data.reason` names which of these checks refused.","summary":"Turn on chain anchoring for an obligation","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"chainId":{"$ref":"#/components/schemas/PersistableChainIdEncoded_1"},"severity":{"type":"string","enum":["error","warning"]},"documentType":{"type":"string","enum":["regulatory-filing","investor-report"]},"label":{"type":"string","minLength":1},"rationale":{"type":"string","minLength":1},"disclosureConfirmed":{"type":"boolean"}},"required":["chainId","severity","documentType","label","rationale","disclosureConfirmed"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/reporting/obligations/{obligationId}/anchoring/disable":{"post":{"tags":["Regulatory reporting"],"operationId":"reporting.filings.anchoringDisable","parameters":[{"name":"obligationId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The decision to stop, as it was recorded.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"obligationId":{"type":"string","minLength":1},"organizationId":{"anyOf":[{"type":"string"},{"type":"null"}]},"enabled":{"type":"boolean"},"chainId":{"anyOf":[{"type":"integer"},{"type":"null"}]},"issuerAddress":{"anyOf":[{"type":"string"},{"type":"null"}]},"claimTopic":{"anyOf":[{"type":"string"},{"type":"null"}]},"severity":{"anyOf":[{"type":"string","enum":["error","warning"]},{"type":"null"}]},"documentType":{"anyOf":[{"type":"string","enum":["regulatory-filing","investor-report"]},{"type":"null"}]},"label":{"anyOf":[{"type":"string"},{"type":"null"}]},"disclosureConfirmedAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"changedByUserId":{"type":"string","minLength":1},"changeRationale":{"type":"string","minLength":1},"changedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["obligationId","organizationId","enabled","chainId","issuerAddress","claimTopic","severity","documentType","label","disclosureConfirmedAt","changedByUserId","changeRationale","changedAt"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"obligationId":"quarterly-investor-report","organizationId":"org_01H8XKJ","enabled":true,"chainId":1,"issuerAddress":"0x5c610E27CB09EcFDB3eFEE607E7dD133226D316c","claimTopic":"documentHash","severity":"warning","documentType":"regulatory-filing","label":"Regulatory filing","disclosureConfirmedAt":"2026-07-01T08:00:00.000Z","changedByUserId":"usr_01H8XKJ","changeRationale":"The supervisor asked for evidence holders can check themselves.","changedAt":"2026-07-01T08:00:00.000Z"},"links":{"self":"/v2/reporting/obligations/quarterly-investor-report/anchoring"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_SYSTEM_REQUIRED","CONTRACT_ERROR","FILING_NOT_FOUND","OBLIGATION_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_SYSTEM_REQUIRED","status":404,"message":"No blockchain system is available for this organization","data":{"id":"DALP-9440","why":"The active organization has no indexed system on the selected network, so the requested system-backed profile or operation does not exist there.","fix":"Deploy the organization system or select a network where its system is indexed, then retry.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["ANCHOR_ENABLEMENT_REFUSED","CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REACH_BACK_EXCEEDED","REPORTING_FILING_ROW_VERSION_CONFLICT","REPORTING_GENERATION_CONFLICT","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"ANCHOR_ENABLEMENT_REFUSED","status":409,"message":"Anchoring could not be turned on","data":{"id":"DALP-0727","why":"A configuration check refused anchoring for this obligation. `data.reason` names which check.","fix":"Read `data.reason`: register the issuer for the document-hash topic, give its managed signer a claim key, choose a warning severity where publication is the fulfilment act, and confirm the disclosure with a written reason.","retryable":false,"category":"domain","reason":"disclosure-not-confirmed"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["APPROVER_SHORTFALL","CONTRACT_ERROR","REPORTING_COVERAGE_UNAVAILABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"APPROVER_SHORTFALL","status":422,"message":"The organization has too few approvers to publish","data":{"id":"DALP-0719","why":"The organization has fewer approvers than maker-checker publishing requires.","fix":"Give a second owner or administrator to the organization, then publish again.","retryable":false,"category":"client","approvers":1,"required":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","REPORTING_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Stops anchoring the next and every later filing. Claims already published stay on chain and stay true (they record what was filed when), and the filings that carry them keep their confirmed anchor. A written reason is required in this direction too, because stopping the production of evidence is a decision a supervisor will ask about. Unlike enabling, an operator acting as a user *may* disable: somebody responding to a compromised signing key must be able to stop the disclosure.","summary":"Turn off chain anchoring for an obligation","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"rationale":{"type":"string","minLength":1}},"required":["rationale"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/reporting/submissions/{submissionId}/anchoring/override":{"post":{"tags":["Regulatory reporting"],"operationId":"reporting.filings.anchoringOverride","parameters":[{"name":"submissionId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The accepted finding.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"submissionId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"},"overriddenAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["submissionId","overriddenAt"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"submissionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","overriddenAt":"2026-07-02T09:00:00.000Z"},"links":{"self":"/v2/reporting/submissions/sub_01H8XKJ"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_SYSTEM_REQUIRED","CONTRACT_ERROR","FILING_NOT_FOUND","OBLIGATION_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_SYSTEM_REQUIRED","status":404,"message":"No blockchain system is available for this organization","data":{"id":"DALP-9440","why":"The active organization has no indexed system on the selected network, so the requested system-backed profile or operation does not exist there.","fix":"Deploy the organization system or select a network where its system is indexed, then retry.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["ANCHOR_ENABLEMENT_REFUSED","CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REACH_BACK_EXCEEDED","REPORTING_FILING_ROW_VERSION_CONFLICT","REPORTING_GENERATION_CONFLICT","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"ANCHOR_ENABLEMENT_REFUSED","status":409,"message":"Anchoring could not be turned on","data":{"id":"DALP-0727","why":"A configuration check refused anchoring for this obligation. `data.reason` names which check.","fix":"Read `data.reason`: register the issuer for the document-hash topic, give its managed signer a claim key, choose a warning severity where publication is the fulfilment act, and confirm the disclosure with a written reason.","retryable":false,"category":"domain","reason":"disclosure-not-confirmed"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["APPROVER_SHORTFALL","CONTRACT_ERROR","REPORTING_COVERAGE_UNAVAILABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"APPROVER_SHORTFALL","status":422,"message":"The organization has too few approvers to publish","data":{"id":"DALP-0719","why":"The organization has fewer approvers than maker-checker publishing requires.","fix":"Give a second owner or administrator to the organization, then publish again.","retryable":false,"category":"client","approvers":1,"required":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","REPORTING_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Clears the standing unconfirmed-anchor finding for a submission, with a written reason and the name of the person accepting it. The submission's anchor stays `unconfirmed` afterwards, because it is: this records that somebody accepted the absence of evidence, not that the evidence appeared. An operator acting as a user may not accept it on their behalf.","summary":"Accept that one filing will not be anchored","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"rationale":{"type":"string","minLength":1}},"required":["rationale"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/reporting/submissions/{submissionId}/anchoring/retry":{"post":{"tags":["Regulatory reporting"],"operationId":"reporting.filings.anchoringRetry","parameters":[{"name":"submissionId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The run's verdict, and the submission as it stands afterwards.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"submission":{"$ref":"#/components/schemas/ReportingSubmission"},"outcome":{"type":"string","enum":["confirmed","unconfirmed","refused","abandoned","pending"]},"reason":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["submission","outcome","reason"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"submission":{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","filingPeriodId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","organizationId":"org_1","attemptSequence":1,"state":"pending_approval","actionType":"new","correctsSubmissionId":null,"artifactDigest":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","rowVersion":3,"makerUserId":"usr_maker","checkerUserId":null,"approvedAt":null,"submittedAt":null,"ackReceiptReference":null,"ackAuthorityTimestamp":null,"publishedAt":null,"publicationReference":null,"anchorState":"not_requested","anchorDigest":null,"anchorReference":null,"anchorEntryId":null,"anchorRegistryAddress":null,"anchorChainId":null,"anchoredAt":null},"outcome":"unconfirmed","reason":"the anchoring prerequisites could not be read"},"links":{"self":"/v2/reporting/submissions/sub_01H"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_SYSTEM_REQUIRED","CONTRACT_ERROR","FILING_NOT_FOUND","OBLIGATION_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_SYSTEM_REQUIRED","status":404,"message":"No blockchain system is available for this organization","data":{"id":"DALP-9440","why":"The active organization has no indexed system on the selected network, so the requested system-backed profile or operation does not exist there.","fix":"Deploy the organization system or select a network where its system is indexed, then retry.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["ANCHOR_ENABLEMENT_REFUSED","ANCHOR_RETRY_REFUSED","CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"ANCHOR_ENABLEMENT_REFUSED","status":409,"message":"Anchoring could not be turned on","data":{"id":"DALP-0727","why":"A configuration check refused anchoring for this obligation. `data.reason` names which check.","fix":"Read `data.reason`: register the issuer for the document-hash topic, give its managed signer a claim key, choose a warning severity where publication is the fulfilment act, and confirm the disclosure with a written reason.","retryable":false,"category":"domain","reason":"disclosure-not-confirmed"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","REPORTING_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Runs anchoring again for one discharged filing whose anchor did not land. Anchoring otherwise fires exactly once, at the acknowledgement or publication that discharges the period, so a chain, custody or engine failure there leaves a standing finding and nothing to drive. This is the way to drive it. Safe to call repeatedly: the nonce was reserved before the first publish and is write-once, so every attempt derives the same registry entry id and the registry refuses the replay rather than appending a second entry for one filing. `outcome` carries the verdict rather than the status code, because `refused` names a rule that correctly declined: an anchor already confirmed, an override already accepted, anchoring switched off, or the attempt ceiling reached. Only a submission that has been acknowledged or published may be anchored; anything earlier is refused with `ANCHOR_RETRY_REFUSED`, because an artifact before that point can still legitimately be regenerated. Gated as accepting a finding is: an organization owner or a platform administrator, on a freshly resolved session.","summary":"Re-run a failed anchor","x-dalp-auth":"session-or-api-key"}},"/api/v2/reporting/anchors":{"get":{"tags":["Regulatory reporting"],"operationId":"reporting.filings.anchorsList","parameters":[{"name":"digest","in":"query","schema":{"type":"string","description":"A registry digest, as 64 hex characters with or without a `0x` prefix. Mutually exclusive with `subject` and `registry`. This is **not** the hash of the document file: the registry stores a manifest digest computed over the artifact's parts, so a holder checking a file they received calls `POST /v2/reporting/anchors/verify` instead, which computes it and returns it."},"required":false},{"name":"subject","in":"query","schema":{"type":"string","description":"Identity contract the document belongs to (for a regulatory filing, the issuing organization's own identity). Mutually exclusive with `digest` and `registry`."},"required":false},{"name":"registry","in":"query","schema":{"type":"string","description":"Contract address of one document anchor registry, to read that whole ledger in append order rather than to answer a question about one document. This is the key a registry's own page uses: a digest needs the document already in hand and a subject needs the reader to know whose evidence to ask for, so neither can open an empty screen onto a registry. Scoped to the one registry named, never the chain, because any system manager may run a registry and write any issuer into it. Mutually exclusive with `digest` and `subject`.","examples":["0x0a48DAe1aE8427d55c22C6F356Aa42180cafA489"]},"required":false},{"name":"chainId","in":"query","schema":{"type":"integer","exclusiveMinimum":0,"maximum":2147483647,"description":"EVM chain identifier.","examples":[11155111]},"required":false},{"name":"cursor","in":"query","schema":{"type":"string","description":"Continue a page from the previous response's `meta.nextCursor`, verbatim. Omit it on the first page. A value this endpoint never handed out is refused rather than read as the first page, which would leave a reader looping over the entries they already have."},"required":false},{"name":"limit","in":"query","schema":{"type":"integer"},"required":false}],"responses":{"200":{"description":"One page of registry entries matching the lookup, oldest block first. The registry only appends, so a subject that has filed for years has a history no single response may carry: follow `links.next` until `meta.nextCursor` is null. `meta.indexedThroughBlock` travels with every page and is what makes an empty answer readable: an anchor written above that block is not indexed yet, which is a different fact from never having been anchored.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ReportingDocumentAnchor"}},"meta":{"type":"object","properties":{"count":{"type":"integer"},"indexedThroughBlock":{"anyOf":[{"type":"string"},{"type":"null"}]},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["count","indexedThroughBlock","nextCursor"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"},"next":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["self","next"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false,"description":"One page of registry entries matching the lookup, oldest block first. The registry only appends, so a subject that has filed for years has a history no single response may carry: follow `links.next` until `meta.nextCursor` is null. `meta.indexedThroughBlock` travels with every page and is what makes an empty answer readable: an anchor written above that block is not indexed yet, which is a different fact from never having been anchored.","examples":[{"data":[{"entryId":"0x9f2c1d0000000000000000000000000000000000000000000000000000000001","issuerAddress":"0x1111111111111111111111111111111111111111","subjectAddress":"0x1111111111111111111111111111111111111111","digest":"0xabc1230000000000000000000000000000000000000000000000000000000000","documentType":"regulatory-filing","label":"Quarterly return","registryAddress":"0x2222222222222222222222222222222222222222","transactionHash":"0x3333333333333333333333333333333333333333333333333333333333333333","blockNumber":"1904221","anchoredAt":"2026-04-02T09:15:00.000Z"}],"meta":{"count":1,"indexedThroughBlock":"1904999","nextCursor":null},"links":{"self":"/v2/reporting/anchors?digest=0xabc123&chainId=8453&limit=50","next":null}}]},"examples":{"example-1":{"value":{"data":[{"entryId":"0x9f2c1d0000000000000000000000000000000000000000000000000000000001","issuerAddress":"0x1111111111111111111111111111111111111111","subjectAddress":"0x1111111111111111111111111111111111111111","digest":"0xabc1230000000000000000000000000000000000000000000000000000000000","documentType":"regulatory-filing","label":"Quarterly return","registryAddress":"0x2222222222222222222222222222222222222222","transactionHash":"0x3333333333333333333333333333333333333333333333333333333333333333","blockNumber":"1904221","anchoredAt":"2026-04-02T09:15:00.000Z"}],"meta":{"count":1,"indexedThroughBlock":"1904999","nextCursor":null},"links":{"self":"/v2/reporting/anchors?digest=0xabc123&chainId=8453&limit=50","next":null}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_SYSTEM_REQUIRED","CONTRACT_ERROR","FILING_NOT_FOUND","OBLIGATION_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_SYSTEM_REQUIRED","status":404,"message":"No blockchain system is available for this organization","data":{"id":"DALP-9440","why":"The active organization has no indexed system on the selected network, so the requested system-backed profile or operation does not exist there.","fix":"Deploy the organization system or select a network where its system is indexed, then retry.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["ANCHOR_ENABLEMENT_REFUSED","CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"ANCHOR_ENABLEMENT_REFUSED","status":409,"message":"Anchoring could not be turned on","data":{"id":"DALP-0727","why":"A configuration check refused anchoring for this obligation. `data.reason` names which check.","fix":"Read `data.reason`: register the issuer for the document-hash topic, give its managed signer a claim key, choose a warning severity where publication is the fulfilment act, and confirm the disclosure with a written reason.","retryable":false,"category":"domain","reason":"disclosure-not-confirmed"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["ANCHOR_LOOKUP_REFUSED","CONTRACT_ERROR"]}},"required":["code"]}],"examples":[{"code":"ANCHOR_LOOKUP_REFUSED","status":422,"message":"The anchor question cannot be answered as asked","data":{"id":"DALP-0746","why":"An anchor lookup takes exactly one of a document digest, a subject identity or a registry address, and a verification takes the artifact's parts in order within the published ceilings. `data.reason` names which of those the request broke.","fix":"Read `data.reason`. Send one of `digest`, `subject` or `registry` to read registry entries, or send each part's SHA-256 and byte length in delivery order, with `issuer`, to check a document you hold.","retryable":false,"category":"client","reason":"artifact-too-large"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","REPORTING_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Reads a system's document anchor registry by the digest it stores, or by subject identity. The stored digest is a manifest digest over the artifact's parts, never the hash of the delivered file, so a holder checking a document they received calls `POST /v2/reporting/anchors/verify` and follows the `links.anchors` it hands back. Every registry entry carrying the digest comes back with the issuer identity, the block, and the transaction. Ask by `subject` instead to see every document one identity has anchored, or by `registry` to read one registry's whole ledger in append order, which is how a registry's own page fills: neither of the other two keys can open a screen onto a registry, because a digest needs the document already in hand and a subject needs the reader to know whose evidence to ask for. Entries are append-only and never replaced, so an organization that files quarterly accumulates one entry per filing rather than overwriting the last. Exactly one of `digest`, `subject` and `registry` is required. Because the history only grows, the answer is one bounded page in append order: follow `links.next` and send back `meta.nextCursor` verbatim until it is null. `meta.count` counts this page, never the history. `meta.indexedThroughBlock` travels with every page and reports how far the indexer has read, and it is what makes an empty page readable: it means no entry carrying this key stands at or below that block, never that the document was never anchored, because an anchor written above it has not been read yet. This read spans every registry on the chain and hands each entry back beside the registry that wrote it, so it is a history rather than a verdict: any system manager can publish an entry naming any issuer from a registry of their own, and deciding whether an entry is really an issuer's is what `POST /v2/reporting/anchors/verify` does. Repeating the request is safe.","summary":"Look up anchored document digests","x-dalp-auth":"session-or-api-key"},"post":{"tags":["Regulatory reporting"],"operationId":"reporting.filings.anchorsWrite","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The entry an operator asked for, or the reason it did not land. `links.anchors` is the paged history under the digest this call computed, so the entry can be read back beside anything else committed to the same bytes. A second call describing the same document writes a second entry rather than replacing the first: the registry only appends, so an entry is superseded and never corrected.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"outcome":{"type":"string","enum":["confirmed","unconfirmed","pending"],"description":"`confirmed` means the entry is on chain and `entryId` names it. `pending` means the write outlived this request and is still running, which is normal where the organization's wallet sits behind an external approval policy; nothing needs to be resent. `unconfirmed` means the write did not land, and `reason` says why in operator-facing words."},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Why the attempt ended as it did, in operator-facing words. Null when the entry confirmed. Never a provider payload."},"manifestDigest":{"type":"string","description":"The digest the parts produced, and the value the registry carries. This is what `POST /v2/reporting/anchors/verify` recomputes and what `GET /v2/reporting/anchors?digest=` reads by."},"subject":{"type":"string","description":"The identity the entry was written on."},"issuer":{"type":"string","description":"The identity that signed, which is the organization's own. Resolved from the signing credential and never from the request."},"registry":{"type":"string","description":"The document anchor registry the entry was written to, which is the one this system runs."},"chainId":{"type":"integer"},"entryId":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The registry entry the write produced, or null when nothing was written. Derived on chain from the issuer and a nonce this request generated."},"transactionHash":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The transaction that produced the entry, or null when there is none to name yet."}},"required":["outcome","reason","manifestDigest","subject","issuer","registry","chainId","entryId","transactionHash"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"},"anchors":{"type":"string"}},"required":["self","anchors"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false,"description":"The entry an operator asked for, or the reason it did not land. `links.anchors` is the paged history under the digest this call computed, so the entry can be read back beside anything else committed to the same bytes. A second call describing the same document writes a second entry rather than replacing the first: the registry only appends, so an entry is superseded and never corrected.","examples":[{"data":{"outcome":"confirmed","reason":null,"manifestDigest":"0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","subject":"0x5c610E27CB09EcFDB3eFEE607E7dD133226D316c","issuer":"0x5c610E27CB09EcFDB3eFEE607E7dD133226D316c","registry":"0x2222222222222222222222222222222222222222","chainId":8453,"entryId":"0x9999999999999999999999999999999999999999999999999999999999999999","transactionHash":"0x3333333333333333333333333333333333333333333333333333333333333333"},"links":{"self":"/v2/reporting/anchors","anchors":"/v2/reporting/anchors?digest=0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&chainId=8453&limit=50"}}]},"examples":{"example-1":{"value":{"data":{"outcome":"confirmed","reason":null,"manifestDigest":"0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","subject":"0x5c610E27CB09EcFDB3eFEE607E7dD133226D316c","issuer":"0x5c610E27CB09EcFDB3eFEE607E7dD133226D316c","registry":"0x2222222222222222222222222222222222222222","chainId":8453,"entryId":"0x9999999999999999999999999999999999999999999999999999999999999999","transactionHash":"0x3333333333333333333333333333333333333333333333333333333333333333"},"links":{"self":"/v2/reporting/anchors","anchors":"/v2/reporting/anchors?digest=0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&chainId=8453&limit=50"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_SYSTEM_REQUIRED","CONTRACT_ERROR","FILING_NOT_FOUND","OBLIGATION_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_SYSTEM_REQUIRED","status":404,"message":"No blockchain system is available for this organization","data":{"id":"DALP-9440","why":"The active organization has no indexed system on the selected network, so the requested system-backed profile or operation does not exist there.","fix":"Deploy the organization system or select a network where its system is indexed, then retry.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["ANCHOR_ENABLEMENT_REFUSED","ANCHOR_WRITE_REFUSED","CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"ANCHOR_ENABLEMENT_REFUSED","status":409,"message":"Anchoring could not be turned on","data":{"id":"DALP-0727","why":"A configuration check refused anchoring for this obligation. `data.reason` names which check.","fix":"Read `data.reason`: register the issuer for the document-hash topic, give its managed signer a claim key, choose a warning severity where publication is the fulfilment act, and confirm the disclosure with a written reason.","retryable":false,"category":"domain","reason":"disclosure-not-confirmed"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["ANCHOR_LOOKUP_REFUSED","CONTRACT_ERROR"]}},"required":["code"]}],"examples":[{"code":"ANCHOR_LOOKUP_REFUSED","status":422,"message":"The anchor question cannot be answered as asked","data":{"id":"DALP-0746","why":"An anchor lookup takes exactly one of a document digest, a subject identity or a registry address, and a verification takes the artifact's parts in order within the published ceilings. `data.reason` names which of those the request broke.","fix":"Read `data.reason`. Send one of `digest`, `subject` or `registry` to read registry entries, or send each part's SHA-256 and byte length in delivery order, with `issuer`, to check a document you hold.","retryable":false,"category":"client","reason":"artifact-too-large"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","REPORTING_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Writes one entry into the document anchor registry this organization's system runs, on a subject the caller names. This is the manual counterpart to the anchoring that fires on its own when a filing is discharged, and it exists because the registry's subject is a free contract parameter: a board resolution belongs on an organization's own identity and an offering circular on a token's, and neither is a filing. **The entry is permanent and public.** The registry carries no update and no delete, so a wrong digest or a mislabelled entry can never be corrected, only superseded by a further entry, and `disclosureConfirmed` must be `true` for that reason rather than being inferred from the request. Send the document's `parts` in delivery order, each with the SHA-256 of its bytes and its byte length, exactly as `POST /v2/reporting/anchors/verify` takes them: the registry stores a manifest digest computed over those parts and never the hash of a delivered file, so anchoring a file hash would produce an entry no holder could ever verify. `label` is the one free-text field and it is published forever, so it is refused when it carries an organization identifier or any character that could form a path or a URL; `documentType` is a closed set for the same reason. The issuer is never a parameter: it is this organization's own identity, resolved from the credential that signs, and the call is refused unless that identity is listed for the document-hash topic in this system's own trusted-issuer registry, its registration is active, and a managed signer holds a claim key on it. `data.outcome` carries the verdict rather than the status code, because a chain that was reached and declined is the outcome of an attempt that was allowed to happen: `confirmed` names the entry in `data.entryId`, `pending` means the write outlived the request and is still running, which is normal behind an external approval policy, and `unconfirmed` means it did not land and `data.reason` says why. Everything decided before anything was published is a refusal instead, answering `ANCHOR_WRITE_REFUSED` with `data.reason` naming which check declined. Repeating the request is **not** safe: the registry only appends, so a second call describing the same document writes a second entry rather than replacing the first. Gated as enabling anchoring is: an organization owner or a platform administrator, on a freshly resolved session that is not an operator acting as somebody else.","summary":"Anchor a document by hand","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportingAnchorWriteInput"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/reporting/anchors/verify":{"post":{"tags":["Regulatory reporting"],"operationId":"reporting.filings.anchorsVerify","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Whether the named issuer committed to exactly the bytes described, and the entries that say so. The answer is drawn only from the document anchor registry the issuer's own system runs, resolved here from the identity you named: an entry naming an issuer proves nothing on its own, because any system manager can publish one from a registry of their own. Only the affirmative answer is ever asserted: `meta.indexedThroughBlock` bounds the negative one, because an entry written above that block has not been read yet and no read here can prove a document was never anchored. It is null only where no block bounds the answer, which is the `registry-unresolved` case. `links.anchors` is the same question as a paged history, under the digest this call computed, and it answers across every issuer and every registry rather than the one pair named here.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"status":{"type":"string","enum":["anchored","not-found","not-indexed","registry-unresolved"],"description":"`anchored` when the named issuer committed to exactly these bytes in the document anchor registry their own system runs. `not-found` when no entry of theirs stands in that registry at or below `meta.indexedThroughBlock`, which is the whole of the claim: an anchor written above that block has not been read yet, so this is never a statement that the document was not anchored. `not-indexed` when the indexer has read no block on this chain at all, where there is no block to have looked up to. `registry-unresolved` when no system on this chain answers for the named issuer, when more than one does, or when the system that does runs no live registry: nothing was read, so this says nothing about the document either way."},"manifestDigest":{"type":"string","description":"The registry digest these parts produce. This, not the hash of the file, is the value the registry stores; it is returned so the full history can be read at `/v2/reporting/anchors`."},"entries":{"type":"array","items":{"$ref":"#/components/schemas/ReportingDocumentAnchor"}}},"required":["status","manifestDigest","entries"],"additionalProperties":false},"meta":{"type":"object","properties":{"count":{"type":"integer"},"indexedThroughBlock":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["count","indexedThroughBlock"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"},"anchors":{"type":"string"}},"required":["self","anchors"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false,"description":"Whether the named issuer committed to exactly the bytes described, and the entries that say so. The answer is drawn only from the document anchor registry the issuer's own system runs, resolved here from the identity you named: an entry naming an issuer proves nothing on its own, because any system manager can publish one from a registry of their own. Only the affirmative answer is ever asserted: `meta.indexedThroughBlock` bounds the negative one, because an entry written above that block has not been read yet and no read here can prove a document was never anchored. It is null only where no block bounds the answer, which is the `registry-unresolved` case. `links.anchors` is the same question as a paged history, under the digest this call computed, and it answers across every issuer and every registry rather than the one pair named here.","examples":[{"data":{"status":"anchored","manifestDigest":"0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","entries":[{"entryId":"0x9999999999999999999999999999999999999999999999999999999999999999","issuerAddress":"0x1111111111111111111111111111111111111111","subjectAddress":"0x1111111111111111111111111111111111111111","digest":"0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","documentType":"regulatory-filing","label":"Quarterly return","registryAddress":"0x2222222222222222222222222222222222222222","transactionHash":"0x3333333333333333333333333333333333333333333333333333333333333333","blockNumber":"1904221","anchoredAt":"2026-04-02T09:15:00.000Z"}]},"meta":{"count":1,"indexedThroughBlock":"1904999"},"links":{"self":"/v2/reporting/anchors/verify","anchors":"/v2/reporting/anchors?digest=0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&chainId=8453&limit=50"}}]},"examples":{"example-1":{"value":{"data":{"status":"anchored","manifestDigest":"0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","entries":[{"entryId":"0x9999999999999999999999999999999999999999999999999999999999999999","issuerAddress":"0x1111111111111111111111111111111111111111","subjectAddress":"0x1111111111111111111111111111111111111111","digest":"0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","documentType":"regulatory-filing","label":"Quarterly return","registryAddress":"0x2222222222222222222222222222222222222222","transactionHash":"0x3333333333333333333333333333333333333333333333333333333333333333","blockNumber":"1904221","anchoredAt":"2026-04-02T09:15:00.000Z"}]},"meta":{"count":1,"indexedThroughBlock":"1904999"},"links":{"self":"/v2/reporting/anchors/verify","anchors":"/v2/reporting/anchors?digest=0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&chainId=8453&limit=50"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_SYSTEM_REQUIRED","CONTRACT_ERROR","FILING_NOT_FOUND","OBLIGATION_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_SYSTEM_REQUIRED","status":404,"message":"No blockchain system is available for this organization","data":{"id":"DALP-9440","why":"The active organization has no indexed system on the selected network, so the requested system-backed profile or operation does not exist there.","fix":"Deploy the organization system or select a network where its system is indexed, then retry.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["ANCHOR_ENABLEMENT_REFUSED","CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"ANCHOR_ENABLEMENT_REFUSED","status":409,"message":"Anchoring could not be turned on","data":{"id":"DALP-0727","why":"A configuration check refused anchoring for this obligation. `data.reason` names which check.","fix":"Read `data.reason`: register the issuer for the document-hash topic, give its managed signer a claim key, choose a warning severity where publication is the fulfilment act, and confirm the disclosure with a written reason.","retryable":false,"category":"domain","reason":"disclosure-not-confirmed"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["ANCHOR_LOOKUP_REFUSED","CONTRACT_ERROR"]}},"required":["code"]}],"examples":[{"code":"ANCHOR_LOOKUP_REFUSED","status":422,"message":"The anchor question cannot be answered as asked","data":{"id":"DALP-0746","why":"An anchor lookup takes exactly one of a document digest, a subject identity or a registry address, and a verification takes the artifact's parts in order within the published ceilings. `data.reason` names which of those the request broke.","fix":"Read `data.reason`. Send one of `digest`, `subject` or `registry` to read registry entries, or send each part's SHA-256 and byte length in delivery order, with `issuer`, to check a document you hold.","retryable":false,"category":"client","reason":"artifact-too-large"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","REPORTING_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Answers the question a document holder has: **is this exact file the one the issuer committed to on chain?** Send `issuer`, the identity contract of the organization you believe filed it, and the SHA-256 of each part of the artifact in the order it was delivered, together with each part's byte length; a single-file document is one part. The issuer is required and is what the answer is scoped to, in two steps: two organizations may file byte-identical artifacts, so a digest on its own names every commitment to those bytes and an answer drawn from the wrong one would report somebody else's filing as proof of yours; and an entry merely naming an issuer proves nothing either, because a system manager can publish one from a registry of their own, so the identity you name is also what resolves the document anchor registry the answer is read from: the one that issuer's own system runs. The registry does not store the hash of the file. It stores a second SHA-256 over a versioned preimage carrying every part's hash, position and length, and this endpoint computes that value so a holder never reconstructs the preimage themselves: a reconstruction that is subtly wrong yields a different digest and the same false report of tampering. `status` is `anchored` when that issuer committed to exactly these bytes in their own registry, `not-found` when no entry of theirs stands in it at or below `meta.indexedThroughBlock`, `not-indexed` when the indexer has read no block on this chain at all, and `registry-unresolved` when that registry cannot be named: no system on the chain answers for the issuer, more than one does, or the one that does runs no live registry. `registry-unresolved` is not a negative answer: nothing was read, so it says nothing about the document. There is no answer meaning the document was never anchored, because no read here can prove that: the entries are bounded by the block reported beside them, and an anchor written above it has not been read yet. `meta.indexedThroughBlock` travels with every answer that read a registry, and is what the negative is bounded by; it is null only where nothing was read. A request naming more parts, or more declared bytes, than a filing can carry is refused rather than answered. It is a POST because the body carries the parts, not because anything is written: nothing is, and repeating the request is safe.","summary":"Check a document against what the issuer anchored","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportingAnchorVerificationInput"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/reporting/trail":{"get":{"tags":["Regulatory reporting"],"operationId":"reporting.trail.trailTenant","parameters":[{"name":"from","in":"query","schema":{"anyOf":[{"type":"string","description":"Epoch as a digit string, or a readable datetime.","format":"timestamp"},{"type":"number","minimum":0}]},"required":true},{"name":"to","in":"query","schema":{"anyOf":[{"type":"string","description":"Epoch as a digit string, or a readable datetime.","format":"timestamp"},{"type":"number","minimum":0}]},"required":true},{"name":"target","in":"query","schema":{"type":"string","minLength":1},"required":false},{"name":"cursor","in":"query","schema":{"type":"string","minLength":1},"required":false},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":200},"required":false}],"responses":{"200":{"description":"Recorded actions in the requested window, oldest first.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ReportingTrailEntry"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"aud_01JAV","requestId":"req_01JAV","kind":"mutation","actorUserId":"usr_compliance_lead","roleAtTime":"admin","organizationId":"org_1","participantId":null,"authSource":"session","route":"reportingV2.obligationsPublish","method":"POST","pathTemplate":"/reporting/obligations/:obligationId/publish","target":"/api/v2/reporting/obligations/obl_mica_art_quarterly/publish","reason":"Extending the coupon window matches the harvest calendar.","startedAt":"2026-08-21T12:49:00.000Z","finishedAt":"2026-08-21T12:49:00.180Z","outcome":"success","status":200}],"meta":{"total":1,"facets":{}},"links":{"self":"/v2/reporting/trail","first":"/v2/accounts?sort=-firstSeenBlock&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/accounts?sort=-firstSeenBlock&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_SYSTEM_REQUIRED","CONTRACT_ERROR","FILING_NOT_FOUND","OBLIGATION_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_SYSTEM_REQUIRED","status":404,"message":"No blockchain system is available for this organization","data":{"id":"DALP-9440","why":"The active organization has no indexed system on the selected network, so the requested system-backed profile or operation does not exist there.","fix":"Deploy the organization system or select a network where its system is indexed, then retry.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["ANCHOR_ENABLEMENT_REFUSED","CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REACH_BACK_EXCEEDED","REPORTING_FILING_ROW_VERSION_CONFLICT","REPORTING_GENERATION_CONFLICT","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"ANCHOR_ENABLEMENT_REFUSED","status":409,"message":"Anchoring could not be turned on","data":{"id":"DALP-0727","why":"A configuration check refused anchoring for this obligation. `data.reason` names which check.","fix":"Read `data.reason`: register the issuer for the document-hash topic, give its managed signer a claim key, choose a warning severity where publication is the fulfilment act, and confirm the disclosure with a written reason.","retryable":false,"category":"domain","reason":"disclosure-not-confirmed"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["APPROVER_SHORTFALL","CONTRACT_ERROR","REPORTING_COVERAGE_UNAVAILABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"APPROVER_SHORTFALL","status":422,"message":"The organization has too few approvers to publish","data":{"id":"DALP-0719","why":"The organization has fewer approvers than maker-checker publishing requires.","fix":"Give a second owner or administrator to the organization, then publish again.","retryable":false,"category":"client","approvers":1,"required":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","REPORTING_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the recorded actions of the active organization in a time window. Reading the trail is itself recorded on the trail. Only this organization's rows are returned; platform-administration rows, which belong to no organization, are visible on the operator surface instead.","summary":"Read the audit trail","x-dalp-auth":"session-or-api-key"}},"/api/v2/reporting/trail/operator":{"get":{"tags":["Regulatory reporting"],"operationId":"reporting.trail.trailOperator","parameters":[{"name":"from","in":"query","schema":{"anyOf":[{"type":"string","description":"Epoch as a digit string, or a readable datetime.","format":"timestamp"},{"type":"number","minimum":0}]},"required":true},{"name":"to","in":"query","schema":{"anyOf":[{"type":"string","description":"Epoch as a digit string, or a readable datetime.","format":"timestamp"},{"type":"number","minimum":0}]},"required":true},{"name":"target","in":"query","schema":{"type":"string","minLength":1},"required":false},{"name":"cursor","in":"query","schema":{"type":"string","minLength":1},"required":false},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":200},"required":false}],"responses":{"200":{"description":"Recorded actions in the requested window, oldest first.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ReportingTrailEntry"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"aud_01JAV","requestId":"req_01JAV","kind":"mutation","actorUserId":"usr_compliance_lead","roleAtTime":"admin","organizationId":"org_1","participantId":null,"authSource":"session","route":"reportingV2.obligationsPublish","method":"POST","pathTemplate":"/reporting/obligations/:obligationId/publish","target":"/api/v2/reporting/obligations/obl_mica_art_quarterly/publish","reason":"Extending the coupon window matches the harvest calendar.","startedAt":"2026-08-21T12:49:00.000Z","finishedAt":"2026-08-21T12:49:00.180Z","outcome":"success","status":200}],"meta":{"total":1,"facets":{}},"links":{"self":"/v2/reporting/trail","first":"/v2/accounts?sort=-firstSeenBlock&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/accounts?sort=-firstSeenBlock&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_SYSTEM_REQUIRED","CONTRACT_ERROR","FILING_NOT_FOUND","OBLIGATION_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_SYSTEM_REQUIRED","status":404,"message":"No blockchain system is available for this organization","data":{"id":"DALP-9440","why":"The active organization has no indexed system on the selected network, so the requested system-backed profile or operation does not exist there.","fix":"Deploy the organization system or select a network where its system is indexed, then retry.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["ANCHOR_ENABLEMENT_REFUSED","CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REACH_BACK_EXCEEDED","REPORTING_FILING_ROW_VERSION_CONFLICT","REPORTING_GENERATION_CONFLICT","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"ANCHOR_ENABLEMENT_REFUSED","status":409,"message":"Anchoring could not be turned on","data":{"id":"DALP-0727","why":"A configuration check refused anchoring for this obligation. `data.reason` names which check.","fix":"Read `data.reason`: register the issuer for the document-hash topic, give its managed signer a claim key, choose a warning severity where publication is the fulfilment act, and confirm the disclosure with a written reason.","retryable":false,"category":"domain","reason":"disclosure-not-confirmed"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["APPROVER_SHORTFALL","CONTRACT_ERROR","REPORTING_COVERAGE_UNAVAILABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"APPROVER_SHORTFALL","status":422,"message":"The organization has too few approvers to publish","data":{"id":"DALP-0719","why":"The organization has fewer approvers than maker-checker publishing requires.","fix":"Give a second owner or administrator to the organization, then publish again.","retryable":false,"category":"client","approvers":1,"required":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","REPORTING_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns recorded actions across every organization, including platform-administration rows that belong to none. Requires platform administration, and the access is itself recorded: a cross-organization read of the audit trail is the most sensitive read on the platform.","summary":"Read the audit trail across organizations","x-dalp-auth":"session-or-api-key"}},"/api/v2/reporting/trail/resource":{"get":{"tags":["Regulatory reporting"],"operationId":"reporting.trail.trailForResource","parameters":[{"name":"from","in":"query","schema":{"anyOf":[{"type":"string","description":"Epoch as a digit string, or a readable datetime.","format":"timestamp"},{"type":"number","minimum":0}]},"required":true},{"name":"to","in":"query","schema":{"anyOf":[{"type":"string","description":"Epoch as a digit string, or a readable datetime.","format":"timestamp"},{"type":"number","minimum":0}]},"required":true},{"name":"resource","in":"query","schema":{"type":"string","minLength":1},"required":true}],"responses":{"200":{"description":"Recorded actions in the requested window, oldest first.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ReportingTrailEntry"}},"meta":{"type":"object","properties":{"total":{"type":"integer"}},"required":["total"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"aud_01JAV","requestId":"req_01JAV","kind":"mutation","actorUserId":"usr_compliance_lead","roleAtTime":"admin","organizationId":"org_1","participantId":null,"authSource":"session","route":"reportingV2.obligationsPublish","method":"POST","pathTemplate":"/reporting/obligations/:obligationId/publish","target":"/api/v2/reporting/obligations/obl_mica_art_quarterly/publish","reason":"Extending the coupon window matches the harvest calendar.","startedAt":"2026-08-21T12:49:00.000Z","finishedAt":"2026-08-21T12:49:00.180Z","outcome":"success","status":200}],"meta":{"total":1},"links":{"self":"/v2/reporting/trail"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_SYSTEM_REQUIRED","CONTRACT_ERROR","FILING_NOT_FOUND","OBLIGATION_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_SYSTEM_REQUIRED","status":404,"message":"No blockchain system is available for this organization","data":{"id":"DALP-9440","why":"The active organization has no indexed system on the selected network, so the requested system-backed profile or operation does not exist there.","fix":"Deploy the organization system or select a network where its system is indexed, then retry.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["ANCHOR_ENABLEMENT_REFUSED","CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REACH_BACK_EXCEEDED","REPORTING_FILING_ROW_VERSION_CONFLICT","REPORTING_GENERATION_CONFLICT","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"ANCHOR_ENABLEMENT_REFUSED","status":409,"message":"Anchoring could not be turned on","data":{"id":"DALP-0727","why":"A configuration check refused anchoring for this obligation. `data.reason` names which check.","fix":"Read `data.reason`: register the issuer for the document-hash topic, give its managed signer a claim key, choose a warning severity where publication is the fulfilment act, and confirm the disclosure with a written reason.","retryable":false,"category":"domain","reason":"disclosure-not-confirmed"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["APPROVER_SHORTFALL","CONTRACT_ERROR","REPORTING_COVERAGE_UNAVAILABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"APPROVER_SHORTFALL","status":422,"message":"The organization has too few approvers to publish","data":{"id":"DALP-0719","why":"The organization has fewer approvers than maker-checker publishing requires.","fix":"Give a second owner or administrator to the organization, then publish again.","retryable":false,"category":"client","approvers":1,"required":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","REPORTING_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns every recorded action against one resource, across every actor and every route that touched it. This is the shape an investigation asks for: what happened to this thing, rather than what did this person do.","summary":"Read one resource's history","x-dalp-auth":"session-or-api-key"}},"/api/v2/reporting/trail/{entryId}":{"get":{"tags":["Regulatory reporting"],"operationId":"reporting.trail.trailEntry","parameters":[{"name":"entryId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"name":"from","in":"query","schema":{"anyOf":[{"type":"string","description":"Epoch as a digit string, or a readable datetime.","format":"timestamp"},{"type":"number","minimum":0}]},"required":true},{"name":"to","in":"query","schema":{"anyOf":[{"type":"string","description":"Epoch as a digit string, or a readable datetime.","format":"timestamp"},{"type":"number","minimum":0}]},"required":true}],"responses":{"200":{"description":"One recorded action.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ReportingTrailEntry"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"aud_01JAV","requestId":"req_01JAV","kind":"mutation","actorUserId":"usr_compliance_lead","roleAtTime":"admin","organizationId":"org_1","participantId":null,"authSource":"session","route":"reportingV2.obligationsPublish","method":"POST","pathTemplate":"/reporting/obligations/:obligationId/publish","target":"/api/v2/reporting/obligations/obl_mica_art_quarterly/publish","reason":"Extending the coupon window matches the harvest calendar.","startedAt":"2026-08-21T12:49:00.000Z","finishedAt":"2026-08-21T12:49:00.180Z","outcome":"success","status":200},"links":{"self":"/v2/reporting/trail/aud_01JAV"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_SYSTEM_REQUIRED","CONTRACT_ERROR","FILING_NOT_FOUND","OBLIGATION_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_SYSTEM_REQUIRED","status":404,"message":"No blockchain system is available for this organization","data":{"id":"DALP-9440","why":"The active organization has no indexed system on the selected network, so the requested system-backed profile or operation does not exist there.","fix":"Deploy the organization system or select a network where its system is indexed, then retry.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["ANCHOR_ENABLEMENT_REFUSED","CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REACH_BACK_EXCEEDED","REPORTING_FILING_ROW_VERSION_CONFLICT","REPORTING_GENERATION_CONFLICT","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"ANCHOR_ENABLEMENT_REFUSED","status":409,"message":"Anchoring could not be turned on","data":{"id":"DALP-0727","why":"A configuration check refused anchoring for this obligation. `data.reason` names which check.","fix":"Read `data.reason`: register the issuer for the document-hash topic, give its managed signer a claim key, choose a warning severity where publication is the fulfilment act, and confirm the disclosure with a written reason.","retryable":false,"category":"domain","reason":"disclosure-not-confirmed"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["APPROVER_SHORTFALL","CONTRACT_ERROR","REPORTING_COVERAGE_UNAVAILABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"APPROVER_SHORTFALL","status":422,"message":"The organization has too few approvers to publish","data":{"id":"DALP-0719","why":"The organization has fewer approvers than maker-checker publishing requires.","fix":"Give a second owner or administrator to the organization, then publish again.","retryable":false,"category":"client","approvers":1,"required":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","REPORTING_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one recorded action. An entry belonging to another organization answers 404 rather than 403: a 403 would confirm the identifier exists, which is itself a cross-organization disclosure.","summary":"Read one audit trail entry","x-dalp-auth":"session-or-api-key"}},"/api/v2/reporting/capabilities":{"get":{"tags":["Regulatory reporting"],"operationId":"reporting.capability.capabilityGet","parameters":[],"responses":{"200":{"description":"The reports this deployment can produce for the active organization.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ReportingCapabilities"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"enabled":false,"reportKinds":["holder-register","transfer-journal","settlement-and-fails","corporate-actions","reserve-and-asset-backing","fees-and-charges","fee-period-closes","compliance-decision-log","investor-eligibility-register","operator-action-trail"],"surfaces":{"anchors":false,"filings":false,"obligations":true,"calendar":true,"trail":true}},"links":{"self":"/v2/reporting/capabilities"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_SYSTEM_REQUIRED","CONTRACT_ERROR","FILING_NOT_FOUND","OBLIGATION_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_SYSTEM_REQUIRED","status":404,"message":"No blockchain system is available for this organization","data":{"id":"DALP-9440","why":"The active organization has no indexed system on the selected network, so the requested system-backed profile or operation does not exist there.","fix":"Deploy the organization system or select a network where its system is indexed, then retry.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["ANCHOR_ENABLEMENT_REFUSED","CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REACH_BACK_EXCEEDED","REPORTING_FILING_ROW_VERSION_CONFLICT","REPORTING_GENERATION_CONFLICT","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"ANCHOR_ENABLEMENT_REFUSED","status":409,"message":"Anchoring could not be turned on","data":{"id":"DALP-0727","why":"A configuration check refused anchoring for this obligation. `data.reason` names which check.","fix":"Read `data.reason`: register the issuer for the document-hash topic, give its managed signer a claim key, choose a warning severity where publication is the fulfilment act, and confirm the disclosure with a written reason.","retryable":false,"category":"domain","reason":"disclosure-not-confirmed"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["APPROVER_SHORTFALL","CONTRACT_ERROR","REPORTING_COVERAGE_UNAVAILABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"APPROVER_SHORTFALL","status":422,"message":"The organization has too few approvers to publish","data":{"id":"DALP-0719","why":"The organization has fewer approvers than maker-checker publishing requires.","fix":"Give a second owner or administrator to the organization, then publish again.","retryable":false,"category":"client","approvers":1,"required":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","REPORTING_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the platform-native reports this deployment can produce for the active organization. Read it before you build against a report identifier. Repeating the request is safe.","summary":"Read reporting capabilities","x-dalp-auth":"session-or-api-key"}},"/api/v2/reporting/statements":{"get":{"tags":["Accounts and portfolio"],"operationId":"reporting.statements.statementsList","parameters":[{"name":"offset","in":"query","schema":{"anyOf":[{"type":"number"},{"type":"string"}]},"required":false},{"name":"limit","in":"query","schema":{"anyOf":[{"type":"number"},{"type":"string"}]},"required":false}],"responses":{"200":{"description":"A page of investor statements and the total count.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ReportingInvestorStatement"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[],"meta":{"total":1,"facets":{}},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants","first":"/v2/accounts?sort=-firstSeenBlock&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/accounts?sort=-firstSeenBlock&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_SYSTEM_REQUIRED","CONTRACT_ERROR","FILING_NOT_FOUND","OBLIGATION_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_SYSTEM_REQUIRED","status":404,"message":"No blockchain system is available for this organization","data":{"id":"DALP-9440","why":"The active organization has no indexed system on the selected network, so the requested system-backed profile or operation does not exist there.","fix":"Deploy the organization system or select a network where its system is indexed, then retry.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["ANCHOR_ENABLEMENT_REFUSED","CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"ANCHOR_ENABLEMENT_REFUSED","status":409,"message":"Anchoring could not be turned on","data":{"id":"DALP-0727","why":"A configuration check refused anchoring for this obligation. `data.reason` names which check.","fix":"Read `data.reason`: register the issuer for the document-hash topic, give its managed signer a claim key, choose a warning severity where publication is the fulfilment act, and confirm the disclosure with a written reason.","retryable":false,"category":"domain","reason":"disclosure-not-confirmed"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","REPORTING_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of monthly statements for the caller's wallets in the request organization and chain. Repeating the request is safe.","summary":"List investor statements","x-dalp-auth":"session-or-api-key"}},"/api/v2/reporting/statements/{statementId}/download":{"get":{"tags":["Accounts and portfolio"],"operationId":"reporting.statements.statementsDownload","parameters":[{"name":"statementId","in":"path","schema":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"},"required":true},{"name":"format","in":"query","schema":{"type":"string","enum":["csv","pdf"]},"required":true}],"responses":{"200":{"description":"A short-lived statement download URL with its digest and content length.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ReportingInvestorStatementDownload"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"statementId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","format":"csv","downloadUrl":"https://objects.example.invalid/reporting/org_1/sub_01H/part-0?X-Amz-Expires=900","expiresAt":"2026-04-20T16:00:00.000Z","digest":"0xabc1230000000000000000000000000000000000000000000000000000000000","contentLength":48213,"mimeType":"application/pdf"},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_SYSTEM_REQUIRED","CONTRACT_ERROR","FILING_NOT_FOUND","OBLIGATION_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_SYSTEM_REQUIRED","status":404,"message":"No blockchain system is available for this organization","data":{"id":"DALP-9440","why":"The active organization has no indexed system on the selected network, so the requested system-backed profile or operation does not exist there.","fix":"Deploy the organization system or select a network where its system is indexed, then retry.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["ANCHOR_ENABLEMENT_REFUSED","CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"ANCHOR_ENABLEMENT_REFUSED","status":409,"message":"Anchoring could not be turned on","data":{"id":"DALP-0727","why":"A configuration check refused anchoring for this obligation. `data.reason` names which check.","fix":"Read `data.reason`: register the issuer for the document-hash topic, give its managed signer a claim key, choose a warning severity where publication is the fulfilment act, and confirm the disclosure with a written reason.","retryable":false,"category":"domain","reason":"disclosure-not-confirmed"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","REPORTING_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns a short-lived download URL for the CSV or PDF edition of a statement belonging to one of the caller's wallets. Repeating the request is safe.","summary":"Download an investor statement","x-dalp-auth":"session-or-api-key"}},"/api/v2/reporting/shareholder-lists/{tokenAddress}":{"get":{"tags":["Regulatory reporting"],"operationId":"reporting.shareholderLists.shareholderListsGet","parameters":[{"name":"tokenAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"name":"atBlock","in":"query","schema":{"type":"string","pattern":"^-?\\d+$"},"required":false}],"responses":{"200":{"description":"The shareholder list's record block, totals and reconciliation.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ReportingShareholderListSummary"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"chainId":1,"tokenAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","name":"Finstreet Share","symbol":"FST","decimals":18,"recordBlock":"1234","finalBlock":"1240","balancesSince":"2026-01-15T09:30:00.000Z","holderCount":3,"sharesHeld":"100","totalSupply":"100","reconciled":true,"formats":["csv","xlsx","pdf"]},"links":{"self":"/api/v2/reporting/shareholder-lists/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_SYSTEM_REQUIRED","CONTRACT_ERROR","FILING_NOT_FOUND","OBLIGATION_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SHAREHOLDER_LIST_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_SYSTEM_REQUIRED","status":404,"message":"No blockchain system is available for this organization","data":{"id":"DALP-9440","why":"The active organization has no indexed system on the selected network, so the requested system-backed profile or operation does not exist there.","fix":"Deploy the organization system or select a network where its system is indexed, then retry.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["ANCHOR_ENABLEMENT_REFUSED","CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"ANCHOR_ENABLEMENT_REFUSED","status":409,"message":"Anchoring could not be turned on","data":{"id":"DALP-0727","why":"A configuration check refused anchoring for this obligation. `data.reason` names which check.","fix":"Read `data.reason`: register the issuer for the document-hash topic, give its managed signer a claim key, choose a warning severity where publication is the fulfilment act, and confirm the disclosure with a written reason.","retryable":false,"category":"domain","reason":"disclosure-not-confirmed"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","SHAREHOLDER_LIST_REFUSED"]}},"required":["code"]}],"examples":[{"code":"SHAREHOLDER_LIST_REFUSED","status":422,"message":"No shareholder list can be read at this block","data":{"id":"DALP-0753","why":"The security's balance history does not reach the record block, or the record block is not final yet. `data.reason` names which, and `data.boundaryBlock` is the block the history starts at, the block the feature was detached at, or the newest final block.","fix":"For `feature-not-attached`, the security never had a historical-balances feature, so it has no record block to list. For `feature-detached`, the feature was detached at `data.boundaryBlock`: choose a record block before that block. For `enablement-after-record-block`, choose a record block at or after `data.boundaryBlock`. For `history-incomplete`, no record block can be listed, because the security had supply before the feature was attached; `data.boundaryBlock` is the block the feature was attached at. For `record-block-not-final`, wait until that block is final, or leave the block out to use the newest final block.","retryable":false,"category":"domain","reason":"feature-not-attached","recordBlock":"0xabababababababababababababababababababab","tokenAddress":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","REPORTING_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the record block, holder count, shares held and total supply of the security in the path, read at `atBlock` or at the newest final block, and whether the holders account for the whole supply. Needs a reporting role on the organization's system. Repeating the request is safe.","summary":"Read a shareholder list","x-dalp-auth":"session-or-api-key"}},"/api/v2/reporting/shareholder-lists/{tokenAddress}/download":{"get":{"tags":["Regulatory reporting"],"operationId":"reporting.shareholderLists.shareholderListsDownload","parameters":[{"name":"tokenAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"name":"atBlock","in":"query","schema":{"type":"string","pattern":"^-?\\d+$"},"required":false},{"name":"format","in":"query","schema":{"type":"string","enum":["csv","xlsx","pdf"]},"required":true}],"responses":{"200":{"description":"The shareholder list file in the requested format.","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_SYSTEM_REQUIRED","CONTRACT_ERROR","FILING_NOT_FOUND","OBLIGATION_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SHAREHOLDER_LIST_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_SYSTEM_REQUIRED","status":404,"message":"No blockchain system is available for this organization","data":{"id":"DALP-9440","why":"The active organization has no indexed system on the selected network, so the requested system-backed profile or operation does not exist there.","fix":"Deploy the organization system or select a network where its system is indexed, then retry.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["ANCHOR_ENABLEMENT_REFUSED","CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"ANCHOR_ENABLEMENT_REFUSED","status":409,"message":"Anchoring could not be turned on","data":{"id":"DALP-0727","why":"A configuration check refused anchoring for this obligation. `data.reason` names which check.","fix":"Read `data.reason`: register the issuer for the document-hash topic, give its managed signer a claim key, choose a warning severity where publication is the fulfilment act, and confirm the disclosure with a written reason.","retryable":false,"category":"domain","reason":"disclosure-not-confirmed"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","SHAREHOLDER_LIST_REFUSED"]}},"required":["code"]}],"examples":[{"code":"SHAREHOLDER_LIST_REFUSED","status":422,"message":"No shareholder list can be read at this block","data":{"id":"DALP-0753","why":"The security's balance history does not reach the record block, or the record block is not final yet. `data.reason` names which, and `data.boundaryBlock` is the block the history starts at, the block the feature was detached at, or the newest final block.","fix":"For `feature-not-attached`, the security never had a historical-balances feature, so it has no record block to list. For `feature-detached`, the feature was detached at `data.boundaryBlock`: choose a record block before that block. For `enablement-after-record-block`, choose a record block at or after `data.boundaryBlock`. For `history-incomplete`, no record block can be listed, because the security had supply before the feature was attached; `data.boundaryBlock` is the block the feature was attached at. For `record-block-not-final`, wait until that block is final, or leave the block out to use the newest final block.","retryable":false,"category":"domain","reason":"feature-not-attached","recordBlock":"0xabababababababababababababababababababab","tokenAddress":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","REPORTING_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the CSV, XLSX or PDF shareholder list of the security in the path: every wallet holding it at `atBlock` or at the newest final block, with its registered identity, country, balance and share of supply. Needs a reporting role on the organization's system. Repeating the request is safe.","summary":"Download a shareholder list","x-dalp-auth":"session-or-api-key"}},"/api/v2/reporting/confirmations":{"get":{"tags":["Accounts and portfolio"],"operationId":"reporting.confirmations.confirmationsList","parameters":[{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ReportingTransactionConfirmation"}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"0xabababababababababababababababababababababababababababababababab-3-0xcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd","chainId":1,"account":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","kind":"transfer","direction":"in","counterparty":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","token":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","symbol":"ACME25","decimals":18,"amount":"10000","blockNumber":"21458901","logIndex":9,"transactionHash":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae","occurredAt":"2026-03-04T15:43:02.000Z"}],"meta":{"total":1,"facets":{}},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants","first":"/v2/accounts?sort=-firstSeenBlock&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/accounts?sort=-firstSeenBlock&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_SYSTEM_REQUIRED","CONTRACT_ERROR","FILING_NOT_FOUND","OBLIGATION_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_SYSTEM_REQUIRED","status":404,"message":"No blockchain system is available for this organization","data":{"id":"DALP-9440","why":"The active organization has no indexed system on the selected network, so the requested system-backed profile or operation does not exist there.","fix":"Deploy the organization system or select a network where its system is indexed, then retry.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["ANCHOR_ENABLEMENT_REFUSED","CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"ANCHOR_ENABLEMENT_REFUSED","status":409,"message":"Anchoring could not be turned on","data":{"id":"DALP-0727","why":"A configuration check refused anchoring for this obligation. `data.reason` names which check.","fix":"Read `data.reason`: register the issuer for the document-hash topic, give its managed signer a claim key, choose a warning severity where publication is the fulfilment act, and confirm the disclosure with a written reason.","retryable":false,"category":"domain","reason":"disclosure-not-confirmed"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","REPORTING_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"x-dalp-auth":"session-or-api-key"}},"/api/v2/reporting/confirmations/{confirmationId}":{"get":{"tags":["Accounts and portfolio"],"operationId":"reporting.confirmations.confirmationsGet","parameters":[{"name":"confirmationId","in":"path","schema":{"type":"string","pattern":"^0x[0-9a-f]{64}-(?:0|[1-9][0-9]{0,8})-0x[0-9a-f]{40}$","description":"Identifies one confirmation: the movement's transaction hash, its log index and the confirmed wallet, joined by hyphens in lowercase hex.","examples":["0xabababababababababababababababababababababababababababababababab-3-0xcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd"]},"required":true}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ReportingTransactionConfirmation"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0xabababababababababababababababababababababababababababababababab-3-0xcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd","chainId":1,"account":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","kind":"transfer","direction":"in","counterparty":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","token":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","symbol":"ACME25","decimals":18,"amount":"10000","blockNumber":"21458901","logIndex":9,"transactionHash":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae","occurredAt":"2026-03-04T15:43:02.000Z"},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_SYSTEM_REQUIRED","CONTRACT_ERROR","FILING_NOT_FOUND","OBLIGATION_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_SYSTEM_REQUIRED","status":404,"message":"No blockchain system is available for this organization","data":{"id":"DALP-9440","why":"The active organization has no indexed system on the selected network, so the requested system-backed profile or operation does not exist there.","fix":"Deploy the organization system or select a network where its system is indexed, then retry.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["ANCHOR_ENABLEMENT_REFUSED","CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"ANCHOR_ENABLEMENT_REFUSED","status":409,"message":"Anchoring could not be turned on","data":{"id":"DALP-0727","why":"A configuration check refused anchoring for this obligation. `data.reason` names which check.","fix":"Read `data.reason`: register the issuer for the document-hash topic, give its managed signer a claim key, choose a warning severity where publication is the fulfilment act, and confirm the disclosure with a written reason.","retryable":false,"category":"domain","reason":"disclosure-not-confirmed"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","REPORTING_UNAVAILABLE","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/xvp-settlements":{"get":{"tags":["XvP settlements"],"operationId":"xvpV2.v2/addons/xvp/list","parameters":[{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. page[offset] 0 to 10000, page[limit] 1 to 200."},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","enum":["name","-name","cutoffDate","-cutoffDate","createdAt","-createdAt","createdOffset","-createdOffset","recordTime","-recordTime"],"description":"JSON:API sort param. Prefix with - for descending. Sortable fields: name, cutoffDate, createdAt"},"required":false},{"name":"participant","in":"query","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":false},{"name":"systemAddon","in":"query","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":false},{"name":"family","in":"query","schema":{"type":"string","enum":["evm","canton"],"description":"Chain family discriminator for wallet identity, payloads, and signing requests"},"required":false},{"name":"network","in":"query","schema":{"type":"string","minLength":1},"required":false},{"name":"kind","in":"query","schema":{"type":"string","enum":["allocation","request"]},"required":false},{"name":"instrumentAdmin","in":"query","schema":{"type":"string","minLength":1,"description":"Canton party identifier.","examples":["Canton::1220abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123"]},"required":false},{"name":"authorizerParty","in":"query","schema":{"type":"string","minLength":1,"description":"Canton party identifier.","examples":["Canton::1220abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123"]},"required":false},{"name":"authorizerProvider","in":"query","schema":{"type":"string","minLength":1,"description":"Canton party identifier.","examples":["Canton::1220abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123"]},"required":false},{"name":"settleAt","in":"query","schema":{"anyOf":[{"type":"string","description":"Epoch milliseconds as a digit string, or a readable datetime.","format":"timestamp"},{"type":"integer","minimum":0}]},"required":false},{"name":"expiresAt","in":"query","schema":{"anyOf":[{"type":"string","description":"Epoch milliseconds as a digit string, or a readable datetime.","format":"timestamp"},{"type":"integer","minimum":0}]},"required":false},{"name":"createdOffset","in":"query","schema":{"type":"string","pattern":"^\\d+$","description":"Ledger offset of the update that produced the row, as a decimal string.","examples":["42"]},"required":false},{"name":"recordTime","in":"query","schema":{"anyOf":[{"type":"string","description":"Epoch milliseconds as a digit string, or a readable datetime.","format":"timestamp"},{"type":"integer","minimum":0}]},"required":false},{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000},"participant":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"systemAddon":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"family":{"type":"string","enum":["evm","canton"],"description":"Chain family discriminator for wallet identity, payloads, and signing requests"},"kind":{"type":"string","enum":["allocation","request"]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true}],"responses":{"200":{"description":"One page of XvP settlements in the active system. Narrow on `data[].family` before reading any other field: an `evm` row is an indexed settlement with its approvals and votes and `userApproved` relative to the authenticated caller, a `canton` row is a ledger allocation or allocation request with its legs and offsets. Families are blocked, not interleaved: every matching EVM settlement comes first, then every Canton allocation, and `meta.total` spans both. `filter[family]` selects one family; `filter[network]` narrows to one chain id or Canton network.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/XvpSettlementListRow"}},"meta":{"$ref":"#/components/schemas/SettlementCollectionMeta"},"links":{"$ref":"#/components/schemas/SettlementCollectionLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"family":"evm","id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","name":"Northwind Series A vs Fabrikam USDC","hasExternalFlows":false,"cutoffDate":"2026-04-20T16:00:00.000Z","createdAt":"2026-03-15T09:12:41.000Z","createdBy":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false},"secretRevealTx":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae","executed":false,"cancelled":false,"withdrawn":false,"allApprovedAt":null,"approvalsCount":1,"cancelVotesCount":0,"localSendersCount":2,"localParticipantsCount":2,"userApproved":true}],"meta":{"total":1,"facets":{}},"links":{"self":"/v2/addons/xvp-settlements?sort=createdAt&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/addons/xvp-settlements?sort=createdAt&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/addons/xvp-settlements?sort=createdAt&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","XVP_HASHLOCK_INVALID","XVP_HASHLOCK_REVEAL_NOT_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","settlement.http.PRECONDITION_FAILED","settlement.http.SECRET_FAILED","settlement.sale.DOCUMENT_REJECTED"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","XVP_CREATE_COULD_NOT_RESOLVE_CREATED_SETTLEMENT_INDEXER_RETRIES","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","settlement.http.DEPENDENCY_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of XvP settlements in the active system and participant scope, across chain families. Every row carries `family`: an `evm` row is an indexed settlement keyed by its contract address, with its approvals, cancel votes and per-caller `userApproved`; a `canton` row is one allocation or allocation request the ledger disclosed to the caller's parties, with its legs, executors and the offsets that name it. Default sort is `createdAt`; the EVM block filters on `name`, `cutoffDate`, `participant` or `systemAddon`, the Canton block on `kind`, `instrumentAdmin`, `authorizerParty`, `authorizerProvider`, `settleAt`, `expiresAt`, `createdOffset` or `recordTime`, and the two are blocked rather than interleaved, EVM first. Narrow to one family with `filter[family]`, or with `X-Chain-Id` for EVM or `X-Network-Id` for Canton; send neither for both. A family filter naming a family the collection serves is a valid empty page; a filter only the other family has a column for answers 422. Repeating the request is safe.","summary":"Page XvP settlements","x-dalp-auth":"session-or-api-key"},"post":{"tags":["XvP settlements"],"operationId":"xvpV2.v2/addons/xvp/create","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Accepted XvP write. A 202 body carries `transactionId` and `statusUrl`. Poll that URL until the write is indexed.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/XvpCreateSettledData"},"meta":{"$ref":"#/components/schemas/SettlementBlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SettlementSingleLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"transactionHash":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae","settlementId":"0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9"},"meta":{"txHashes":["0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"]},"links":{"self":"/v2/addons/xvp-settlements"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SettlementAsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","XVP_HASHLOCK_INVALID","XVP_HASHLOCK_REVEAL_NOT_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_COMMAND_NO_LONGER_APPLIES","CANTON_SETTLEMENT_BATCH_NOT_COVERABLE","CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CANTON_COMMAND_NO_LONGER_APPLIES","status":409,"message":"The approved Canton command no longer applies","data":{"id":"DALP-9314","why":"The DAML command was approved, then the target contract or ledger state changed so the same command cannot settle.","fix":"Submit a new command. The existing approval is not reopened.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_ALLOCATION_REQUEST_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"CANTON_ALLOCATION_REQUEST_EXPIRED","status":410,"message":"The Canton allocation request expired","data":{"id":"DALP-12230","why":"The settlement allocation request passed its execution window before the allocation was made, so the platform cannot allocate against it.","fix":"Create a new allocation request with an execution window that has not passed.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_NETWORK_NOT_CONFIGURED","CANTON_NETWORK_NOT_ENABLED","CANTON_SUBMISSION_REJECTED","CONTRACT_ERROR","settlement.http.PRECONDITION_FAILED","settlement.http.SECRET_FAILED","settlement.sale.DOCUMENT_REJECTED"]}},"required":["code"]}],"examples":[{"code":"CANTON_NETWORK_NOT_CONFIGURED","status":422,"message":"No Canton participant network is configured","data":{"id":"DALP-9313","why":"This deployment has no Canton participant network, so the platform cannot allocate a party or submit a DAML command.","fix":"Ask an operator to add a Canton network to the platform configuration, then retry.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_CAPABILITY_UNAVAILABLE","DALP-0083","SESSION_RESOLUTION_FAILED","XVP_CREATE_COULD_NOT_RESOLVE_CREATED_SETTLEMENT_INDEXER_RETRIES","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","settlement.http.DEPENDENCY_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CANTON_CAPABILITY_UNAVAILABLE","status":503,"message":"A required Canton capability is unavailable","data":{"id":"DALP-12233","why":"The Canton participant or a service it depends on did not provide a capability this operation needs, so the platform did not complete the request.","fix":"Retry later. If the refusal persists, ask an operator to restore the Canton participant connection.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Queues an exchange-versus-payment settlement. At least one flow must be local. A cross-chain settlement also needs a `secret` or `hashlock`. The 202 body carries a `statusUrl` you poll until the settlement is indexed. Do not submit a second create until you have read the first attempt's status. The body's shape selects the chain family: an EVM body names the factory and the flows and queues a deployment, and a Canton body names `instrumentAdmin`, the settlement and its legs and asks the named authorizer to escrow its sides on the ledger, answering with the operation the ledger accepted.","summary":"Queue a settlement","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/XvpCreatePayload"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/xvp-settlements/{settlementAddress}":{"get":{"tags":["XvP settlements"],"operationId":"xvpV2.v2/addons/xvp/read","parameters":[{"name":"settlementAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true}],"responses":{"200":{"description":"The requested XvP settlement with approvals, cancel votes, asset flows, whether a secret is stored, and, for the settlement's parties, the secret once it is revealed on chain.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/XvpSettlementRead"},"links":{"$ref":"#/components/schemas/SettlementSingleLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","name":"Northwind Series A vs Fabrikam USDC","hasExternalFlows":false,"cutoffDate":"2026-04-20T16:00:00.000Z","createdAt":"2026-03-15T09:12:41.000Z","createdBy":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false},"executed":false,"cancelled":false,"withdrawn":false,"allApprovedAt":null,"approvalsCount":1,"cancelVotesCount":0,"localSendersCount":2,"localParticipantsCount":2,"secretRevealedAt":null,"secretRevealTx":null,"secretRevealedBy":null,"systemAddon":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"},"hashlock":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae","secretRevealed":false,"secret":null,"autoExecute":false,"approvals":[{"id":"approval:treasury","approved":true,"timestamp":"2026-03-15T10:00:00.000Z","account":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}],"cancelVotes":[{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","votedAt":0,"active":true,"account":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}],"flows":[{"id":"flow:ncb","legIndex":0,"assetId":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","from":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","to":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","amount":"125000","externalChainId":0,"isExternal":false,"externalAssetDecimals":null}],"hasStoredSecret":false,"userApproved":true},"links":{"self":"/v2/addons/xvp-settlements/0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","XVP_HASHLOCK_INVALID","XVP_HASHLOCK_REVEAL_NOT_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","settlement.http.PRECONDITION_FAILED","settlement.http.SECRET_FAILED","settlement.sale.DOCUMENT_REJECTED"]}},"required":["code"]}],"examples":[{"code":"settlement.http.PRECONDITION_FAILED","status":422,"message":"A settlement precondition is not met","data":{"id":"DALP-12324","why":"The settlement cannot run the requested operation until a precondition it names is satisfied.","fix":"Satisfy the precondition, then send the request again.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","XVP_CREATE_COULD_NOT_RESOLVE_CREATED_SETTLEMENT_INDEXER_RETRIES","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","settlement.http.DEPENDENCY_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one XvP settlement with approvals, cancel votes, asset flows, whether a secret is stored, and, for the settlement's parties, the secret once it is revealed on chain. A settlement the indexer has not seen answers 404. Repeating the request is safe.","summary":"Read an indexed XvP settlement","x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/xvp-settlements/{settlementAddress}/secret-decryptions":{"post":{"tags":["XvP settlements"],"operationId":"xvpV2.v2/addons/xvp/decrypt","parameters":[{"name":"settlementAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The decrypted hashlock pre-image and its keccak256 hashlock. Use `secret` only to reveal or execute.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/XvpDecryptOutput"},"links":{"$ref":"#/components/schemas/SettlementSingleLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"secret":"0x6e6f72746877696e642d7365726965732d612d707265696d616765","hashlock":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"},"links":{"self":"/v2/addons/xvp-settlements/0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9/secret-decryptions"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","XVP_HASHLOCK_INVALID","XVP_HASHLOCK_REVEAL_NOT_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","settlement.http.PRECONDITION_FAILED","settlement.http.SECRET_FAILED","settlement.sale.DOCUMENT_REJECTED"]}},"required":["code"]}],"examples":[{"code":"settlement.http.PRECONDITION_FAILED","status":422,"message":"A settlement precondition is not met","data":{"id":"DALP-12324","why":"The settlement cannot run the requested operation until a precondition it names is satisfied.","fix":"Satisfy the precondition, then send the request again.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","XVP_CREATE_COULD_NOT_RESOLVE_CREATED_SETTLEMENT_INDEXER_RETRIES","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","settlement.http.DEPENDENCY_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Decrypts the stored hashlock secret after the authorized wallet signs the request. A missing stored secret answers 404. Repeating the request after a success returns the same secret.","summary":"Decrypt a stored XvP secret","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/XvpDecryptBody"}}},"required":false},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/xvp-settlements/{settlementAddress}/approvals":{"post":{"tags":["XvP settlements"],"operationId":"xvpV2.v2/addons/xvp/approve","parameters":[{"name":"settlementAddress","in":"path","schema":{"type":"string","minLength":1,"description":"The settlement's contract address on EVM, or the caller's `settlementId` on Canton, which must equal the body's."},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Accepted XvP write. A 202 body carries `transactionId` and `statusUrl`. Poll that URL until the write is indexed.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/XvpApproveSettledData"},"meta":{"$ref":"#/components/schemas/SettlementBlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SettlementSingleLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"transactionHash":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"},"meta":{"txHashes":["0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"]},"links":{"self":"/v2/addons/xvp-settlements/0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9/approvals"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SettlementAsyncAcceptedResult_1"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","XVP_HASHLOCK_INVALID","XVP_HASHLOCK_REVEAL_NOT_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_COMMAND_NO_LONGER_APPLIES","CANTON_SETTLEMENT_BATCH_NOT_COVERABLE","CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CANTON_COMMAND_NO_LONGER_APPLIES","status":409,"message":"The approved Canton command no longer applies","data":{"id":"DALP-9314","why":"The DAML command was approved, then the target contract or ledger state changed so the same command cannot settle.","fix":"Submit a new command. The existing approval is not reopened.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_ALLOCATION_REQUEST_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"CANTON_ALLOCATION_REQUEST_EXPIRED","status":410,"message":"The Canton allocation request expired","data":{"id":"DALP-12230","why":"The settlement allocation request passed its execution window before the allocation was made, so the platform cannot allocate against it.","fix":"Create a new allocation request with an execution window that has not passed.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_NETWORK_NOT_CONFIGURED","CANTON_NETWORK_NOT_ENABLED","CANTON_SUBMISSION_REJECTED","CONTRACT_ERROR","settlement.http.PRECONDITION_FAILED","settlement.http.SECRET_FAILED","settlement.sale.DOCUMENT_REJECTED"]}},"required":["code"]}],"examples":[{"code":"CANTON_NETWORK_NOT_CONFIGURED","status":422,"message":"No Canton participant network is configured","data":{"id":"DALP-9313","why":"This deployment has no Canton participant network, so the platform cannot allocate a party or submit a DAML command.","fix":"Ask an operator to add a Canton network to the platform configuration, then retry.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_CAPABILITY_UNAVAILABLE","DALP-0083","SESSION_RESOLUTION_FAILED","XVP_CREATE_COULD_NOT_RESOLVE_CREATED_SETTLEMENT_INDEXER_RETRIES","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","settlement.http.DEPENDENCY_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CANTON_CAPABILITY_UNAVAILABLE","status":503,"message":"A required Canton capability is unavailable","data":{"id":"DALP-12233","why":"The Canton participant or a service it depends on did not provide a capability this operation needs, so the platform did not complete the request.","fix":"Retry later. If the refusal persists, ask an operator to restore the Canton participant connection.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Queues the caller's approval and any required token allowances as one operation. Only a local sender may approve. Poll the 202 `statusUrl` before you treat the approval as recorded. The path names the settlement contract, so an EVM body carries only the signing proof. A Canton body is declared but cannot be addressed on this route until a typed Canton settlement route exists.","summary":"Queue an approval or allocation","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/XvpApprovePayload"}}},"required":false},"x-dalp-auth":"session-or-api-key"},"delete":{"tags":["XvP settlements"],"operationId":"xvpV2.v2/addons/xvp/revokeApproval","parameters":[{"name":"settlementAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Accepted XvP write. A 202 body carries `transactionId` and `statusUrl`. Poll that URL until the write is indexed.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/XvpApproveOutput"},"meta":{"$ref":"#/components/schemas/SettlementBlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SettlementSingleLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"transactionHash":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"},"meta":{"txHashes":["0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"]},"links":{"self":"/v2/addons/xvp-settlements/0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9/approvals"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SettlementAsyncAcceptedResult_2"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","XVP_HASHLOCK_INVALID","XVP_HASHLOCK_REVEAL_NOT_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","XVP_APPROVAL_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","settlement.http.PRECONDITION_FAILED","settlement.http.SECRET_FAILED","settlement.sale.DOCUMENT_REJECTED"]}},"required":["code"]}],"examples":[{"code":"settlement.http.PRECONDITION_FAILED","status":422,"message":"A settlement precondition is not met","data":{"id":"DALP-12324","why":"The settlement cannot run the requested operation until a precondition it names is satisfied.","fix":"Satisfy the precondition, then send the request again.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","XVP_CREATE_COULD_NOT_RESOLVE_CREATED_SETTLEMENT_INDEXER_RETRIES","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","settlement.http.DEPENDENCY_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Queues revocation of the caller's approval on a settlement that has not executed. Poll the 202 `statusUrl` before you treat the approval as gone.","summary":"Queue an XvP approval revocation","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/XvpSettlementWriteBody"}}},"required":false},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/xvp-settlements/{settlementAddress}/executions":{"post":{"tags":["XvP settlements"],"operationId":"xvpV2.v2/addons/xvp/execute","parameters":[{"name":"settlementAddress","in":"path","schema":{"type":"string","minLength":1,"description":"The settlement's contract address on EVM, or the caller's `settlementId` on Canton, which must equal the body's."},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Accepted XvP write. A 202 body carries `transactionId` and `statusUrl`. Poll that URL until the write is indexed.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/XvpExecuteSettledData"},"meta":{"$ref":"#/components/schemas/SettlementBlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SettlementSingleLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"transactionHash":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"},"meta":{"txHashes":["0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"]},"links":{"self":"/v2/addons/xvp-settlements/0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9/executions"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SettlementAsyncAcceptedResult_3"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","XVP_HASHLOCK_INVALID","XVP_HASHLOCK_REVEAL_NOT_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_COMMAND_NO_LONGER_APPLIES","CANTON_SETTLEMENT_BATCH_NOT_COVERABLE","CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CANTON_COMMAND_NO_LONGER_APPLIES","status":409,"message":"The approved Canton command no longer applies","data":{"id":"DALP-9314","why":"The DAML command was approved, then the target contract or ledger state changed so the same command cannot settle.","fix":"Submit a new command. The existing approval is not reopened.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_ALLOCATION_REQUEST_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"CANTON_ALLOCATION_REQUEST_EXPIRED","status":410,"message":"The Canton allocation request expired","data":{"id":"DALP-12230","why":"The settlement allocation request passed its execution window before the allocation was made, so the platform cannot allocate against it.","fix":"Create a new allocation request with an execution window that has not passed.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_NETWORK_NOT_CONFIGURED","CANTON_NETWORK_NOT_ENABLED","CANTON_SUBMISSION_REJECTED","CONTRACT_ERROR","settlement.http.PRECONDITION_FAILED","settlement.http.SECRET_FAILED","settlement.sale.DOCUMENT_REJECTED"]}},"required":["code"]}],"examples":[{"code":"CANTON_NETWORK_NOT_CONFIGURED","status":422,"message":"No Canton participant network is configured","data":{"id":"DALP-9313","why":"This deployment has no Canton participant network, so the platform cannot allocate a party or submit a DAML command.","fix":"Ask an operator to add a Canton network to the platform configuration, then retry.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_CAPABILITY_UNAVAILABLE","DALP-0083","SESSION_RESOLUTION_FAILED","XVP_CREATE_COULD_NOT_RESOLVE_CREATED_SETTLEMENT_INDEXER_RETRIES","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","settlement.http.DEPENDENCY_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CANTON_CAPABILITY_UNAVAILABLE","status":503,"message":"A required Canton capability is unavailable","data":{"id":"DALP-12233","why":"The Canton participant or a service it depends on did not provide a capability this operation needs, so the platform did not complete the request.","fix":"Retry later. If the refusal persists, ask an operator to restore the Canton participant connection.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Queues settlement of an approved XvP after every required approval (and hashlock reveal, when required) is in place. Poll the 202 `statusUrl` before you treat the flows as moved. The path names the settlement contract, so an EVM body carries only the signing proof. A Canton body is declared but cannot be addressed on this route until a typed Canton settlement route exists.","summary":"Queue execution or settlement","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/XvpExecutePayload"}}},"required":false},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/xvp-settlements/{settlementAddress}/cancellation-requests":{"post":{"tags":["XvP settlements"],"operationId":"xvpV2.v2/addons/xvp/cancel","parameters":[{"name":"settlementAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Accepted XvP write. A 202 body carries `transactionId` and `statusUrl`. Poll that URL until the write is indexed.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/XvpApproveOutput"},"meta":{"$ref":"#/components/schemas/SettlementBlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SettlementSingleLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"transactionHash":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"},"meta":{"txHashes":["0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"]},"links":{"self":"/v2/addons/xvp-settlements/0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9/cancellation-requests"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SettlementAsyncAcceptedResult_4"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","XVP_HASHLOCK_INVALID","XVP_HASHLOCK_REVEAL_NOT_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","settlement.http.PRECONDITION_FAILED","settlement.http.SECRET_FAILED","settlement.sale.DOCUMENT_REJECTED"]}},"required":["code"]}],"examples":[{"code":"settlement.http.PRECONDITION_FAILED","status":422,"message":"A settlement precondition is not met","data":{"id":"DALP-12324","why":"The settlement cannot run the requested operation until a precondition it names is satisfied.","fix":"Satisfy the precondition, then send the request again.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","XVP_CREATE_COULD_NOT_RESOLVE_CREATED_SETTLEMENT_INDEXER_RETRIES","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","settlement.http.DEPENDENCY_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Queues a cancellation vote on a settlement that has not executed. Cancellation completes only after the required votes land. Poll the 202 `statusUrl` before you treat the settlement as canceled.","summary":"Queue an XvP cancellation vote","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/XvpSettlementWriteBody"}}},"required":false},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/xvp-settlements/{settlementAddress}/expiry-withdrawals":{"post":{"tags":["XvP settlements"],"operationId":"xvpV2.v2/addons/xvp/withdrawExpired","parameters":[{"name":"settlementAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Accepted XvP write. A 202 body carries `transactionId` and `statusUrl`. Poll that URL until the write is indexed.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/XvpApproveOutput"},"meta":{"$ref":"#/components/schemas/SettlementBlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SettlementSingleLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"transactionHash":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"},"meta":{"txHashes":["0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"]},"links":{"self":"/v2/addons/xvp-settlements/0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9/expiry-withdrawals"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SettlementAsyncAcceptedResult_5"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","XVP_HASHLOCK_INVALID","XVP_HASHLOCK_REVEAL_NOT_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","settlement.http.PRECONDITION_FAILED","settlement.http.SECRET_FAILED","settlement.sale.DOCUMENT_REJECTED"]}},"required":["code"]}],"examples":[{"code":"settlement.http.PRECONDITION_FAILED","status":422,"message":"A settlement precondition is not met","data":{"id":"DALP-12324","why":"The settlement cannot run the requested operation until a precondition it names is satisfied.","fix":"Satisfy the precondition, then send the request again.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","XVP_CREATE_COULD_NOT_RESOLVE_CREATED_SETTLEMENT_INDEXER_RETRIES","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","settlement.http.DEPENDENCY_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Queues return of escrowed assets after the settlement cutoff has passed without execution. Poll the 202 `statusUrl` before you treat the assets as returned.","summary":"Queue withdrawal of an expired XvP","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/XvpSettlementWriteBody"}}},"required":false},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/xvp-settlements/{settlementAddress}/secrets":{"post":{"tags":["XvP settlements"],"operationId":"xvpV2.v2/addons/xvp/storeSecret","parameters":[{"name":"settlementAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Confirmation that the hashlock pre-image is stored for the settlement.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/XvpStoreSecretOutput"},"links":{"$ref":"#/components/schemas/SettlementSingleLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"settlementId":"0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9","stored":true},"links":{"self":"/v2/addons/xvp-settlements/0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9/secrets"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","XVP_HASHLOCK_INVALID","XVP_HASHLOCK_REVEAL_NOT_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","settlement.http.PRECONDITION_FAILED","settlement.http.SECRET_FAILED","settlement.sale.DOCUMENT_REJECTED"]}},"required":["code"]}],"examples":[{"code":"settlement.http.PRECONDITION_FAILED","status":422,"message":"A settlement precondition is not met","data":{"id":"DALP-12324","why":"The settlement cannot run the requested operation until a precondition it names is satisfied.","fix":"Satisfy the precondition, then send the request again.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","XVP_CREATE_COULD_NOT_RESOLVE_CREATED_SETTLEMENT_INDEXER_RETRIES","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","settlement.http.DEPENDENCY_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Encrypts and stores the hashlock pre-image for the deployed settlement the path names. Poll the create `statusUrl` until the settlement is indexed to learn its address; a settlement the indexer has not seen answers 404. Only the settlement creator may store the secret. A second call with the same secret is idempotent and returns `stored: true`.","summary":"Store an XvP secret","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/XvpStoreSecretBody"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/xvp-settlements/{settlementAddress}/secret-revelations":{"post":{"tags":["XvP settlements"],"operationId":"xvpV2.v2/addons/xvp/revealSecret","parameters":[{"name":"settlementAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Accepted XvP write. A 202 body carries `transactionId` and `statusUrl`. Poll that URL until the write is indexed.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/XvpRevealSecretOutput"},"meta":{"$ref":"#/components/schemas/SettlementBlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SettlementSingleLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"transactionHash":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae","emailResults":[{"recipient":"ops@northwind.example","success":true}]},"meta":{"txHashes":["0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"]},"links":{"self":"/v2/addons/xvp-settlements/0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9/secret-revelations"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SettlementAsyncAcceptedResult_6"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","XVP_HASHLOCK_INVALID","XVP_HASHLOCK_REVEAL_NOT_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","settlement.http.PRECONDITION_FAILED","settlement.http.SECRET_FAILED","settlement.sale.DOCUMENT_REJECTED"]}},"required":["code"]}],"examples":[{"code":"settlement.http.PRECONDITION_FAILED","status":422,"message":"A settlement precondition is not met","data":{"id":"DALP-12324","why":"The settlement cannot run the requested operation until a precondition it names is satisfied.","fix":"Satisfy the precondition, then send the request again.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","XVP_CREATE_COULD_NOT_RESOLVE_CREATED_SETTLEMENT_INDEXER_RETRIES","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","settlement.http.DEPENDENCY_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Queues on-chain publication of the hashlock pre-image so counterparties can execute. A settlement that does not require a reveal answers 409. Poll the 202 `statusUrl` before you treat the secret as public.","summary":"Queue an XvP secret reveal","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/XvpRevealSecretBody"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/token-sales":{"get":{"tags":["Primary offerings"],"operationId":"tokenSaleV2.v2/addons/tokenSale/list","parameters":[{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. page[offset] 0 to 10000, page[limit] 1 to 200."},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","enum":["saleStartTime","-saleStartTime","saleEndTime","-saleEndTime","totalSold","-totalSold","createdAt","-createdAt"],"description":"JSON:API sort param. Prefix with - for descending. Sortable fields: saleStartTime, saleEndTime, totalSold, createdAt"},"required":false},{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000},"createdAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"saleEndTime":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"saleStartTime":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"systemAddon":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"token":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"totalSold":{"anyOf":[{"type":"string","pattern":"^-?\\d+$","maxLength":80},{"type":"object","properties":{"eq":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"ne":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"gte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"between":{"type":"string","maxLength":161},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}],"allOf":[{"description":"Amount sold in base units, the value of `totalSoldExact`, not the decimal `totalSold` amount. For 5 tokens with 18 decimals, send `5000000000000000000`."}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true}],"responses":{"200":{"description":"One page of token sales in the active system. `status` is computed from the chain clock at read time.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/TokenSaleListItem"}},"meta":{"$ref":"#/components/schemas/SettlementCollectionMeta"},"links":{"$ref":"#/components/schemas/SettlementCollectionLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"0x5FC8d32690cc91D4c39d9d3abcBD16989F875707","token":{"id":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","symbol":"NCB","decimals":18},"status":"PUBLIC_SALE","saleStartTime":"2026-04-01T08:00:00.000Z","saleEndTime":"2026-12-31T17:00:00.000Z","presaleEndTime":"2026-04-15T17:00:00.000Z","createdAt":"2026-03-15T09:12:41.000Z","totalSold":"125000","totalSoldExact":"125000000000000000000000","hardCap":"500000","hardCapExact":"500000000000000000000000"}],"meta":{"total":1},"links":{"self":"/v2/addons/token-sales?sort=saleStartTime&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/addons/token-sales?sort=saleStartTime&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/addons/token-sales?sort=saleStartTime&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","XVP_HASHLOCK_INVALID","XVP_HASHLOCK_REVEAL_NOT_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_SALE_ADDON_NOT_IN_OWNER_SCOPE_AUTHENTICATED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","settlement.http.PRECONDITION_FAILED","settlement.http.SECRET_FAILED","settlement.sale.DOCUMENT_REJECTED"]}},"required":["code"]}],"examples":[{"code":"settlement.http.PRECONDITION_FAILED","status":422,"message":"A settlement precondition is not met","data":{"id":"DALP-12324","why":"The settlement cannot run the requested operation until a precondition it names is satisfied.","fix":"Satisfy the precondition, then send the request again.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","XVP_CREATE_COULD_NOT_RESOLVE_CREATED_SETTLEMENT_INDEXER_RETRIES","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","settlement.http.DEPENDENCY_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of token sales in the active chain and system. Default sort is `saleStartTime`. Filter by start or end time, sold token, factory, or amount sold. Status is computed from the chain clock at read time, so do not filter on it. Repeating the request is safe.","summary":"List token sales","x-dalp-auth":"session-or-api-key"},"post":{"tags":["Primary offerings"],"operationId":"tokenSaleV2.v2/addons/tokenSale/create","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Accepted sale write. A 202 body carries `transactionId` and `statusUrl`. Poll that URL until the write is indexed.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenSaleCreateSettledData"},"meta":{"$ref":"#/components/schemas/SettlementBlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SettlementSingleLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"transactionHash":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae","tokenSaleId":"0x5FC8d32690cc91D4c39d9d3abcBD16989F875707"},"meta":{"txHashes":["0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"]},"links":{"self":"/v2/addons/token-sales"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SettlementAsyncAcceptedResult_8"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","XVP_HASHLOCK_INVALID","XVP_HASHLOCK_REVEAL_NOT_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","settlement.http.PRECONDITION_FAILED","settlement.http.SECRET_FAILED","settlement.sale.DOCUMENT_REJECTED"]}},"required":["code"]}],"examples":[{"code":"settlement.http.PRECONDITION_FAILED","status":422,"message":"A settlement precondition is not met","data":{"id":"DALP-12324","why":"The settlement cannot run the requested operation until a precondition it names is satisfied.","fix":"Satisfy the precondition, then send the request again.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","XVP_CREATE_COULD_NOT_RESOLVE_CREATED_SETTLEMENT_INDEXER_RETRIES","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","settlement.http.DEPENDENCY_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Queues deployment of a new sale for a token the caller manages. Send hard cap and duration; optional payment currencies, limits, vesting, and presale apply at create. The 202 body carries a `statusUrl` you poll until the sale is indexed. Do not submit a second create until you have read the first attempt's status. The body's shape selects the chain family: an EVM body names the sold token by contract address, and a Canton body names `instrumentAdmin` and opens the sale on the ledger as the party wallet it carries, answering with the id of the contract it created.","summary":"Create a token sale","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenSaleCreateInput"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/token-sales/investments":{"get":{"tags":["Primary offerings"],"operationId":"tokenSaleV2.v2/addons/tokenSale/investments","parameters":[{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. page[offset] 0 to 10000, page[limit] 1 to 200."},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","enum":["saleStartTime","-saleStartTime","saleEndTime","-saleEndTime","totalSold","-totalSold","createdAt","-createdAt"],"description":"JSON:API sort param. Prefix with - for descending. Sortable fields: saleStartTime, saleEndTime, totalSold, createdAt"},"required":false},{"name":"purchasedFrom","in":"query","schema":{"anyOf":[{"type":"string","description":"Epoch milliseconds as a digit string, or a readable datetime.","format":"timestamp"},{"type":"integer","minimum":0}]},"required":false},{"name":"purchasedTo","in":"query","schema":{"anyOf":[{"type":"string","description":"Epoch milliseconds as a digit string, or a readable datetime.","format":"timestamp"},{"type":"integer","minimum":0}]},"required":false},{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000},"purchasedFrom":{"anyOf":[{"type":"string","description":"Epoch milliseconds as a digit string, or a readable datetime.","format":"timestamp"},{"type":"integer","minimum":0}]},"purchasedTo":{"anyOf":[{"type":"string","description":"Epoch milliseconds as a digit string, or a readable datetime.","format":"timestamp"},{"type":"integer","minimum":0}]},"investableNow":{"type":"string","enum":["true","false"],"description":"A sale is investable now when chain time is at or after its start and before its end, and one of these holds: its status at chain time is PUBLIC_SALE; it is PRESALE and its presale window has already closed at chain time; or it is PRESALE and a caller wallet is on its presale whitelist."}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true}],"responses":{"200":{"description":"One page of the authenticated caller's sale positions. An empty position marks a sale the caller can discover but has not bought.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/TokenSaleInvestmentItem"}},"meta":{"$ref":"#/components/schemas/SettlementCollectionMeta"},"links":{"$ref":"#/components/schemas/SettlementCollectionLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","token":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","symbol":"ETH","decimals":18},"status":"PUBLIC_SALE","saleStartTime":"2026-04-01T08:00:00.000Z","saleEndTime":"2026-12-31T17:00:00.000Z","presaleEndTime":"2026-04-15T17:00:00.000Z","createdAt":"2026-03-15T09:12:41.000Z","totalSold":"125000","totalSoldExact":"125000000000000000000000","hardCap":"500000","hardCapExact":"500000000000000000000000","tokenAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","position":{"buyerAddresses":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"],"purchased":"10000","purchasedExact":"10000000000000000000000","withdrawn":"2500","withdrawnExact":"2500000000000000000000","claimableNow":"2500","claimableNowExact":"2500000000000000000000","nextUnlockAt":"2026-06-30T08:00:00.000Z","pendingReason":null,"contributedByCurrency":[{"currency":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","amount":"10000","amountExact":"10000000000"}],"refundableByCurrency":[{"currency":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","amount":"10000","amountExact":"10000000000"}]},"participated":true,"discoverable":true,"coverPhotoUrl":null,"logoUrl":null}],"meta":{"total":1,"facets":{}},"links":{"self":"/v2/addons/token-sales/investments?sort=saleStartTime&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/addons/token-sales/investments?sort=saleStartTime&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/addons/token-sales/investments?sort=saleStartTime&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","XVP_HASHLOCK_INVALID","XVP_HASHLOCK_REVEAL_NOT_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","settlement.http.PRECONDITION_FAILED","settlement.http.SECRET_FAILED","settlement.sale.DOCUMENT_REJECTED"]}},"required":["code"]}],"examples":[{"code":"settlement.http.PRECONDITION_FAILED","status":422,"message":"A settlement precondition is not met","data":{"id":"DALP-12324","why":"The settlement cannot run the requested operation until a precondition it names is satisfied.","fix":"Satisfy the precondition, then send the request again.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","XVP_CREATE_COULD_NOT_RESOLVE_CREATED_SETTLEMENT_INDEXER_RETRIES","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","settlement.http.DEPENDENCY_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of the authenticated caller's token-sale positions across sales in the active system. Use this to show what the caller bought, can claim, or can refund. Repeating the request is safe.","summary":"List the caller's sale positions","x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/token-sales/operations":{"get":{"tags":["Primary offerings"],"operationId":"tokenSaleV2.v2/addons/tokenSale/operationsList","parameters":[{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. page[offset] 0 to 10000, page[limit] 1 to 200."},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","enum":["saleStartTime","-saleStartTime","saleEndTime","-saleEndTime","totalSold","-totalSold","createdAt","-createdAt"],"description":"JSON:API sort param. Prefix with - for descending. Sortable fields: saleStartTime, saleEndTime, totalSold, createdAt"},"required":false},{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000},"createdAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"saleEndTime":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"saleStartTime":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"systemAddon":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"token":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"totalSold":{"anyOf":[{"type":"string","pattern":"^-?\\d+$","maxLength":80},{"type":"object","properties":{"eq":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"ne":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"gte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"between":{"type":"string","maxLength":161},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}],"allOf":[{"description":"Amount sold in base units, the value of `totalSoldExact`, not the decimal `totalSold` amount. For 5 tokens with 18 decimals, send `5000000000000000000`."}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true}],"responses":{"200":{"description":"One page of sales the authenticated manager may operate. `alert` is computed at read time from the chain clock and is never stored.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/TokenSaleOperationsItem"}},"meta":{"$ref":"#/components/schemas/SettlementCollectionMeta"},"links":{"$ref":"#/components/schemas/SettlementCollectionLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"0x5FC8d32690cc91D4c39d9d3abcBD16989F875707","token":{"id":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","symbol":"NCB","decimals":18},"status":"PUBLIC_SALE","saleStartTime":"2026-04-01T08:00:00.000Z","saleEndTime":"2026-12-31T17:00:00.000Z","presaleEndTime":"2026-04-15T17:00:00.000Z","createdAt":"2026-03-15T09:12:41.000Z","totalSold":"125000","totalSoldExact":"125000000000000000000000","hardCap":"500000","hardCapExact":"500000000000000000000000","alert":"near-cap","investorCount":18}],"meta":{"total":1},"links":{"self":"/v2/addons/token-sales/operations?sort=saleStartTime&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/addons/token-sales/operations?sort=saleStartTime&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/addons/token-sales/operations?sort=saleStartTime&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","XVP_HASHLOCK_INVALID","XVP_HASHLOCK_REVEAL_NOT_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_SALE_ADDON_NOT_IN_OWNER_SCOPE_AUTHENTICATED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","settlement.http.PRECONDITION_FAILED","settlement.http.SECRET_FAILED","settlement.sale.DOCUMENT_REJECTED"]}},"required":["code"]}],"examples":[{"code":"settlement.http.PRECONDITION_FAILED","status":422,"message":"A settlement precondition is not met","data":{"id":"DALP-12324","why":"The settlement cannot run the requested operation until a precondition it names is satisfied.","fix":"Satisfy the precondition, then send the request again.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","XVP_CREATE_COULD_NOT_RESOLVE_CREATED_SETTLEMENT_INDEXER_RETRIES","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","settlement.http.DEPENDENCY_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of token sales the authenticated manager may operate. A caller without sale-manager permission is rejected. Repeating the request is safe.","summary":"List manager sale operations","x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/token-sales/current-time":{"get":{"tags":["Primary offerings"],"operationId":"tokenSaleV2.v2/addons/tokenSale/currentTime","parameters":[],"responses":{"200":{"description":"Chain-head time the platform uses to compare against sale windows. Do not compare those windows to the wall clock.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenSaleCurrentTimeOutput"},"links":{"$ref":"#/components/schemas/SettlementSingleLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"currentTimestamp":"2026-04-02T09:14:07.000Z"},"links":{"self":"/v2/addons/token-sales/current-time"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","XVP_HASHLOCK_INVALID","XVP_HASHLOCK_REVEAL_NOT_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","settlement.http.PRECONDITION_FAILED","settlement.http.SECRET_FAILED","settlement.sale.DOCUMENT_REJECTED"]}},"required":["code"]}],"examples":[{"code":"settlement.http.PRECONDITION_FAILED","status":422,"message":"A settlement precondition is not met","data":{"id":"DALP-12324","why":"The settlement cannot run the requested operation until a precondition it names is satisfied.","fix":"Satisfy the precondition, then send the request again.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","XVP_CREATE_COULD_NOT_RESOLVE_CREATED_SETTLEMENT_INDEXER_RETRIES","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","settlement.http.DEPENDENCY_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the active chain-head timestamp the platform uses to schedule sale windows. Compare this to `saleStartTime` and `saleEndTime` rather than the wall clock. Repeating the request is safe.","summary":"Read sale chain time","x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/token-sales/{saleAddress}":{"get":{"tags":["Primary offerings"],"operationId":"tokenSaleV2.v2/addons/tokenSale/read","parameters":[{"name":"saleAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"name":"buyerAddress","in":"query","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":false},{"name":"live","in":"query","schema":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["true","false"]}]},"required":false},{"name":"amount","in":"query","schema":{"type":"string","pattern":"^[0-9]+$","description":"Non-negative uint256 asset amount decoded to a bigint"},"required":false}],"responses":{"200":{"description":"The requested sale plus the caller's position, eligibility, and access-control snapshot. Indexed unless `live=true` was sent.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenSaleReadResponse"},"links":{"$ref":"#/components/schemas/SettlementSingleLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","token":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","symbol":"ETH","decimals":18,"isExternal":false},"status":"PUBLIC_SALE","saleStartTime":"2026-04-01T08:00:00.000Z","saleEndTime":"2026-12-31T17:00:00.000Z","presaleEndTime":"2026-04-15T17:00:00.000Z","createdAt":"2026-03-15T09:12:41.000Z","totalSold":"125000","totalSoldExact":"125000000000000000000000","hardCap":"500000","hardCapExact":"500000000000000000000000","minPurchase":"1000","minPurchaseExact":"1000000000000000000000","maxPurchase":"50000","maxPurchaseExact":"50000000000000000000000","purchaseIncrement":0,"purchaseIncrementExact":"1","softCap":"250000","softCapExact":"250000000000000000000000","softCapReached":false,"presalePriceRatio":"900000000000000000","presaleMaxPerAddress":"10000000000000000000000","vestingEnabled":true,"vestingStartTime":"2027-01-01T08:00:00.000Z","vestingDuration":"31536000","vestingCliff":"7884000","termsHash":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae","termsDocuments":[{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","fileName":"northwind-series-a-terms.pdf","title":"Extend the Series A coupon window","fileHash":"0x4b227777d4dd1fc61c6f884f48641d02b4d121d3fd328cb08b5531fcacdabf8a"}],"termsDocumentsHash":null,"failedAt":null,"paymentCurrencies":[{"id":"pay:usdc","currency":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","contractName":"USD Coin"},"priceRatio":"1000000000000000000","accepted":true}],"purchases":[{"id":"purchase:treasury","buyer":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"},"paymentCurrency":{"id":"pay:usdc","currency":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","contractName":"USD Coin"},"priceRatio":"1000000000000000000","accepted":true},"paymentAmount":"10000","paymentAmountExact":"10000000000","tokenAmount":"10000","tokenAmountExact":"10000000000000000000000","purchasedAt":"2026-04-02T09:14:07.000Z"}],"whitelistEntries":[{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","investor":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"},"isWhitelisted":false,"updatedAt":"2026-08-01T09:00:00.000Z"}],"systemAddon":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"},"hasAcknowledgedTerms":true,"position":{"buyerAddresses":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"],"purchased":"10000","purchasedExact":"10000000000000000000000","withdrawn":"2500","withdrawnExact":"2500000000000000000000","claimableNow":"2500","claimableNowExact":"2500000000000000000000","nextUnlockAt":"2026-06-30T08:00:00.000Z","pendingReason":null,"contributedByCurrency":[{"currency":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","amount":"10000","amountExact":"10000000000"}],"refundableByCurrency":[{"currency":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","amount":"10000","amountExact":"10000000000"}]},"eligibility":null,"accessControl":null,"coverPhotoUrl":null,"logoUrl":null},"links":{"self":"/v2/addons/token-sales/0x5FC8d32690cc91D4c39d9d3abcBD16989F875707"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","XVP_HASHLOCK_INVALID","XVP_HASHLOCK_REVEAL_NOT_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","settlement.http.PRECONDITION_FAILED","settlement.http.SECRET_FAILED","settlement.sale.DOCUMENT_REJECTED"]}},"required":["code"]}],"examples":[{"code":"settlement.http.PRECONDITION_FAILED","status":422,"message":"A settlement precondition is not met","data":{"id":"DALP-12324","why":"The settlement cannot run the requested operation until a precondition it names is satisfied.","fix":"Satisfy the precondition, then send the request again.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","XVP_CREATE_COULD_NOT_RESOLVE_CREATED_SETTLEMENT_INDEXER_RETRIES","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","settlement.http.DEPENDENCY_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one sale, the caller's position, eligibility, and access-control snapshot. Send `live=true` and `amount` only for a pre-submit eligibility recheck; that path hits the chain and is slower. Repeating an indexer read is safe.","summary":"Read a token sale","x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/token-sales/{saleAddress}/cap-table":{"get":{"tags":["Primary offerings"],"operationId":"tokenSaleV2.v2/addons/tokenSale/capTable","parameters":[{"name":"saleAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true}],"responses":{"200":{"description":"The investor cap table for the named sale. Only a sale manager may read this.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenSaleCapTableResponse"},"links":{"$ref":"#/components/schemas/SettlementSingleLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"saleAddress":"0x5FC8d32690cc91D4c39d9d3abcBD16989F875707","tokenAddress":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","investorCount":1,"totalTokenAllocated":"10000","totalTokenAllocatedExact":"10000000000000000000000","rows":[{"buyer":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"},"identityAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","name":"Northwind Coffee Treasury","kycStatus":"registered","country":"US","paymentCurrency":{"id":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","symbol":"USDC"},"purchaseCount":1,"totalPaymentAmount":"10000","totalPaymentAmountExact":"10000000000","totalTokenAmount":"10000","totalTokenAmountExact":"10000000000000000000000"}]},"links":{"self":"/v2/addons/token-sales/0x5FC8d32690cc91D4c39d9d3abcBD16989F875707/cap-table"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","XVP_HASHLOCK_INVALID","XVP_HASHLOCK_REVEAL_NOT_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","settlement.http.PRECONDITION_FAILED","settlement.http.SECRET_FAILED","settlement.sale.DOCUMENT_REJECTED"]}},"required":["code"]}],"examples":[{"code":"settlement.http.PRECONDITION_FAILED","status":422,"message":"A settlement precondition is not met","data":{"id":"DALP-12324","why":"The settlement cannot run the requested operation until a precondition it names is satisfied.","fix":"Satisfy the precondition, then send the request again.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","XVP_CREATE_COULD_NOT_RESOLVE_CREATED_SETTLEMENT_INDEXER_RETRIES","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","settlement.http.DEPENDENCY_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the investor cap table for one sale. Only a sale manager may call this route. Repeating the request is safe.","summary":"Read a sale cap table","x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/token-sales/{saleAddress}/funding":{"get":{"tags":["Primary offerings"],"operationId":"tokenSaleV2.v2/addons/tokenSale/funding","parameters":[{"name":"saleAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true}],"responses":{"200":{"description":"What the sale can still accept, read live from the chain. Size a funding request against `remainingExact`, never against an indexed balance.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenSaleFundingOutput"},"links":{"$ref":"#/components/schemas/SettlementSingleLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"tokenAddress":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30","hardCapExact":"1000000000000000000000000","totalSoldExact":"300000000000000000000000","balanceExact":"400000000000000000000000","queuedExact":"0","remainingExact":"300000000000000000000000"},"links":{"self":"/v2/addons/token-sales/0x5FC8d32690cc91D4c39d9d3abcBD16989F875707/funding"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","XVP_HASHLOCK_INVALID","XVP_HASHLOCK_REVEAL_NOT_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","settlement.http.PRECONDITION_FAILED","settlement.http.SECRET_FAILED","settlement.sale.DOCUMENT_REJECTED"]}},"required":["code"]}],"examples":[{"code":"settlement.http.PRECONDITION_FAILED","status":422,"message":"A settlement precondition is not met","data":{"id":"DALP-12324","why":"The settlement cannot run the requested operation until a precondition it names is satisfied.","fix":"Satisfy the precondition, then send the request again.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","XVP_CREATE_COULD_NOT_RESOLVE_CREATED_SETTLEMENT_INDEXER_RETRIES","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","settlement.http.DEPENDENCY_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the token amount the sale can still accept, and the hard cap, sold total, live balance, and in-flight mint total it comes from. Every figure is read from the chain, so a lagging indexer cannot inflate it. Repeating the request is safe. This read takes no lock, so the headroom can drop before you send the funding request. Handle the refusal that request returns, which carries the amount left at that moment.","summary":"Read sale funding headroom","x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/token-sales/{saleAddress}/fund":{"post":{"tags":["Primary offerings"],"operationId":"tokenSaleV2.v2/addons/tokenSale/fund","parameters":[{"name":"saleAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Accepted sale write. A 202 body carries `transactionId` and `statusUrl`. Poll that URL until the write is indexed.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenSaleFundOutput"},"meta":{"$ref":"#/components/schemas/SettlementBlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SettlementSingleLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"mintedExact":"300000000000000000000000","remainingExact":"0"},"meta":{"txHashes":["0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"]},"links":{"self":"/v2/addons/token-sales/0x5FC8d32690cc91D4c39d9d3abcBD16989F875707/fund"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SettlementAsyncAcceptedResult_7"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","XVP_HASHLOCK_INVALID","XVP_HASHLOCK_REVEAL_NOT_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_MINT_MATURITY_REDEMPTION_MATURED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","settlement.http.PRECONDITION_FAILED","settlement.http.SECRET_FAILED","settlement.sale.DOCUMENT_REJECTED"]}},"required":["code"]}],"examples":[{"code":"settlement.http.PRECONDITION_FAILED","status":422,"message":"A settlement precondition is not met","data":{"id":"DALP-12324","why":"The settlement cannot run the requested operation until a precondition it names is satisfied.","fix":"Satisfy the precondition, then send the request again.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","XVP_CREATE_COULD_NOT_RESOLVE_CREATED_SETTLEMENT_INDEXER_RETRIES","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","settlement.http.DEPENDENCY_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Mints tokens to the sale so it has stock to sell. Omit `amount` to send exactly what the sale can still accept, which makes a repeated call top up only the shortfall. An amount larger than the sale can accept is refused with the real remaining figure rather than trimmed, so the operator sees the number they got wrong.","summary":"Fund a sale","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenSaleFundInput"}}},"required":false},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/token-sales/{saleAddress}/transitions":{"post":{"tags":["Primary offerings"],"operationId":"tokenSaleV2.v2/addons/tokenSale/transition","parameters":[{"name":"saleAddress","in":"path","schema":{"anyOf":[{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},{"type":"string","minLength":1,"description":"Contract id of a Canton contract, as returned by the addon or token read that listed it. The template identifiers behind it are pinned by the platform.","allOf":[{"pattern":"^(?!0[xX])","description":"Contract id of a Canton sale. A segment starting with 0x is an EVM address and must decode as one."}]}]},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Accepted sale write. A 202 body carries `transactionId` and `statusUrl`. Poll that URL until the write is indexed.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenSaleTransitionSettledData"},"meta":{"$ref":"#/components/schemas/SettlementBlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SettlementSingleLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"transactionHash":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"},"meta":{"txHashes":["0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"]},"links":{"self":"/v2/addons/token-sales/0x00000000000000000000000000000000000000d1/transitions"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SettlementAsyncAcceptedResult_9"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","XVP_HASHLOCK_INVALID","XVP_HASHLOCK_REVEAL_NOT_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","settlement.http.PRECONDITION_FAILED","settlement.http.SECRET_FAILED","settlement.sale.DOCUMENT_REJECTED"]}},"required":["code"]}],"examples":[{"code":"settlement.http.PRECONDITION_FAILED","status":422,"message":"A settlement precondition is not met","data":{"id":"DALP-12324","why":"The settlement cannot run the requested operation until a precondition it names is satisfied.","fix":"Satisfy the precondition, then send the request again.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","XVP_CREATE_COULD_NOT_RESOLVE_CREATED_SETTLEMENT_INDEXER_RETRIES","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","settlement.http.DEPENDENCY_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Queues one lifecycle transition, named by `to`. `active` activates a setup sale into its presale or public window, or resumes a paused sale; `public-sale` opens a presale to the public; `paused` blocks new purchases; `ended` closes the sale window early; `finalized` records soft-cap success or failure once the window has ended. The contract decides whether the sale can make the move, and refuses one it cannot with the same contract error the sale would raise on-chain. Poll the 202 `statusUrl` before you treat the sale as moved. The body's shape selects the chain family: an EVM sale is named by its contract address in the path, and a Canton sale by the contract id a platform read returned, with `instrumentAdmin` in the body, which retires the sale capability and is the only transition the ledger knows. Activating a setup sale whose uploaded terms documents have no committed terms hash is refused with 422; set the terms first.","summary":"Move a token sale to a lifecycle state","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenSaleTransitionInput"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/token-sales/{saleAddress}/purchases":{"post":{"tags":["Primary offerings"],"operationId":"tokenSaleV2.v2/addons/tokenSale/buy","parameters":[{"name":"saleAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Accepted sale write. A 202 body carries `transactionId` and `statusUrl`. Poll that URL until the write is indexed.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenSaleBuySettledData"},"meta":{"$ref":"#/components/schemas/SettlementBlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SettlementSingleLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"transactionHash":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"},"meta":{"txHashes":["0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"]},"links":{"self":"/v2/addons/token-sales/0x00000000000000000000000000000000000000d1/purchases"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SettlementAsyncAcceptedResult_10"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","TOKEN_SALE_PURCHASE_OFF_GRID","WALLET_VERIFICATION_REQUIRED","XVP_HASHLOCK_INVALID","XVP_HASHLOCK_REVEAL_NOT_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","settlement.http.PRECONDITION_FAILED","settlement.http.SECRET_FAILED","settlement.sale.DOCUMENT_REJECTED"]}},"required":["code"]}],"examples":[{"code":"settlement.http.PRECONDITION_FAILED","status":422,"message":"A settlement precondition is not met","data":{"id":"DALP-12324","why":"The settlement cannot run the requested operation until a precondition it names is satisfied.","fix":"Satisfy the precondition, then send the request again.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","XVP_CREATE_COULD_NOT_RESOLVE_CREATED_SETTLEMENT_INDEXER_RETRIES","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","settlement.http.DEPENDENCY_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Queues a purchase in the named payment currency. `minTokenAmount` is the slippage floor. The caller must have acknowledged terms when the sale requires them. A sale whose terms documents are not yet committed on the sale contract refuses purchases with 422. Poll the 202 `statusUrl` before you treat the purchase as filled. The body's shape selects the chain family: an EVM sale is named by its contract address, and a Canton sale by the contract id a platform read returned, which submits the sale's purchase choice against the investor's and the treasury's allocations in one delivery-versus-payment submission.","summary":"Buy tokens in a sale","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenSaleBuyInput"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/token-sales/{saleAddress}/fund-withdrawals":{"post":{"tags":["Primary offerings"],"operationId":"tokenSaleV2.v2/addons/tokenSale/withdrawFunds","parameters":[{"name":"saleAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Accepted sale write. A 202 body carries `transactionId` and `statusUrl`. Poll that URL until the write is indexed.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenSaleActivateOutput"},"meta":{"$ref":"#/components/schemas/SettlementBlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SettlementSingleLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"transactionHash":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"},"meta":{"txHashes":["0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"]},"links":{"self":"/v2/addons/token-sales/0x00000000000000000000000000000000000000d1/fund-withdrawals"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SettlementAsyncAcceptedResult_11"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","TOKEN_SALE_CANNOT_WITHDRAW_SALE_TOKEN_CURRENCY","WALLET_VERIFICATION_REQUIRED","XVP_HASHLOCK_INVALID","XVP_HASHLOCK_REVEAL_NOT_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","settlement.http.PRECONDITION_FAILED","settlement.http.SECRET_FAILED","settlement.sale.DOCUMENT_REJECTED"]}},"required":["code"]}],"examples":[{"code":"settlement.http.PRECONDITION_FAILED","status":422,"message":"A settlement precondition is not met","data":{"id":"DALP-12324","why":"The settlement cannot run the requested operation until a precondition it names is satisfied.","fix":"Satisfy the precondition, then send the request again.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","XVP_CREATE_COULD_NOT_RESOLVE_CREATED_SETTLEMENT_INDEXER_RETRIES","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","settlement.http.DEPENDENCY_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Queues withdrawal of collected payment currencies after a successful sale. Only a sale manager may call this. Poll the 202 `statusUrl` before you treat the funds as moved.","summary":"Withdraw sale proceeds","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenSaleWithdrawFundsInput"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/token-sales/{saleAddress}/token-withdrawals":{"post":{"tags":["Primary offerings"],"operationId":"tokenSaleV2.v2/addons/tokenSale/withdrawTokens","parameters":[{"name":"saleAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Accepted sale write. A 202 body carries `transactionId` and `statusUrl`. Poll that URL until the write is indexed.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenSaleActivateOutput"},"meta":{"$ref":"#/components/schemas/SettlementBlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SettlementSingleLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"transactionHash":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"},"meta":{"txHashes":["0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"]},"links":{"self":"/v2/addons/token-sales/0x00000000000000000000000000000000000000d1/token-withdrawals"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SettlementAsyncAcceptedResult_12"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","XVP_HASHLOCK_INVALID","XVP_HASHLOCK_REVEAL_NOT_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","settlement.http.PRECONDITION_FAILED","settlement.http.SECRET_FAILED","settlement.sale.DOCUMENT_REJECTED"]}},"required":["code"]}],"examples":[{"code":"settlement.http.PRECONDITION_FAILED","status":422,"message":"A settlement precondition is not met","data":{"id":"DALP-12324","why":"The settlement cannot run the requested operation until a precondition it names is satisfied.","fix":"Satisfy the precondition, then send the request again.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","XVP_CREATE_COULD_NOT_RESOLVE_CREATED_SETTLEMENT_INDEXER_RETRIES","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","settlement.http.DEPENDENCY_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Queues a claim of vested purchased tokens for the authenticated buyer. Poll the 202 `statusUrl` before you treat the tokens as received.","summary":"Withdraw purchased tokens","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenSaleMutationInput"}}},"required":false},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/token-sales/{saleAddress}/unsold-token-withdrawals":{"post":{"tags":["Primary offerings"],"operationId":"tokenSaleV2.v2/addons/tokenSale/withdrawUnsoldTokens","parameters":[{"name":"saleAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Accepted sale write. A 202 body carries `transactionId` and `statusUrl`. Poll that URL until the write is indexed.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenSaleActivateOutput"},"meta":{"$ref":"#/components/schemas/SettlementBlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SettlementSingleLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"transactionHash":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"},"meta":{"txHashes":["0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"]},"links":{"self":"/v2/addons/token-sales/0x00000000000000000000000000000000000000d1/unsold-token-withdrawals"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SettlementAsyncAcceptedResult_13"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","XVP_HASHLOCK_INVALID","XVP_HASHLOCK_REVEAL_NOT_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","settlement.http.PRECONDITION_FAILED","settlement.http.SECRET_FAILED","settlement.sale.DOCUMENT_REJECTED"]}},"required":["code"]}],"examples":[{"code":"settlement.http.PRECONDITION_FAILED","status":422,"message":"A settlement precondition is not met","data":{"id":"DALP-12324","why":"The settlement cannot run the requested operation until a precondition it names is satisfied.","fix":"Satisfy the precondition, then send the request again.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","XVP_CREATE_COULD_NOT_RESOLVE_CREATED_SETTLEMENT_INDEXER_RETRIES","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","settlement.http.DEPENDENCY_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Queues return of unsold inventory to the manager after the sale has ended. Poll the 202 `statusUrl` before you treat the tokens as returned.","summary":"Withdraw unsold tokens","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenSaleWithdrawUnsoldTokensInput"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/token-sales/{saleAddress}/purchase-increment":{"post":{"tags":["Primary offerings"],"operationId":"tokenSaleV2.v2/addons/tokenSale/setPurchaseIncrement","parameters":[{"name":"saleAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenSaleActivateOutput"},"meta":{"$ref":"#/components/schemas/SettlementBlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SettlementSingleLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"transactionHash":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"},"meta":{"txHashes":[],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants"}}}}}},"headers":{}},"202":{"description":"Accepted handle for a queued settlement write. Poll `statusUrl` until the write settles.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SettlementAsyncAcceptedResult_14"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","XVP_HASHLOCK_INVALID","XVP_HASHLOCK_REVEAL_NOT_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","settlement.http.PRECONDITION_FAILED","settlement.http.SECRET_FAILED","settlement.sale.DOCUMENT_REJECTED"]}},"required":["code"]}],"examples":[{"code":"settlement.http.PRECONDITION_FAILED","status":422,"message":"A settlement precondition is not met","data":{"id":"DALP-12324","why":"The settlement cannot run the requested operation until a precondition it names is satisfied.","fix":"Satisfy the precondition, then send the request again.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","XVP_CREATE_COULD_NOT_RESOLVE_CREATED_SETTLEMENT_INDEXER_RETRIES","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","settlement.http.DEPENDENCY_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenSalePurchaseIncrementInput"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/token-sales/{saleAddress}/term-acknowledgements":{"post":{"tags":["Primary offerings"],"operationId":"tokenSaleV2.v2/addons/tokenSale/acknowledgeTerms","parameters":[{"name":"saleAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Accepted sale write. A 202 body carries `transactionId` and `statusUrl`. Poll that URL until the write is indexed.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenSaleActivateOutput"},"meta":{"$ref":"#/components/schemas/SettlementBlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SettlementSingleLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"transactionHash":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"},"meta":{"txHashes":["0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"]},"links":{"self":"/v2/addons/token-sales/0x00000000000000000000000000000000000000d1/term-acknowledgements"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SettlementAsyncAcceptedResult_15"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","XVP_HASHLOCK_INVALID","XVP_HASHLOCK_REVEAL_NOT_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","settlement.http.PRECONDITION_FAILED","settlement.http.SECRET_FAILED","settlement.sale.DOCUMENT_REJECTED"]}},"required":["code"]}],"examples":[{"code":"settlement.http.PRECONDITION_FAILED","status":422,"message":"A settlement precondition is not met","data":{"id":"DALP-12324","why":"The settlement cannot run the requested operation until a precondition it names is satisfied.","fix":"Satisfy the precondition, then send the request again.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","XVP_CREATE_COULD_NOT_RESOLVE_CREATED_SETTLEMENT_INDEXER_RETRIES","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","settlement.http.DEPENDENCY_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Queues the caller's acknowledgement of the sale terms hash. Refused with 422 when the sale's current terms documents differ from the terms hash committed on the sale contract; answered with a retryable 503 when the terms documents or the committed hash cannot be read. A purchase that requires terms fails until this settles. Poll the 202 `statusUrl` before you submit a buy.","summary":"Acknowledge sale terms","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenSaleMutationInput"}}},"required":false},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/token-sales/{saleAddress}/terms":{"put":{"tags":["Primary offerings"],"operationId":"tokenSaleV2.v2/addons/tokenSale/setTerms","parameters":[{"name":"saleAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Accepted sale write. A 202 body carries `transactionId` and `statusUrl`. Poll that URL until the write is indexed.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenSaleActivateOutput"},"meta":{"$ref":"#/components/schemas/SettlementBlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SettlementSingleLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"transactionHash":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"},"meta":{"txHashes":["0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"]},"links":{"self":"/v2/addons/token-sales/0x00000000000000000000000000000000000000d1/terms"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original PUT unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SettlementAsyncAcceptedResult_16"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","XVP_HASHLOCK_INVALID","XVP_HASHLOCK_REVEAL_NOT_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","settlement.http.PRECONDITION_FAILED","settlement.http.SECRET_FAILED","settlement.sale.DOCUMENT_REJECTED"]}},"required":["code"]}],"examples":[{"code":"settlement.http.PRECONDITION_FAILED","status":422,"message":"A settlement precondition is not met","data":{"id":"DALP-12324","why":"The settlement cannot run the requested operation until a precondition it names is satisfied.","fix":"Satisfy the precondition, then send the request again.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","XVP_CREATE_COULD_NOT_RESOLVE_CREATED_SETTLEMENT_INDEXER_RETRIES","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","settlement.http.DEPENDENCY_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Queues the one-time commitment of the sale's terms hash, derived from the current public `terms` documents. A sale admin calls it while the sale is in setup and no terms are set yet; the hash cannot change afterwards. Send `expectedTermsHash`, the `termsDocumentsHash` you displayed for review, and the request is refused with 422 and records nothing if the terms documents changed since. Poll the 202 `statusUrl` before you activate the sale.","summary":"Set the sale terms","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenSaleSetTermsInput"}}},"required":false},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/token-sales/{saleAddress}/refund-claims":{"post":{"tags":["Primary offerings"],"operationId":"tokenSaleV2.v2/addons/tokenSale/claimRefund","parameters":[{"name":"saleAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Accepted sale write. A 202 body carries `transactionId` and `statusUrl`. Poll that URL until the write is indexed.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenSaleActivateOutput"},"meta":{"$ref":"#/components/schemas/SettlementBlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SettlementSingleLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"transactionHash":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"},"meta":{"txHashes":["0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"]},"links":{"self":"/v2/addons/token-sales/0x00000000000000000000000000000000000000d1/refund-claims"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SettlementAsyncAcceptedResult_17"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","XVP_HASHLOCK_INVALID","XVP_HASHLOCK_REVEAL_NOT_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","settlement.http.PRECONDITION_FAILED","settlement.http.SECRET_FAILED","settlement.sale.DOCUMENT_REJECTED"]}},"required":["code"]}],"examples":[{"code":"settlement.http.PRECONDITION_FAILED","status":422,"message":"A settlement precondition is not met","data":{"id":"DALP-12324","why":"The settlement cannot run the requested operation until a precondition it names is satisfied.","fix":"Satisfy the precondition, then send the request again.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","XVP_CREATE_COULD_NOT_RESOLVE_CREATED_SETTLEMENT_INDEXER_RETRIES","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","settlement.http.DEPENDENCY_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Queues a refund of the caller's contribution after a sale fails its soft cap. Poll the 202 `statusUrl` before you treat the refund as paid.","summary":"Claim a sale refund","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenSaleClaimRefundInput"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/token-sales/{saleAddress}/presale-whitelist-entries":{"post":{"tags":["Primary offerings"],"operationId":"tokenSaleV2.v2/addons/tokenSale/addToPresaleWhitelist","parameters":[{"name":"saleAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Accepted sale write. A 202 body carries `transactionId` and `statusUrl`. Poll that URL until the write is indexed.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenSaleActivateOutput"},"meta":{"$ref":"#/components/schemas/SettlementBlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SettlementSingleLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"transactionHash":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"},"meta":{"txHashes":["0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"]},"links":{"self":"/v2/addons/token-sales/0x00000000000000000000000000000000000000d1/presale-whitelist-entries"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SettlementAsyncAcceptedResult_18"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","XVP_HASHLOCK_INVALID","XVP_HASHLOCK_REVEAL_NOT_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","settlement.http.PRECONDITION_FAILED","settlement.http.SECRET_FAILED","settlement.sale.DOCUMENT_REJECTED"]}},"required":["code"]}],"examples":[{"code":"settlement.http.PRECONDITION_FAILED","status":422,"message":"A settlement precondition is not met","data":{"id":"DALP-12324","why":"The settlement cannot run the requested operation until a precondition it names is satisfied.","fix":"Satisfy the precondition, then send the request again.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","XVP_CREATE_COULD_NOT_RESOLVE_CREATED_SETTLEMENT_INDEXER_RETRIES","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","settlement.http.DEPENDENCY_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Queues addition of investor addresses to the presale whitelist. Poll the 202 `statusUrl` before you treat the addresses as admitted.","summary":"Add presale whitelist entries","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenSaleAddToPresaleWhitelistInput"}}},"required":true},"x-dalp-auth":"session-or-api-key"},"delete":{"tags":["Primary offerings"],"operationId":"tokenSaleV2.v2/addons/tokenSale/removeFromPresaleWhitelist","parameters":[{"name":"saleAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Accepted sale write. A 202 body carries `transactionId` and `statusUrl`. Poll that URL until the write is indexed.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenSaleActivateOutput"},"meta":{"$ref":"#/components/schemas/SettlementBlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SettlementSingleLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"transactionHash":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"},"meta":{"txHashes":["0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"]},"links":{"self":"/v2/addons/token-sales/0x00000000000000000000000000000000000000d1/presale-whitelist-entries"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SettlementAsyncAcceptedResult_19"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","XVP_HASHLOCK_INVALID","XVP_HASHLOCK_REVEAL_NOT_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","settlement.http.PRECONDITION_FAILED","settlement.http.SECRET_FAILED","settlement.sale.DOCUMENT_REJECTED"]}},"required":["code"]}],"examples":[{"code":"settlement.http.PRECONDITION_FAILED","status":422,"message":"A settlement precondition is not met","data":{"id":"DALP-12324","why":"The settlement cannot run the requested operation until a precondition it names is satisfied.","fix":"Satisfy the precondition, then send the request again.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","XVP_CREATE_COULD_NOT_RESOLVE_CREATED_SETTLEMENT_INDEXER_RETRIES","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","settlement.http.DEPENDENCY_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Queues removal of investor addresses from the presale whitelist. Poll the 202 `statusUrl` before you treat the addresses as removed.","summary":"Remove presale whitelist entries","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenSaleAddToPresaleWhitelistInput"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/token-sales/{saleAddress}/role-sets":{"post":{"tags":["Primary offerings"],"operationId":"tokenSaleV2.v2/addons/tokenSale/setRoles","parameters":[{"name":"saleAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Accepted sale write. A 202 body carries `transactionId` and `statusUrl`. Poll that URL until the write is indexed.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenSaleRoleSetOutput"},"meta":{"$ref":"#/components/schemas/SettlementBlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SettlementSingleLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"accounts":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"],"grant":["saleAdmin"],"revoke":["fundsManager"]},"meta":{"txHashes":["0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"]},"links":{"self":"/v2/addons/token-sales/0x5FC8d32690cc91D4c39d9d3abcBD16989F875707/role-sets"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SettlementAsyncAcceptedResult_20"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","XVP_HASHLOCK_INVALID","XVP_HASHLOCK_REVEAL_NOT_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","settlement.http.PRECONDITION_FAILED","settlement.http.SECRET_FAILED","settlement.sale.DOCUMENT_REJECTED"]}},"required":["code"]}],"examples":[{"code":"settlement.http.PRECONDITION_FAILED","status":422,"message":"A settlement precondition is not met","data":{"id":"DALP-12324","why":"The settlement cannot run the requested operation until a precondition it names is satisfied.","fix":"Satisfy the precondition, then send the request again.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","XVP_CREATE_COULD_NOT_RESOLVE_CREATED_SETTLEMENT_INDEXER_RETRIES","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","settlement.http.DEPENDENCY_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Grants and revokes sale roles for one participant or one wallet as one change on the sale's token. Name the target by participantId, which covers every actable wallet of the participant, or by address. The caller needs the token's administrator role; a caller without it is refused with 403 before any transaction. Roles already in the requested state are skipped, and a request that changes nothing answers 200 with no transaction. Poll the 202 `statusUrl` before you treat the roles as changed.","summary":"Set sale roles","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenSaleRoleSetBody"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/token-sales/{saleAddress}/document-uploads":{"post":{"tags":["Primary offerings"],"operationId":"tokenSaleV2.v2/addons/tokenSale/documentsGetUploadUrl","parameters":[{"name":"saleAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Time-limited PUT URL for a sale document. PUT the bytes, then confirm the upload.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/SaleDocumentPresignedUpload"},"links":{"$ref":"#/components/schemas/SettlementSingleLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"uploadUrl":"https://objects.northwind.example/upload/sale-terms.pdf","objectKey":"token-sales/0x5FC8d32690cc91D4c39d9d3abcBD16989F875707/brochure.pdf","expiresAt":"2026-04-02T10:14:07.000Z","method":"PUT","headers":{"content-type":"application/pdf"}},"links":{"self":"/v2/addons/token-sales/0x5FC8d32690cc91D4c39d9d3abcBD16989F875707/document-uploads"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","XVP_HASHLOCK_INVALID","XVP_HASHLOCK_REVEAL_NOT_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","settlement.http.PRECONDITION_FAILED","settlement.http.SECRET_FAILED","settlement.sale.DOCUMENT_REJECTED"]}},"required":["code"]}],"examples":[{"code":"settlement.http.PRECONDITION_FAILED","status":422,"message":"A settlement precondition is not met","data":{"id":"DALP-12324","why":"The settlement cannot run the requested operation until a precondition it names is satisfied.","fix":"Satisfy the precondition, then send the request again.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","XVP_CREATE_COULD_NOT_RESOLVE_CREATED_SETTLEMENT_INDEXER_RETRIES","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","settlement.http.DEPENDENCY_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns a time-limited PUT URL for a sale document. PUT the bytes to the URL, then confirm the upload. Request a new URL if the previous one has expired. An upload URL for a terms document needs the Sale Admin role.","summary":"Create a sale document upload URL","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenSaleDocumentGetUploadUrlBody"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/token-sales/{saleAddress}/documents":{"post":{"tags":["Primary offerings"],"operationId":"tokenSaleV2.v2/addons/tokenSale/documentsConfirmUpload","parameters":[{"name":"saleAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The stored sale document after the upload is confirmed.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/SaleDocument"},"links":{"$ref":"#/components/schemas/SettlementSingleLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6c","chainId":11155111,"saleAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","tokenAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","documentType":"brochure","visibility":"public","groupId":"doc_01j8f3k2m4n5p6q7r8s9t0v1","versionNumber":1,"isLatest":true,"fileName":"northwind-series-a-brochure.pdf","filePath":"token-sales/0x5FC8d32690cc91D4c39d9d3abcBD16989F875707/brochure.pdf","fileSize":248832,"mimeType":"application/pdf","fileHash":"0x4b227777d4dd1fc61c6f884f48641d02b4d121d3fd328cb08b5531fcacdabf8a","title":"Northwind Series A brochure","description":"Investor brochure for the Series A sale.","uploadedAt":"2026-03-15T09:12:41.000Z"},"links":{"self":"/v2/addons/token-sales/0x5FC8d32690cc91D4c39d9d3abcBD16989F875707/documents"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","XVP_HASHLOCK_INVALID","XVP_HASHLOCK_REVEAL_NOT_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","settlement.sale.TERMS_FIXED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","settlement.http.PRECONDITION_FAILED","settlement.http.SECRET_FAILED","settlement.sale.DOCUMENT_REJECTED"]}},"required":["code"]}],"examples":[{"code":"settlement.http.PRECONDITION_FAILED","status":422,"message":"A settlement precondition is not met","data":{"id":"DALP-12324","why":"The settlement cannot run the requested operation until a precondition it names is satisfied.","fix":"Satisfy the precondition, then send the request again.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","XVP_CREATE_COULD_NOT_RESOLVE_CREATED_SETTLEMENT_INDEXER_RETRIES","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","settlement.http.DEPENDENCY_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Creates the document record after the object has been uploaded. Send the object key returned by the upload URL. Repeating a confirm for an already recorded key is rejected. A terms document, or a document that replaces one, needs the Sale Admin role.","summary":"Confirm a sale document upload","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenSaleDocumentConfirmUploadBody"}}},"required":true},"x-dalp-auth":"session-or-api-key"},"get":{"tags":["Primary offerings"],"operationId":"tokenSaleV2.v2/addons/tokenSale/documentsList","parameters":[{"name":"saleAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. page[offset] 0 to 10000, page[limit] 1 to 200."},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","enum":["fileName","-fileName","documentType","-documentType","visibility","-visibility","mimeType","-mimeType","isLatest","-isLatest","fileSize","-fileSize","uploadedAt","-uploadedAt","createdAt","-createdAt"],"description":"JSON:API sort param. Prefix with - for descending. Sortable fields: fileName, documentType, visibility, mimeType, isLatest, fileSize, uploadedAt, createdAt"},"required":false}],"responses":{"200":{"description":"One page of documents visible on the named sale.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/SaleDocumentListItem"}},"meta":{"$ref":"#/components/schemas/SettlementCollectionMeta"},"links":{"$ref":"#/components/schemas/SettlementCollectionLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6c","saleAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","documentType":"brochure","visibility":"public","groupId":"doc_01j8f3k2m4n5p6q7r8s9t0v1","versionNumber":1,"isLatest":true,"fileName":"northwind-series-a-terms.pdf","fileSize":248832,"mimeType":"application/pdf","fileHash":"0x4b227777d4dd1fc61c6f884f48641d02b4d121d3fd328cb08b5531fcacdabf8a","title":"Northwind Series A terms","description":"Investor terms for the Series A sale.","uploadedAt":"2026-03-15T09:12:41.000Z","thumbnailUrl":null}],"meta":{"total":1,"facets":{}},"links":{"self":"/v2/addons/token-sales/0x5FC8d32690cc91D4c39d9d3abcBD16989F875707/documents?sort=uploadedAt&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/addons/token-sales/0x5FC8d32690cc91D4c39d9d3abcBD16989F875707/documents?sort=uploadedAt&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/addons/token-sales/0x5FC8d32690cc91D4c39d9d3abcBD16989F875707/documents?sort=uploadedAt&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","XVP_HASHLOCK_INVALID","XVP_HASHLOCK_REVEAL_NOT_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","settlement.http.PRECONDITION_FAILED","settlement.http.SECRET_FAILED","settlement.sale.DOCUMENT_REJECTED"]}},"required":["code"]}],"examples":[{"code":"settlement.http.PRECONDITION_FAILED","status":422,"message":"A settlement precondition is not met","data":{"id":"DALP-12324","why":"The settlement cannot run the requested operation until a precondition it names is satisfied.","fix":"Satisfy the precondition, then send the request again.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","XVP_CREATE_COULD_NOT_RESOLVE_CREATED_SETTLEMENT_INDEXER_RETRIES","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","settlement.http.DEPENDENCY_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of documents visible to the authenticated caller on the named sale. Repeating the request is safe.","summary":"List sale documents","x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/token-sales/{saleAddress}/documents/{documentId}/downloads":{"post":{"tags":["Primary offerings"],"operationId":"tokenSaleV2.v2/addons/tokenSale/documentsGetDownloadUrl","parameters":[{"name":"saleAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"name":"documentId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Time-limited GET URL for a sale document the caller may read.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/SaleDocumentPresignedDownload"},"links":{"$ref":"#/components/schemas/SettlementSingleLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"downloadUrl":"https://objects.northwind.example/download/sale-brochure.pdf","fileName":"northwind-series-a-brochure.pdf","mimeType":"application/pdf","expiresAt":"2026-04-02T10:14:07.000Z"},"links":{"self":"/v2/addons/token-sales/0x5FC8d32690cc91D4c39d9d3abcBD16989F875707/documents/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6c/downloads"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","XVP_HASHLOCK_INVALID","XVP_HASHLOCK_REVEAL_NOT_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","settlement.http.PRECONDITION_FAILED","settlement.http.SECRET_FAILED","settlement.sale.DOCUMENT_REJECTED"]}},"required":["code"]}],"examples":[{"code":"settlement.http.PRECONDITION_FAILED","status":422,"message":"A settlement precondition is not met","data":{"id":"DALP-12324","why":"The settlement cannot run the requested operation until a precondition it names is satisfied.","fix":"Satisfy the precondition, then send the request again.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","XVP_CREATE_COULD_NOT_RESOLVE_CREATED_SETTLEMENT_INDEXER_RETRIES","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","settlement.http.DEPENDENCY_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns a time-limited GET URL for a sale document the caller may read. Request a new URL if the previous one has expired. This route does not change sale state.","summary":"Create a sale document download URL","x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/token-sales/{saleAddress}/documents/{documentId}":{"delete":{"tags":["Primary offerings"],"operationId":"tokenSaleV2.v2/addons/tokenSale/documentsDelete","parameters":[{"name":"saleAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"name":"documentId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Successful delete acknowledgement. `data` is `null` because the resource no longer exists. Treat HTTP 200 plus this body as confirmation, not as a leftover item.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SettlementDeleted"},"examples":{"example-1":{"value":{"data":null}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","XVP_HASHLOCK_INVALID","XVP_HASHLOCK_REVEAL_NOT_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","settlement.sale.TERMS_FIXED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","settlement.http.PRECONDITION_FAILED","settlement.http.SECRET_FAILED","settlement.sale.DOCUMENT_REJECTED"]}},"required":["code"]}],"examples":[{"code":"settlement.http.PRECONDITION_FAILED","status":422,"message":"A settlement precondition is not met","data":{"id":"DALP-12324","why":"The settlement cannot run the requested operation until a precondition it names is satisfied.","fix":"Satisfy the precondition, then send the request again.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","XVP_CREATE_COULD_NOT_RESOLVE_CREATED_SETTLEMENT_INDEXER_RETRIES","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","settlement.http.DEPENDENCY_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Deletes a manager-owned sale document and its stored object. A document that is already gone answers 404. Deleting a terms document needs the Sale Admin role.","summary":"Delete a sale document","x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/airdrops":{"get":{"tags":["Airdrops"],"operationId":"airdropV2.v2/addons/airdrop/list","parameters":[{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. page[offset] 0 to 10000, page[limit] 1 to 200."},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","enum":["createdAt","-createdAt"],"description":"JSON:API sort param. Sortable fields: createdAt. Prefix with - for descending.","examples":["createdAt","-createdAt"]},"required":false},{"name":"search","in":"query","schema":{"type":"string"},"required":false},{"name":"typeId","in":"query","schema":{"type":"string","enum":["push-airdrop","vesting-airdrop","time-bound-airdrop"],"description":"Airdrop factory variant"},"required":false},{"name":"filter","in":"query","schema":{"type":"object","properties":{"search":{"type":"string"},"typeId":{"type":"string","enum":["push-airdrop","vesting-airdrop","time-bound-airdrop"],"description":"Airdrop factory variant"}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true}],"responses":{"200":{"description":"One page of airdrops from factories registered in the active system. `meta.total` counts every matching airdrop.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/AirdropListItem"}},"meta":{"$ref":"#/components/schemas/SettlementCollectionMeta"},"links":{"$ref":"#/components/schemas/SettlementCollectionLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","typeId":"push-airdrop","name":"Northwind early-subscriber airdrop","token":{"id":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","symbol":"NCB","decimals":18},"merkleRoot":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae","distributionCap":"100000","distributionCapExact":"100000000000000000000000","amountTransferred":"25000","amountTransferredExact":"25000000000000000000000","withdrawalScheduled":false,"withdrawalEligibleAt":null,"vestingStrategy":null,"vestingInitializationDeadlineAt":null,"createdAt":"2026-03-04T09:12:41.000Z"}],"meta":{"total":1},"links":{"self":"/v2/addons/airdrops?sort=createdAt&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/addons/airdrops?sort=createdAt&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/addons/airdrops?sort=createdAt&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","XVP_HASHLOCK_INVALID","XVP_HASHLOCK_REVEAL_NOT_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["AIRDROP_ADDON_NOT_FOUND","AIRDROP_NOT_FOUND_INDEXER","AIRDROP_NOT_IN_OWNER_SCOPE","CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","settlement.http.PRECONDITION_FAILED","settlement.http.SECRET_FAILED","settlement.sale.DOCUMENT_REJECTED"]}},"required":["code"]}],"examples":[{"code":"settlement.http.PRECONDITION_FAILED","status":422,"message":"A settlement precondition is not met","data":{"id":"DALP-12324","why":"The settlement cannot run the requested operation until a precondition it names is satisfied.","fix":"Satisfy the precondition, then send the request again.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","XVP_CREATE_COULD_NOT_RESOLVE_CREATED_SETTLEMENT_INDEXER_RETRIES","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","settlement.http.DEPENDENCY_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of airdrop instances from every airdrop factory registered in the active system. Default sort is `createdAt`. Filter by `typeId` (push, vesting, or time-bound), `token`, `systemAddon`, or `name`. An airdrop appears only after the indexer processes its deploy. Repeating the request is safe.","summary":"List airdrops","x-dalp-auth":"session-or-api-key"},"post":{"tags":["Airdrops"],"operationId":"airdropV2.v2/addons/airdrop/create","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled Canton addon write (HTTP 200). The operation id is also the submission id, so the status URL resolves under the same id.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CantonAddonOperationOutput_1"},"meta":{"$ref":"#/components/schemas/SettlementBlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SettlementSingleLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"operationId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","submissionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","ledgerSubmissionId":"canton-ledger-sub-1","preparedHashHex":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","contractId":"00a1b2c3d4e5f60718293a4b5c6d7e8f90a1b2c3d4e5f60718293a4b5c6d7e8f90"},"meta":{"txHashes":[],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SettlementAsyncAcceptedResult_21"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","XVP_HASHLOCK_INVALID","XVP_HASHLOCK_REVEAL_NOT_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","settlement.http.PRECONDITION_FAILED","settlement.http.SECRET_FAILED","settlement.sale.DOCUMENT_REJECTED"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","XVP_CREATE_COULD_NOT_RESOLVE_CREATED_SETTLEMENT_INDEXER_RETRIES","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","settlement.http.DEPENDENCY_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Opens a Canton airdrop the writes below then act on: `kind: \"campaign\"` creates a pull-claim campaign, whose entitled accounts claim for themselves inside the claim window, and `kind: \"push\"` creates an admin-distributed push campaign, whose grants the admin offers and then distributes. Both submit as the party wallet in the body and answer with the id of the contract they created, which every later entitlement, claim, grant or distribution names. This route serves Canton airdrops only: a body naming no `instrumentAdmin` is refused for the family, because no EVM airdrop creation exists for it to reach. The operation id is the submission id, so the status URL is the transaction-request read.","summary":"Create an airdrop","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CantonAirdropCreateInput"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/airdrops/{airdropAddress}":{"get":{"tags":["Airdrops"],"operationId":"airdropV2.v2/addons/airdrop/read","parameters":[{"name":"airdropAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true}],"responses":{"200":{"description":"The requested airdrop and a `self` link. `recipientCount` is the indexed number of distinct recipients.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/AirdropReadResponse"},"links":{"$ref":"#/components/schemas/SettlementSingleLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","typeId":"push-airdrop","name":"Northwind early-subscriber airdrop","token":{"id":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","symbol":"NCB","decimals":18},"merkleRoot":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae","distributionCap":"100000","distributionCapExact":"100000000000000000000000","amountTransferred":"25000","amountTransferredExact":"25000000000000000000000","withdrawalScheduled":false,"withdrawalEligibleAt":null,"vestingStrategy":null,"vestingInitializationDeadlineAt":null,"createdAt":"2026-03-04T09:12:41.000Z","recipientCount":48},"links":{"self":"/v2/addons/airdrops/0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","XVP_HASHLOCK_INVALID","XVP_HASHLOCK_REVEAL_NOT_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["AIRDROP_ADDON_NOT_FOUND","AIRDROP_NOT_FOUND_INDEXER","AIRDROP_NOT_IN_OWNER_SCOPE","CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","settlement.http.PRECONDITION_FAILED","settlement.http.SECRET_FAILED","settlement.sale.DOCUMENT_REJECTED"]}},"required":["code"]}],"examples":[{"code":"settlement.http.PRECONDITION_FAILED","status":422,"message":"A settlement precondition is not met","data":{"id":"DALP-12324","why":"The settlement cannot run the requested operation until a precondition it names is satisfied.","fix":"Satisfy the precondition, then send the request again.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","XVP_CREATE_COULD_NOT_RESOLVE_CREATED_SETTLEMENT_INDEXER_RETRIES","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","settlement.http.DEPENDENCY_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one indexed airdrop, including recipient count, after confirming its factory belongs to the active system. An address that is not indexed answers 404. A factory outside this system answers 409. Repeating the request is safe.","summary":"Read an airdrop","x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/airdrops/{airdropId}/entitlements":{"post":{"tags":["Airdrops"],"operationId":"airdropV2.v2/addons/airdrop/entitlementsCreate","parameters":[{"name":"airdropId","in":"path","schema":{"type":"string","minLength":1,"description":"Contract id of a Canton contract, as returned by the addon or token read that listed it. The template identifiers behind it are pinned by the platform."},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled Canton addon write (HTTP 200). The operation id is also the submission id, so the status URL resolves under the same id.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CantonAddonOperationOutput_1"},"meta":{"$ref":"#/components/schemas/SettlementBlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SettlementSingleLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"operationId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","submissionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","ledgerSubmissionId":"canton-ledger-sub-1","preparedHashHex":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","contractId":"00a1b2c3d4e5f60718293a4b5c6d7e8f90a1b2c3d4e5f60718293a4b5c6d7e8f90"},"meta":{"txHashes":[],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SettlementAsyncAcceptedResult_22"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","XVP_HASHLOCK_INVALID","XVP_HASHLOCK_REVEAL_NOT_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","settlement.http.PRECONDITION_FAILED","settlement.http.SECRET_FAILED","settlement.sale.DOCUMENT_REJECTED"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","XVP_CREATE_COULD_NOT_RESOLVE_CREATED_SETTLEMENT_INDEXER_RETRIES","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","settlement.http.DEPENDENCY_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Grants one account the right to claim an amount from a Canton campaign, optionally under a vesting schedule. It exercises `AirdropCampaign_IssueEntitlement` on the campaign the path names. This route serves Canton airdrops only: the path segment is the Canton contract id a platform read returned, and an EVM airdrop address is refused for the family rather than looked up. The write submits as the party wallet named in the body, and the operation id it answers with is the submission id, so the status URL is the transaction-request read.","summary":"Issue an airdrop entitlement","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CantonAirdropEntitlementInput"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/airdrops/{airdropId}/claims":{"post":{"tags":["Airdrops"],"operationId":"airdropV2.v2/addons/airdrop/claimsCreate","parameters":[{"name":"airdropId","in":"path","schema":{"type":"string","minLength":1,"description":"Contract id of a Canton contract, as returned by the addon or token read that listed it. The template identifiers behind it are pinned by the platform."},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled Canton addon write (HTTP 200). The operation id is also the submission id, so the status URL resolves under the same id.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CantonAddonOperationOutput_1"},"meta":{"$ref":"#/components/schemas/SettlementBlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SettlementSingleLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"operationId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","submissionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","ledgerSubmissionId":"canton-ledger-sub-1","preparedHashHex":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","contractId":"00a1b2c3d4e5f60718293a4b5c6d7e8f90a1b2c3d4e5f60718293a4b5c6d7e8f90"},"meta":{"txHashes":[],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SettlementAsyncAcceptedResult_23"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","XVP_HASHLOCK_INVALID","XVP_HASHLOCK_REVEAL_NOT_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","settlement.http.PRECONDITION_FAILED","settlement.http.SECRET_FAILED","settlement.sale.DOCUMENT_REJECTED"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","XVP_CREATE_COULD_NOT_RESOLVE_CREATED_SETTLEMENT_INDEXER_RETRIES","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","settlement.http.DEPENDENCY_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Pulls the submitting party's vested entitlement out of a Canton campaign, presenting the instrument's registry rules so the ledger can gate the claim. It exercises `AirdropCampaign_Claim` on the campaign the path names. This route serves Canton airdrops only: the path segment is the Canton contract id a platform read returned, and an EVM airdrop address is refused for the family rather than looked up. The write submits as the party wallet named in the body, and the operation id it answers with is the submission id, so the status URL is the transaction-request read.","summary":"Claim an airdrop entitlement","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CantonAirdropClaimInput"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/airdrops/{airdropId}":{"delete":{"tags":["Airdrops"],"operationId":"airdropV2.v2/addons/airdrop/campaignRevoke","parameters":[{"name":"airdropId","in":"path","schema":{"type":"string","minLength":1,"description":"Contract id of a Canton contract, as returned by the addon or token read that listed it. The template identifiers behind it are pinned by the platform."},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled Canton addon write (HTTP 200). The operation id is also the submission id, so the status URL resolves under the same id.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CantonAddonOperationOutput_1"},"meta":{"$ref":"#/components/schemas/SettlementBlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SettlementSingleLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"operationId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","submissionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","ledgerSubmissionId":"canton-ledger-sub-1","preparedHashHex":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","contractId":"00a1b2c3d4e5f60718293a4b5c6d7e8f90a1b2c3d4e5f60718293a4b5c6d7e8f90"},"meta":{"txHashes":[],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SettlementAsyncAcceptedResult_24"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","XVP_HASHLOCK_INVALID","XVP_HASHLOCK_REVEAL_NOT_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","settlement.http.PRECONDITION_FAILED","settlement.http.SECRET_FAILED","settlement.sale.DOCUMENT_REJECTED"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","XVP_CREATE_COULD_NOT_RESOLVE_CREATED_SETTLEMENT_INDEXER_RETRIES","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","settlement.http.DEPENDENCY_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Retires a Canton campaign capability so no further entitlement can be issued or claimed against it. It exercises `AirdropCampaign_Revoke` on the campaign the path names. This route serves Canton airdrops only: the path segment is the Canton contract id a platform read returned, and an EVM airdrop address is refused for the family rather than looked up. The write submits as the party wallet named in the body, and the operation id it answers with is the submission id, so the status URL is the transaction-request read.","summary":"Revoke an airdrop campaign","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CantonAirdropCampaignRevokeInput"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/airdrops/{airdropId}/grants":{"post":{"tags":["Airdrops"],"operationId":"airdropV2.v2/addons/airdrop/grantsCreate","parameters":[{"name":"airdropId","in":"path","schema":{"type":"string","minLength":1,"description":"Contract id of a Canton contract, as returned by the addon or token read that listed it. The template identifiers behind it are pinned by the platform."},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled Canton addon write (HTTP 200). The operation id is also the submission id, so the status URL resolves under the same id.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CantonAddonOperationOutput_1"},"meta":{"$ref":"#/components/schemas/SettlementBlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SettlementSingleLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"operationId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","submissionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","ledgerSubmissionId":"canton-ledger-sub-1","preparedHashHex":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","contractId":"00a1b2c3d4e5f60718293a4b5c6d7e8f90a1b2c3d4e5f60718293a4b5c6d7e8f90"},"meta":{"txHashes":[],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SettlementAsyncAcceptedResult_25"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","XVP_HASHLOCK_INVALID","XVP_HASHLOCK_REVEAL_NOT_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","settlement.http.PRECONDITION_FAILED","settlement.http.SECRET_FAILED","settlement.sale.DOCUMENT_REJECTED"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","XVP_CREATE_COULD_NOT_RESOLVE_CREATED_SETTLEMENT_INDEXER_RETRIES","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","settlement.http.DEPENDENCY_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Offers one account a grant it may accept later. The grant is not value yet: nothing moves until the recipient accepts. It exercises `PushAirdrop_Offer` on the push airdrop the path names. This route serves Canton airdrops only: the path segment is the Canton contract id a platform read returned, and an EVM airdrop address is refused for the family rather than looked up. The write submits as the party wallet named in the body, and the operation id it answers with is the submission id, so the status URL is the transaction-request read.","summary":"Offer an airdrop grant","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CantonAirdropGrantOfferInput"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/airdrops/{airdropId}/grants/{grantId}/acceptances":{"post":{"tags":["Airdrops"],"operationId":"airdropV2.v2/addons/airdrop/grantAcceptancesCreate","parameters":[{"name":"airdropId","in":"path","schema":{"type":"string","minLength":1,"description":"Contract id of a Canton contract, as returned by the addon or token read that listed it. The template identifiers behind it are pinned by the platform."},"required":true},{"name":"grantId","in":"path","schema":{"type":"string","minLength":1,"description":"Contract id of a Canton contract, as returned by the addon or token read that listed it. The template identifiers behind it are pinned by the platform."},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled Canton addon write (HTTP 200). The operation id is also the submission id, so the status URL resolves under the same id.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CantonAddonOperationOutput_1"},"meta":{"$ref":"#/components/schemas/SettlementBlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SettlementSingleLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"operationId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","submissionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","ledgerSubmissionId":"canton-ledger-sub-1","preparedHashHex":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","contractId":"00a1b2c3d4e5f60718293a4b5c6d7e8f90a1b2c3d4e5f60718293a4b5c6d7e8f90"},"meta":{"txHashes":[],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SettlementAsyncAcceptedResult_26"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","XVP_HASHLOCK_INVALID","XVP_HASHLOCK_REVEAL_NOT_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","settlement.http.PRECONDITION_FAILED","settlement.http.SECRET_FAILED","settlement.sale.DOCUMENT_REJECTED"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","XVP_CREATE_COULD_NOT_RESOLVE_CREATED_SETTLEMENT_INDEXER_RETRIES","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","settlement.http.DEPENDENCY_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Consents to an offered grant as its recipient, which archives the offered grant and creates its accepted successor at a new contract id. It exercises `PushGrant_Accept` on the grant the path names, and the successor's id is what a distribution names next. This route serves Canton airdrops only: the path segment is the Canton contract id a platform read returned, and an EVM airdrop address is refused for the family rather than looked up. The write submits as the party wallet named in the body, and the operation id it answers with is the submission id, so the status URL is the transaction-request read.","summary":"Accept an airdrop grant","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CantonAirdropGrantAcceptanceInput"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/airdrops/{airdropId}/grants/{grantId}":{"delete":{"tags":["Airdrops"],"operationId":"airdropV2.v2/addons/airdrop/grantWithdrawalsCreate","parameters":[{"name":"airdropId","in":"path","schema":{"type":"string","minLength":1,"description":"Contract id of a Canton contract, as returned by the addon or token read that listed it. The template identifiers behind it are pinned by the platform."},"required":true},{"name":"grantId","in":"path","schema":{"type":"string","minLength":1,"description":"Contract id of a Canton contract, as returned by the addon or token read that listed it. The template identifiers behind it are pinned by the platform."},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled Canton addon write (HTTP 200). The operation id is also the submission id, so the status URL resolves under the same id.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CantonAddonOperationOutput_1"},"meta":{"$ref":"#/components/schemas/SettlementBlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SettlementSingleLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"operationId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","submissionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","ledgerSubmissionId":"canton-ledger-sub-1","preparedHashHex":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","contractId":"00a1b2c3d4e5f60718293a4b5c6d7e8f90a1b2c3d4e5f60718293a4b5c6d7e8f90"},"meta":{"txHashes":[],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SettlementAsyncAcceptedResult_27"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","XVP_HASHLOCK_INVALID","XVP_HASHLOCK_REVEAL_NOT_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","settlement.http.PRECONDITION_FAILED","settlement.http.SECRET_FAILED","settlement.sale.DOCUMENT_REJECTED"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","XVP_CREATE_COULD_NOT_RESOLVE_CREATED_SETTLEMENT_INDEXER_RETRIES","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","settlement.http.DEPENDENCY_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Retracts an offered grant before its recipient accepts it. It exercises `PushGrant_Withdraw` on the grant the path names. This route serves Canton airdrops only: the path segment is the Canton contract id a platform read returned, and an EVM airdrop address is refused for the family rather than looked up. The write submits as the party wallet named in the body, and the operation id it answers with is the submission id, so the status URL is the transaction-request read.","summary":"Withdraw an airdrop grant","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CantonAirdropGrantWithdrawalInput"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/airdrops/{airdropId}/grants/{grantId}/distributions":{"delete":{"tags":["Airdrops"],"operationId":"airdropV2.v2/addons/airdrop/grantDistributionRevocationsCreate","parameters":[{"name":"airdropId","in":"path","schema":{"type":"string","minLength":1,"description":"Contract id of a Canton contract, as returned by the addon or token read that listed it. The template identifiers behind it are pinned by the platform."},"required":true},{"name":"grantId","in":"path","schema":{"type":"string","minLength":1,"description":"Contract id of a Canton contract, as returned by the addon or token read that listed it. The template identifiers behind it are pinned by the platform."},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled Canton addon write (HTTP 200). The operation id is also the submission id, so the status URL resolves under the same id.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CantonAddonOperationOutput_1"},"meta":{"$ref":"#/components/schemas/SettlementBlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SettlementSingleLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"operationId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","submissionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","ledgerSubmissionId":"canton-ledger-sub-1","preparedHashHex":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","contractId":"00a1b2c3d4e5f60718293a4b5c6d7e8f90a1b2c3d4e5f60718293a4b5c6d7e8f90"},"meta":{"txHashes":[],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SettlementAsyncAcceptedResult_28"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","XVP_HASHLOCK_INVALID","XVP_HASHLOCK_REVEAL_NOT_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","settlement.http.PRECONDITION_FAILED","settlement.http.SECRET_FAILED","settlement.sale.DOCUMENT_REJECTED"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","XVP_CREATE_COULD_NOT_RESOLVE_CREATED_SETTLEMENT_INDEXER_RETRIES","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","settlement.http.DEPENDENCY_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Retires an accepted grant before it is distributed, so nothing is minted for it. It exercises `AcceptedPushGrant_Revoke` on the accepted grant the path names. This route serves Canton airdrops only: the path segment is the Canton contract id a platform read returned, and an EVM airdrop address is refused for the family rather than looked up. The write submits as the party wallet named in the body, and the operation id it answers with is the submission id, so the status URL is the transaction-request read.","summary":"Revoke an accepted airdrop grant","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CantonAirdropGrantDistributionRevokeInput"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/airdrops/{airdropId}/push-distributions":{"post":{"tags":["Airdrops"],"operationId":"airdropV2.v2/addons/airdrop/pushDistributionsCreate","parameters":[{"name":"airdropId","in":"path","schema":{"type":"string","minLength":1,"description":"Contract id of a Canton contract, as returned by the addon or token read that listed it. The template identifiers behind it are pinned by the platform."},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled Canton addon write (HTTP 200). The operation id is also the submission id, so the status URL resolves under the same id.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CantonAddonOperationOutput_1"},"meta":{"$ref":"#/components/schemas/SettlementBlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SettlementSingleLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"operationId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","submissionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","ledgerSubmissionId":"canton-ledger-sub-1","preparedHashHex":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","contractId":"00a1b2c3d4e5f60718293a4b5c6d7e8f90a1b2c3d4e5f60718293a4b5c6d7e8f90"},"meta":{"txHashes":[],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SettlementAsyncAcceptedResult_29"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","XVP_HASHLOCK_INVALID","XVP_HASHLOCK_REVEAL_NOT_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","settlement.http.PRECONDITION_FAILED","settlement.http.SECRET_FAILED","settlement.sale.DOCUMENT_REJECTED"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","XVP_CREATE_COULD_NOT_RESOLVE_CREATED_SETTLEMENT_INDEXER_RETRIES","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","settlement.http.DEPENDENCY_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Distributes an accepted grant against its push campaign, which is the choice that reads the campaign's own accounting rather than the grant's. It exercises `PushAirdrop_Distribute` on the push airdrop the path names, with the accepted grant named in the body. This route serves Canton airdrops only: the path segment is the Canton contract id a platform read returned, and an EVM airdrop address is refused for the family rather than looked up. The write submits as the party wallet named in the body, and the operation id it answers with is the submission id, so the status URL is the transaction-request read.","summary":"Distribute a push airdrop grant","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CantonAirdropPushDistributionInput"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/airdrops/{airdropId}/push":{"delete":{"tags":["Airdrops"],"operationId":"airdropV2.v2/addons/airdrop/pushRevocationsCreate","parameters":[{"name":"airdropId","in":"path","schema":{"type":"string","minLength":1,"description":"Contract id of a Canton contract, as returned by the addon or token read that listed it. The template identifiers behind it are pinned by the platform."},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled Canton addon write (HTTP 200). The operation id is also the submission id, so the status URL resolves under the same id.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CantonAddonOperationOutput_1"},"meta":{"$ref":"#/components/schemas/SettlementBlockchainMutationMeta"},"links":{"$ref":"#/components/schemas/SettlementSingleLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"operationId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","submissionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","ledgerSubmissionId":"canton-ledger-sub-1","preparedHashHex":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","contractId":"00a1b2c3d4e5f60718293a4b5c6d7e8f90a1b2c3d4e5f60718293a4b5c6d7e8f90"},"meta":{"txHashes":[],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SettlementAsyncAcceptedResult_30"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","XVP_HASHLOCK_INVALID","XVP_HASHLOCK_REVEAL_NOT_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","settlement.http.PRECONDITION_FAILED","settlement.http.SECRET_FAILED","settlement.sale.DOCUMENT_REJECTED"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","XVP_CREATE_COULD_NOT_RESOLVE_CREATED_SETTLEMENT_INDEXER_RETRIES","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","settlement.http.DEPENDENCY_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Retires a push campaign capability so no further grant can be offered against it. It exercises `PushAirdrop_Revoke` on the push airdrop the path names. This route serves Canton airdrops only: the path segment is the Canton contract id a platform read returned, and an EVM airdrop address is refused for the family rather than looked up. The write submits as the party wallet named in the body, and the operation id it answers with is the submission id, so the status URL is the transaction-request read.","summary":"Revoke a push airdrop","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CantonAirdropPushRevokeInput"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens":{"get":{"tags":["Tokens"],"operationId":"v2/token/list","parameters":[{"name":"sort","in":"query","schema":{"type":"string"},"required":false},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"type":"integer"},"limit":{"type":"integer"}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"symbol":{"type":"string","minLength":1},"tokenFactory":{"type":"string","minLength":1},"tokenType":{"type":"string","minLength":1},"assetClass":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"templateId":{"type":"string","minLength":1},"templateSlug":{"type":"string","minLength":1},"paused":{"anyOf":[{"type":"string","enum":["active","paused"]},{"type":"object","properties":{"eq":{"type":"string","enum":["active","paused"]},"ne":{"type":"string","enum":["active","paused"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"family":{"anyOf":[{"type":"string","enum":["evm","canton"]},{"type":"object","properties":{"eq":{"type":"string","enum":["evm","canton"]}},"additionalProperties":false}]},"network":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000}},"additionalProperties":false}]},"instrumentAdmin":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"instrumentId":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"groupBy","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"One page of visible assets. Rows are grouped by `family`, EVM first. `meta.total` counts every matching asset in both families, not only the ones on this page. `meta.facets` describes the EVM rows only. `meta.groups` appears only when the request sent `groupBy`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenV2ListOutputSchema"},"examples":{"example-1":{"value":{"data":[{"ref":{"_tag":"evm","address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"},"token":{"_tag":"evm","address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","name":"Core holdings","symbol":"ACME25","decimals":18,"assetType":"bond","createdAt":"2026-08-01T09:00:00.000Z","totalSupply":"50000000","basePrice":"100.00","basePriceCurrencyCode":"USD","smartInterface":2,"pausable":{"paused":false},"logoUrl":"https://cdn.example.com/tokens/acme25.png","tokenFactory":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","templateLink":{"templateId":"att_northwind_founder_shares","templateSlug":"corporate-bond"},"capabilities":["share-capital"]}}],"meta":{"total":1,"facets":{}},"links":{"self":"/api/v2/tokens?sort=createdAt&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/api/v2/tokens?sort=createdAt&page%5Boffset%5D=0&page%5Blimit%5D=50","last":"/api/v2/tokens?sort=createdAt&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","TOKEN_LIST_FILTER_INVALID","TOKEN_LIST_METADATA_KEY_IDENTIFIER_INELIGIBLE","TOKEN_LIST_METADATA_KEY_NOT_BUCKETABLE","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_LIST_FACTORY_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_NETWORK_NOT_CONFIGURED","CONTRACT_ERROR"]}},"required":["code"]}],"examples":[{"code":"CANTON_NETWORK_NOT_CONFIGURED","status":422,"message":"No Canton participant network is configured","data":{"id":"DALP-9313","why":"This deployment has no Canton participant network, so the platform cannot allocate a party or submit a DAML command.","fix":"Ask an operator to add a Canton network to the platform configuration, then retry.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_LIST_FACTORY_REGISTRY_UNAVAILABLE","TOKEN_READ_DEPENDENCY_FAILED","core.database.QUERY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"core.database.QUERY_FAILED","status":503,"message":"The database is temporarily unavailable","data":{"id":"DALP-12148","why":"The platform could not complete a database query required for this request.","fix":"Retry the request. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of assets visible in the active organization, across chain families. Every row carries `family`: an `evm` row is a token contract keyed by address, a `canton` row is a ledger instrument keyed by its admin party and instrument id. Narrow to one family with `filter[family]`, or with `X-Chain-Id` (EVM) or `X-Network-Id` (Canton); send neither header for the whole catalog. `filter[network]` narrows to one chain id or one Canton network identity. Rows are grouped by family, EVM first, because the two families order on different clocks. Page with `page[limit]` and `page[offset]`, sort with `sort`, and narrow with `filter`. Every filter other than `family` and `network`, and every `groupBy` or `filter[metadata.*]`, is an EVM concept and excludes Canton rows. `groupBy` pivots the page over a template metadata key and adds `meta.groups`. Results are indexed, not live chain state.","summary":"List assets","x-dalp-auth":"session-or-api-key"},"post":{"tags":["Token creation"],"operationId":"v2/token/create","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous token-creation result (HTTP 200). The deployment settled within the wait window. `data` is the indexed token, `meta.txHashes` lists submitted transactions, and `links.self` is the token URL.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenRecord"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"type":"string","minLength":1}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string","minLength":1}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","tokenFactory":"0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0","complianceContract":"0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9","identityRegistry":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","type":"bond","createdAt":"2026-03-04T09:12:41.000Z","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"basePrice":"100.00","basePriceCurrencyCode":"EUR","totalSupply":"2500000.00","totalSupplyExact":"2500000000000000000000000","extensions":["ACCESS_MANAGED","BOND","CAPPED","REDEEMABLE"],"implementsERC3643":true,"smartInterface":2,"implementsSMART":true,"pausable":{"paused":false},"collateral":null,"capped":{"cap":"5000000.00","capExact":"5000000000000000000000000"},"createdBy":{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"},"redeemable":{"redeemedAmount":"0","redeemedAmountExact":"0"},"yield":null,"bond":{"faceValue":"100.00","faceValueExact":"100000000000000000000","isMatured":false,"maturityDate":"2029-03-04T00:00:00.000Z","totalRedeemed":"0","totalRedeemedExact":"0","denominationAsset":{"id":"0x5FbDB2315678afecb367f032d93F642f64180aa3","symbol":"EURC","decimals":6}},"fund":null,"complianceModuleConfigs":[],"stats":{"balancesCount":12,"totalValueInBaseCurrency":"250000000.00","totalBurned":"0","totalBurnedExact":"0"}},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"]},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false}}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"x-transaction-hash":{"schema":{"type":"string"},"required":false},"location":{"schema":{"type":"string"},"required":false},"preference-applied":{"schema":{"type":"string"},"required":false},"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","CLAIM_TOPIC_EXCLUSION_ACKNOWLEDGEMENT_REQUIRED","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","TOKEN_CREATE_COMPLIANCE_MODULE_INCOMPATIBLE","TOKEN_METADATA_VALUES_INVALID","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","TOKEN_CREATE_USER_ADDRESS_DOES_NOT_ASSOCIATED_IDENTITY_CONTRACT","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_TYPE_TEMPLATE_NOT_FOUND","CONTRACT_ERROR","NOT_FOUND","PRICE_RESOLVER_ADDON_NOT_INSTALLED","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_CREATE_FACTORY_TYPE_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"ASSET_TYPE_TEMPLATE_NOT_FOUND","status":404,"message":"Asset type template not found.","data":{"id":"DALP-0091","why":"The platform searched for the asset type template by the supplied ID and found no record owned by your organization or available as a system template.","fix":"Confirm the ID matches an existing template owned by your organization or a published system template. Re-fetch the list of asset type templates to verify the ID before retrying.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","DURABLE_EXECUTION_ENGINE_CALL_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_CREATE_FEATURES_INCOMPATIBLE","TOKEN_CREATE_TEMPLATE_UNPUBLISHED","TOKEN_MUTATION_INSUFFICIENT_BALANCE","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CLAIM_TOPIC_EXCLUSION_REFUSED","CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","ORGANIZATION_SUBMISSION_SIGNER_CLAIM_PURPOSE_MISSING","STRICT_COMPLIANCE_PARAMS_INVALID","SYSTEM_IDENTITY_CLAIM_ISSUE","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_CHAIN_UNAVAILABLE","TOKEN_CLAIM_ISSUE_FAILED","TOKEN_COMPLIANCE_MODULE_BINDING_UNRESOLVED","TOKEN_CREATE_AMBIGUOUS_INTEREST_PROVIDER","TOKEN_CREATE_ASSET_FAMILY_DEPRECATED","TOKEN_CREATE_DENOMINATION_ASSET_NOT_ERC20","TOKEN_CREATE_DUPLICATE","TOKEN_CREATE_INPUT_ENCODING_INVALID","TOKEN_CREATE_MARKCONVERTED_YIELD_INCOMPATIBLE","TOKEN_CREATE_RECOVERY_FAILED","TOKEN_CREATE_REQUIRED_PARAM_MISSING","TOKEN_CREATE_REQUIRED_WINDOW_EXPIRED","TOKEN_CREATE_TEMPLATEID_REQUIRED_DALP_ASSET_CREATION_SELECT_INSTRUMENT_TEMPLATE_CREATING","TOKEN_CREATE_WORKFLOW_PHASE_FAILED","TOKEN_FUNDING_PAUSE_FAILED","TOKEN_OPERATION_INPUT_INVALID","TOKEN_PRICE_DENOMINATION_UNUSABLE","TOKEN_PRICE_FEED_FACTORY_MISSING","TOKEN_PRICE_FEED_SIGNER_MISSING","TOKEN_PRICE_INPUT_INVALID","TOKEN_PRICE_UPDATE_FAILED","TOKEN_QUEUE_WRITE_REFUSED","TOKEN_WORKFLOW_FAILED","TOKEN_WRITE_OUTCOME_UNKNOWN","TOKEN_WRITE_RECEIPT_INCOMPLETE","TOKEN_WRITE_REVERTED","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"CLAIM_TOPIC_EXCLUSION_REFUSED","status":422,"message":"This claim topic may not be used in exclusions in this system.","data":{"id":"DALP-0693","why":"A NOT branch of the compliance rule excludes the holders of a claim the system's claim policy manager has set to Not allowed. Excluding those holders is defeated by its own subject: the holder manages their own identity and can delete the claim to pass the rule.","fix":"Use an identity block-list, whose identities you enumerate in `IdentityBlockListComplianceModule` and the holder holds no key to edit; a country block-list, which reads the registry country field only the identity manager writes; or a positive claim for the group you admit, so a holder who deletes it loses access instead of gaining it. The claim policy manager can also change the topic's setting for this system.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DEPLOYMENT_WORKFLOW_TERMINAL_FAILED","DURABLE_EXECUTION_ENGINE_CALL_FAILED","ERC20_METADATA_PROBE_UNAVAILABLE","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_ACCESS_SYNC_RESULT_UNAVAILABLE","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_CREATE_WORKFLOW_RESULT_INVALID","TOKEN_WRITE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.erc20_metadata.PROBE_FAILED","dapi.identity.CLAIM_ISSUE_DEPENDENCY_FAILED","dapi.identity.CLAIM_TOPIC_EXCLUSION_POLICY_DEPENDENCY_FAILED","dapi.identity.CLAIM_TOPIC_READ_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Deploys a new token for the active organization on the request chain, using a factory the organization can use. By default the platform queues the deployment and answers with the transaction identifier, its current state, and the status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement and receives the indexed token plus transaction hashes. Follow progress on the creation stream. A second identical call starts another deployment. The body may be the Canton instrument member instead: a member whose `type` is `canton` creates a Canton instrument, which the platform submits as one workflow of admin-single-party ledger commands and answers with the settled Canton arm under 201, or with the accepted shape when the work finishes in the background.","summary":"Create a token","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":50},"symbol":{"$ref":"#/components/schemas/AssetSymbol"},"decimals":{"$ref":"#/components/schemas/DecimalsEncoded"},"countryCode":{"$ref":"#/components/schemas/ISOCountryCodeNumericEncoded"},"initialModulePairs":{"type":"array","items":{"type":"object","properties":{"typeId":{"$ref":"#/components/schemas/ComplianceTypeId"},"values":{},"module":{"$ref":"#/components/schemas/EvmAddress"},"scope":{"$ref":"#/components/schemas/ModuleScope_1"}},"required":["typeId","values","module"],"additionalProperties":false}},"factoryAddress":{"$ref":"#/components/schemas/EvmAddress"},"initialPermissions":{"type":"array","items":{"type":"object","properties":{"account":{"$ref":"#/components/schemas/EvmAddress"},"roles":{"type":"array","items":{"$ref":"#/components/schemas/AccessControlRole"},"minItems":1}},"required":["account","roles"],"additionalProperties":false}},"unpauseOnCreation":{"type":"boolean"},"templateId":{"type":"string","minLength":1},"type":{"type":"string","enum":["deposit"]},"priceCurrency":{"$ref":"#/components/schemas/FiatCurrency"},"basePrice":{"$ref":"#/components/schemas/BigDecimal"},"termLengthDays":{"type":"integer","exclusiveMinimum":0},"interestRateBps":{"type":"integer","minimum":0,"maximum":100000},"earlyWithdrawalPenaltyBps":{"$ref":"#/components/schemas/FeeRateBps"},"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"holderRemovableNot":{"type":"object","properties":{"accepted":{"type":"boolean"}},"required":["accepted"],"additionalProperties":false}},"required":["name","symbol","decimals","countryCode","type","priceCurrency","basePrice"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":50},"symbol":{"$ref":"#/components/schemas/AssetSymbol"},"decimals":{"$ref":"#/components/schemas/DecimalsEncoded"},"countryCode":{"$ref":"#/components/schemas/ISOCountryCodeNumericEncoded"},"initialModulePairs":{"type":"array","items":{"type":"object","properties":{"typeId":{"$ref":"#/components/schemas/ComplianceTypeId"},"values":{},"module":{"$ref":"#/components/schemas/EvmAddress"},"scope":{"$ref":"#/components/schemas/ModuleScope_1"}},"required":["typeId","values","module"],"additionalProperties":false}},"factoryAddress":{"$ref":"#/components/schemas/EvmAddress"},"initialPermissions":{"type":"array","items":{"type":"object","properties":{"account":{"$ref":"#/components/schemas/EvmAddress"},"roles":{"type":"array","items":{"$ref":"#/components/schemas/AccessControlRole"},"minItems":1}},"required":["account","roles"],"additionalProperties":false}},"unpauseOnCreation":{"type":"boolean"},"templateId":{"type":"string","minLength":1},"type":{"type":"string","enum":["bond"]},"cap":{"$ref":"#/components/schemas/AssetAmount"},"faceValue":{"$ref":"#/components/schemas/AssetAmount"},"maturityDate":{"$ref":"#/components/schemas/BlocktimeEncoded"},"denominationAsset":{"$ref":"#/components/schemas/EvmAddress"},"uniqueIdentifier":{"type":"string"},"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"holderRemovableNot":{"type":"object","properties":{"accepted":{"type":"boolean"}},"required":["accepted"],"additionalProperties":false}},"required":["name","symbol","decimals","countryCode","type","cap","faceValue","denominationAsset"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":50},"symbol":{"$ref":"#/components/schemas/AssetSymbol"},"decimals":{"$ref":"#/components/schemas/DecimalsEncoded"},"countryCode":{"$ref":"#/components/schemas/ISOCountryCodeNumericEncoded"},"initialModulePairs":{"type":"array","items":{"type":"object","properties":{"typeId":{"$ref":"#/components/schemas/ComplianceTypeId"},"values":{},"module":{"$ref":"#/components/schemas/EvmAddress"},"scope":{"$ref":"#/components/schemas/ModuleScope_1"}},"required":["typeId","values","module"],"additionalProperties":false}},"factoryAddress":{"$ref":"#/components/schemas/EvmAddress"},"initialPermissions":{"type":"array","items":{"type":"object","properties":{"account":{"$ref":"#/components/schemas/EvmAddress"},"roles":{"type":"array","items":{"$ref":"#/components/schemas/AccessControlRole"},"minItems":1}},"required":["account","roles"],"additionalProperties":false}},"unpauseOnCreation":{"type":"boolean"},"templateId":{"type":"string","minLength":1},"type":{"type":"string","enum":["equity"]},"priceCurrency":{"$ref":"#/components/schemas/FiatCurrency"},"basePrice":{"$ref":"#/components/schemas/BigDecimal"},"uniqueIdentifier":{"type":"string"},"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"holderRemovableNot":{"type":"object","properties":{"accepted":{"type":"boolean"}},"required":["accepted"],"additionalProperties":false},"class":{"$ref":"#/components/schemas/EquityClass"},"category":{"$ref":"#/components/schemas/EquityCategory"}},"required":["name","symbol","decimals","countryCode","type","priceCurrency","basePrice"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":50},"symbol":{"$ref":"#/components/schemas/AssetSymbol"},"decimals":{"$ref":"#/components/schemas/DecimalsEncoded"},"countryCode":{"$ref":"#/components/schemas/ISOCountryCodeNumericEncoded"},"initialModulePairs":{"type":"array","items":{"type":"object","properties":{"typeId":{"$ref":"#/components/schemas/ComplianceTypeId"},"values":{},"module":{"$ref":"#/components/schemas/EvmAddress"},"scope":{"$ref":"#/components/schemas/ModuleScope_1"}},"required":["typeId","values","module"],"additionalProperties":false}},"factoryAddress":{"$ref":"#/components/schemas/EvmAddress"},"initialPermissions":{"type":"array","items":{"type":"object","properties":{"account":{"$ref":"#/components/schemas/EvmAddress"},"roles":{"type":"array","items":{"$ref":"#/components/schemas/AccessControlRole"},"minItems":1}},"required":["account","roles"],"additionalProperties":false}},"unpauseOnCreation":{"type":"boolean"},"templateId":{"type":"string","minLength":1},"type":{"type":"string","enum":["fund"]},"priceCurrency":{"$ref":"#/components/schemas/FiatCurrency"},"basePrice":{"$ref":"#/components/schemas/BigDecimal"},"managementFeeBps":{"$ref":"#/components/schemas/FeeRateBps"},"uniqueIdentifier":{"type":"string"},"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"holderRemovableNot":{"type":"object","properties":{"accepted":{"type":"boolean"}},"required":["accepted"],"additionalProperties":false},"class":{"$ref":"#/components/schemas/FundClass"},"category":{"$ref":"#/components/schemas/FundCategory"}},"required":["name","symbol","decimals","countryCode","type","priceCurrency","basePrice","managementFeeBps"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":50},"symbol":{"$ref":"#/components/schemas/AssetSymbol"},"decimals":{"$ref":"#/components/schemas/DecimalsEncoded"},"countryCode":{"$ref":"#/components/schemas/ISOCountryCodeNumericEncoded"},"initialModulePairs":{"type":"array","items":{"type":"object","properties":{"typeId":{"$ref":"#/components/schemas/ComplianceTypeId"},"values":{},"module":{"$ref":"#/components/schemas/EvmAddress"},"scope":{"$ref":"#/components/schemas/ModuleScope_1"}},"required":["typeId","values","module"],"additionalProperties":false}},"factoryAddress":{"$ref":"#/components/schemas/EvmAddress"},"initialPermissions":{"type":"array","items":{"type":"object","properties":{"account":{"$ref":"#/components/schemas/EvmAddress"},"roles":{"type":"array","items":{"$ref":"#/components/schemas/AccessControlRole"},"minItems":1}},"required":["account","roles"],"additionalProperties":false}},"unpauseOnCreation":{"type":"boolean"},"templateId":{"type":"string","minLength":1},"type":{"type":"string","enum":["stablecoin"]},"priceCurrency":{"$ref":"#/components/schemas/FiatCurrency"},"basePrice":{"$ref":"#/components/schemas/BigDecimal"},"collateralRatioBps":{"type":"integer","minimum":0,"maximum":20000},"pegMechanism":{"type":"string","enum":["fiat-backed","crypto-backed","algorithmic","commodity-backed"]},"reserveDescription":{"anyOf":[{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":1}]},{"type":"null"}]},"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"holderRemovableNot":{"type":"object","properties":{"accepted":{"type":"boolean"}},"required":["accepted"],"additionalProperties":false}},"required":["name","symbol","decimals","countryCode","type","priceCurrency","basePrice"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":50},"symbol":{"$ref":"#/components/schemas/AssetSymbol"},"decimals":{"$ref":"#/components/schemas/DecimalsEncoded"},"countryCode":{"$ref":"#/components/schemas/ISOCountryCodeNumericEncoded"},"initialModulePairs":{"type":"array","items":{"type":"object","properties":{"typeId":{"$ref":"#/components/schemas/ComplianceTypeId"},"values":{},"module":{"$ref":"#/components/schemas/EvmAddress"},"scope":{"$ref":"#/components/schemas/ModuleScope_1"}},"required":["typeId","values","module"],"additionalProperties":false}},"factoryAddress":{"$ref":"#/components/schemas/EvmAddress"},"initialPermissions":{"type":"array","items":{"type":"object","properties":{"account":{"$ref":"#/components/schemas/EvmAddress"},"roles":{"type":"array","items":{"$ref":"#/components/schemas/AccessControlRole"},"minItems":1}},"required":["account","roles"],"additionalProperties":false}},"unpauseOnCreation":{"type":"boolean"},"templateId":{"type":"string","minLength":1},"type":{"type":"string","enum":["real-estate"]},"priceCurrency":{"$ref":"#/components/schemas/FiatCurrency"},"basePrice":{"$ref":"#/components/schemas/BigDecimal"},"maximumFractions":{"$ref":"#/components/schemas/AssetAmount"},"premintRecipient":{"$ref":"#/components/schemas/EvmAddress"},"uniqueIdentifier":{"anyOf":[{"anyOf":[{"type":"string","enum":[""]},{"$ref":"#/components/schemas/RealEstateNumberEncoded"}]},{"type":"null"}]},"propertyType":{"$ref":"#/components/schemas/RealEstatePropertyType"},"propertyUse":{"$ref":"#/components/schemas/RealEstatePropertyUse"},"city":{"anyOf":[{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":1}]},{"type":"null"}]},"districtCode":{"anyOf":[{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":1}]},{"type":"null"}]},"latitude":{"type":"number","minimum":-90,"maximum":90},"longitude":{"type":"number","minimum":-180,"maximum":180},"propertyArea":{"type":"number","exclusiveMinimum":0},"buildingYear":{"type":"integer","minimum":1000,"maximum":2100},"numberOfUnits":{"type":"integer","exclusiveMinimum":0},"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"holderRemovableNot":{"type":"object","properties":{"accepted":{"type":"boolean"}},"required":["accepted"],"additionalProperties":false},"realEstateAreaId":{"anyOf":[{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":1}]},{"type":"null"}]}},"required":["name","symbol","decimals","countryCode","type","priceCurrency","basePrice","maximumFractions","premintRecipient"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":50},"symbol":{"$ref":"#/components/schemas/AssetSymbol"},"decimals":{"$ref":"#/components/schemas/DecimalsEncoded"},"countryCode":{"$ref":"#/components/schemas/ISOCountryCodeNumericEncoded"},"initialModulePairs":{"type":"array","items":{"type":"object","properties":{"typeId":{"$ref":"#/components/schemas/ComplianceTypeId"},"values":{},"module":{"$ref":"#/components/schemas/EvmAddress"},"scope":{"$ref":"#/components/schemas/ModuleScope_1"}},"required":["typeId","values","module"],"additionalProperties":false}},"factoryAddress":{"$ref":"#/components/schemas/EvmAddress"},"initialPermissions":{"type":"array","items":{"type":"object","properties":{"account":{"$ref":"#/components/schemas/EvmAddress"},"roles":{"type":"array","items":{"$ref":"#/components/schemas/AccessControlRole"},"minItems":1}},"required":["account","roles"],"additionalProperties":false}},"unpauseOnCreation":{"type":"boolean"},"templateId":{"type":"string","minLength":1},"type":{"type":"string","enum":["precious-metal"]},"metalType":{"type":"string","enum":["gold","silver","platinum","palladium"]},"purityGrade":{"type":"string","enum":["999.9","999.5","999","995","990","958","916","900","750"]},"vaultLocation":{"anyOf":[{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":1}]},{"type":"null"}]},"custodian":{"anyOf":[{"anyOf":[{"type":"string","enum":[""]},{"type":"string","minLength":1}]},{"type":"null"}]},"weightUnit":{"type":"string","enum":["gram","troyOunce","kilogram"]},"weightPerToken":{"$ref":"#/components/schemas/BigDecimal"},"priceCurrency":{"$ref":"#/components/schemas/FiatCurrency"},"spotPricePerUnit":{"$ref":"#/components/schemas/BigDecimal"},"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"holderRemovableNot":{"type":"object","properties":{"accepted":{"type":"boolean"}},"required":["accepted"],"additionalProperties":false}},"required":["name","symbol","decimals","countryCode","type","metalType","weightUnit","weightPerToken","priceCurrency","spotPricePerUnit"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":50},"symbol":{"$ref":"#/components/schemas/AssetSymbol"},"decimals":{"$ref":"#/components/schemas/DecimalsEncoded"},"countryCode":{"$ref":"#/components/schemas/ISOCountryCodeNumericEncoded"},"initialModulePairs":{"type":"array","items":{"type":"object","properties":{"typeId":{"$ref":"#/components/schemas/ComplianceTypeId"},"values":{},"module":{"$ref":"#/components/schemas/EvmAddress"},"scope":{"$ref":"#/components/schemas/ModuleScope_1"}},"required":["typeId","values","module"],"additionalProperties":false}},"factoryAddress":{"$ref":"#/components/schemas/EvmAddress"},"initialPermissions":{"type":"array","items":{"type":"object","properties":{"account":{"$ref":"#/components/schemas/EvmAddress"},"roles":{"type":"array","items":{"$ref":"#/components/schemas/AccessControlRole"},"minItems":1}},"required":["account","roles"],"additionalProperties":false}},"unpauseOnCreation":{"type":"boolean"},"templateId":{"type":"string","minLength":1},"type":{"type":"string","enum":["dalp-asset"]},"issuanceRun":{"type":"object","properties":{"runId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"},"memberId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"}},"required":["runId","memberId"],"additionalProperties":false},"complianceTemplateSelection":{"type":"string"},"complianceTemplateExpectedTypeIds":{"type":"array","items":{"$ref":"#/components/schemas/ComplianceTypeId"}},"priceCurrency":{"$ref":"#/components/schemas/FiatCurrency"},"basePrice":{"$ref":"#/components/schemas/BigDecimal"},"metadataValues":{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"}]}},"featureConfigs":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/JsonValue"}}},"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"holderRemovableNot":{"type":"object","properties":{"accepted":{"type":"boolean"}},"required":["accepted"],"additionalProperties":false}},"required":["name","symbol","decimals","countryCode","templateId","type"],"additionalProperties":false}]}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}":{"get":{"tags":["Tokens"],"operationId":"v2/token/read","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"instrumentAdmin","in":"query","schema":{"type":"string","minLength":1,"description":"Canton external party identifier"},"required":false}],"responses":{"200":{"description":"The selected asset in a single-resource envelope. `links.self` is the canonical v2 URL and, for a Canton instrument, carries the `instrumentAdmin` that completes its key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenV2ReadOutputSchema"},"examples":{"example-1":{"value":{"data":{"_tag":"evm","address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"assetType":"bond","createdAt":"2026-03-04T09:12:41.000Z","totalSupply":"50000000","basePrice":"100.00","basePriceCurrencyCode":"EUR","smartInterface":2,"pausable":{"paused":false},"logoUrl":"https://cdn.example.com/tokens/acme25.png","tokenFactory":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","templateLink":{"templateId":"att_northwind_founder_shares","templateSlug":"corporate-bond"},"capabilities":["share-capital"]},"details":{"cap":"1","totalBurned":"0","createdBy":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","complianceContract":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","identityRegistry":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","collateral":{"amount":"10000","expiresAt":"2026-04-20T16:00:00.000Z"},"mintClosed":false},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_INSTRUMENT_NOT_FOUND","CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"CANTON_INSTRUMENT_NOT_FOUND","status":404,"message":"The Canton instrument was not found","data":{"id":"DALP-12235","why":"No Canton instrument with this admin and id is disclosed to the parties of the calling organization on the selected network.","fix":"Use an instrument admin and id from the Canton assets list, and select the network the instrument lives on with X-Network-Id.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_NETWORK_NOT_CONFIGURED","CONTRACT_ERROR"]}},"required":["code"]}],"examples":[{"code":"CANTON_NETWORK_NOT_CONFIGURED","status":422,"message":"No Canton participant network is configured","data":{"id":"DALP-9313","why":"This deployment has no Canton participant network, so the platform cannot allocate a party or submit a DAML command.","fix":"Ask an operator to add a Canton network to the platform configuration, then retry.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_READ_DEPENDENCY_FAILED","core.database.QUERY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"core.database.QUERY_FAILED","status":503,"message":"The database is temporarily unavailable","data":{"id":"DALP-12148","why":"The platform could not complete a database query required for this request.","fix":"Retry the request. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the current detailed representation of one asset visible in the active organization, in either chain family. `assetId` is the asset's identifier in its own family: the contract address of an EVM token, or the `instrumentId` of a Canton instrument. A Canton instrument also needs `instrumentAdmin`, the admin party that completes its key; sending it selects the Canton family. The body is a single-resource envelope discriminated on `family`, whose `links.self` is the canonical v2 URL and carries `instrumentAdmin` when the asset is a Canton instrument. An `assetId` that is neither a contract address nor an instrument id sent with its admin returns 400: the platform does not guess a family. A missing or out-of-scope asset returns 404. An EVM token also carries `details`: its raw supply cap (null when uncapped), burned supply, deployer, compliance and identity registry contracts, the live collateral claim with its expiry, and `mintClosed`, which is true once a mint would be refused. `details` is null for a Canton instrument. The read is indexed and does not change asset state.","summary":"Read an asset","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/metadata":{"get":{"tags":["Tokens"],"operationId":"v2/token/metadata","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true}],"responses":{"200":{"description":"The token's on-chain and off-chain metadata entries, each tagged with `storage`, wrapped in a single-resource envelope. `data.metadata_` is null only when the token has neither a metadata table nor an off-chain entry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenMetadataV2ResponseSchema"},"examples":{"example-1":{"value":{"data":{"family":"evm","metadata_":[{"key":"isin","value":"0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000c4245303030333739363133340000000000000000000000000000000000000000","valueNumber":null,"isImmutable":true,"setAt":"2025-03-04T09:12:41.000Z","storage":"onchain"},{"key":"internalDeskCode","value":"0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000066465736b2d370000000000000000000000000000000000000000000000000000","valueNumber":null,"isImmutable":false,"setAt":"2025-03-05T10:00:00.000Z","storage":"offchain"}]},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/metadata"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_NETWORK_NOT_CONFIGURED","CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"CANTON_NETWORK_NOT_CONFIGURED","status":422,"message":"No Canton participant network is configured","data":{"id":"DALP-9313","why":"This deployment has no Canton participant network, so the platform cannot allocate a party or submit a DAML command.","fix":"Ask an operator to add a Canton network to the platform configuration, then retry.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_READ_DEPENDENCY_FAILED","core.database.QUERY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"core.database.QUERY_FAILED","status":503,"message":"The database is temporarily unavailable","data":{"id":"DALP-12148","why":"The platform could not complete a database query required for this request.","fix":"Retry the request. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns every metadata entry of the selected EVM token: the indexed on-chain entries and the entries its asset-type template stores off-chain. Each entry carries `storage` (`onchain` or `offchain`); an off-chain `value` is ABI-encoded like an on-chain one. The body carries `family: evm`. `metadata_` is null only when the token has neither a metadata table nor an off-chain entry. A Canton-scoped request is refused before any EVM repository runs.","summary":"Read token metadata","x-dalp-auth":"session-or-api-key"},"patch":{"tags":["Token controls"],"operationId":"v2/token/setMetadata","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous mutation result (HTTP 200). The write settled within the request wait window. `data` is the resulting token, `meta.txHashes` lists submitted transactions, and `links.self` is the token URL.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["evm"]},"address":{"$ref":"#/components/schemas/EvmAddress"},"name":{"type":"string"},"symbol":{"type":"string"},"decimals":{"type":"integer"},"assetType":{"$ref":"#/components/schemas/AssetTypeOrSlug"},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"totalSupply":{"$ref":"#/components/schemas/AssetAmount"},"basePrice":{"$ref":"#/components/schemas/BigDecimal"},"basePriceCurrencyCode":{"anyOf":[{"$ref":"#/components/schemas/FiatCurrency"},{"type":"null"}]},"smartInterface":{"anyOf":[{"type":"integer"},{"type":"null"}]},"pausable":{"type":"object","properties":{"paused":{"type":"boolean"}},"required":["paused"],"additionalProperties":false},"logoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"tokenFactory":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"templateLink":{"anyOf":[{"type":"object","properties":{"templateId":{"type":"string","minLength":1},"templateSlug":{"type":"string","minLength":1}},"required":["templateId","templateSlug"],"additionalProperties":false},{"type":"null"}]},"capabilities":{"type":"array","items":{"$ref":"#/components/schemas/InstrumentCapability"},"description":"The token's instrument capabilities: share-capital for shares, unit-capital for fund units and real-estate fractions. They decide which corporate actions the token offers. A token linked to a template carries the capabilities snapshotted from that template when it deployed. A token with no template link gets them derived when it is read, from its asset type and its attached features: equity without an attached conversion feature has share-capital, fund and real-estate have unit-capital, and any other type has none."}},"required":["_tag","address","name","symbol","decimals","assetType","createdAt","totalSupply","basePrice","basePriceCurrencyCode","smartInterface","pausable","logoUrl","tokenFactory","templateLink","capabilities"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["canton"]},"instrumentId":{"type":"string","minLength":1},"instrumentAdmin":{"$ref":"#/components/schemas/CantonPartyId"},"name":{"type":"string"},"symbol":{"type":"string"},"networkIdentity":{"type":"string","minLength":1},"disclosedAmount":{"type":"string","pattern":"^-?(0|[1-9]\\d*)(\\.\\d{1,10})?$"},"disclosedLockedAmount":{"type":"string","pattern":"^-?(0|[1-9]\\d*)(\\.\\d{1,10})?$"},"disclosedHolderCount":{"type":"integer","minimum":0},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["_tag","instrumentId","instrumentAdmin","name","symbol","networkIdentity","disclosedAmount","disclosedLockedAmount","disclosedHolderCount","updatedAt"],"additionalProperties":false}]},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"type":"string","minLength":1}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string","minLength":1}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"_tag":"evm","address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"assetType":"bond","createdAt":"2026-03-04T09:12:41.000Z","totalSupply":"50000000","basePrice":"100.00","basePriceCurrencyCode":"EUR","smartInterface":2,"pausable":{"paused":false},"logoUrl":"https://cdn.example.com/tokens/acme25.png","tokenFactory":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","templateLink":{"templateId":"att_northwind_founder_shares","templateSlug":"corporate-bond"},"capabilities":["share-capital"]},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","TOKEN_METADATA_OFFCHAIN_IMMUTABLE","TOKEN_METADATA_VALUES_INVALID","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_TYPE_TEMPLATE_NOT_FOUND","CONTRACT_ERROR","NOT_FOUND","PRICE_RESOLVER_ADDON_NOT_INSTALLED","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"ASSET_TYPE_TEMPLATE_NOT_FOUND","status":404,"message":"Asset type template not found.","data":{"id":"DALP-0091","why":"The platform searched for the asset type template by the supplied ID and found no record owned by your organization or available as a system template.","fix":"Confirm the ID matches an existing template owned by your organization or a published system template. Re-fetch the list of asset type templates to verify the ID before retrying.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","DURABLE_EXECUTION_ENGINE_CALL_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_MUTATION_INSUFFICIENT_BALANCE","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","ORGANIZATION_SUBMISSION_SIGNER_CLAIM_PURPOSE_MISSING","STRICT_COMPLIANCE_PARAMS_INVALID","SYSTEM_IDENTITY_CLAIM_ISSUE","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_CHAIN_UNAVAILABLE","TOKEN_CLAIM_ISSUE_FAILED","TOKEN_COMPLIANCE_MODULE_BINDING_UNRESOLVED","TOKEN_CREATE_AMBIGUOUS_INTEREST_PROVIDER","TOKEN_CREATE_ASSET_FAMILY_DEPRECATED","TOKEN_CREATE_DUPLICATE","TOKEN_CREATE_RECOVERY_FAILED","TOKEN_FUNDING_PAUSE_FAILED","TOKEN_OPERATION_INPUT_INVALID","TOKEN_PRICE_DENOMINATION_UNUSABLE","TOKEN_PRICE_FEED_FACTORY_MISSING","TOKEN_PRICE_FEED_SIGNER_MISSING","TOKEN_PRICE_INPUT_INVALID","TOKEN_PRICE_UPDATE_FAILED","TOKEN_QUEUE_WRITE_REFUSED","TOKEN_WORKFLOW_FAILED","TOKEN_WRITE_OUTCOME_UNKNOWN","TOKEN_WRITE_RECEIPT_INCOMPLETE","TOKEN_WRITE_REVERTED","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_ACCESS_SYNC_RESULT_UNAVAILABLE","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_WRITE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.erc20_metadata.PROBE_FAILED","dapi.identity.CLAIM_ISSUE_DEPENDENCY_FAILED","dapi.identity.CLAIM_TOPIC_READ_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Writes one or more metadata entries for the selected token in the active organization, stored on-chain and off-chain by template storage. Empty string values are omitted. Immutable keys cannot change after they are set. The platform checks the indexed token first, validates the off-chain values against the template, then submits a live chain transaction for the on-chain keys. By default the platform queues the transaction and answers under status 202. Prefer: wait=<seconds> waits for settlement.","summary":"Set token metadata","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"metadataValues":{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"}]}}},"required":["metadataValues"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"},"delete":{"tags":["Token controls"],"operationId":"v2/token/removeMetadata","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous mutation result (HTTP 200). The write settled within the request wait window. `data` is the resulting token, `meta.txHashes` lists submitted transactions, and `links.self` is the token URL.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["evm"]},"address":{"$ref":"#/components/schemas/EvmAddress"},"name":{"type":"string"},"symbol":{"type":"string"},"decimals":{"type":"integer"},"assetType":{"$ref":"#/components/schemas/AssetTypeOrSlug"},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"totalSupply":{"$ref":"#/components/schemas/AssetAmount"},"basePrice":{"$ref":"#/components/schemas/BigDecimal"},"basePriceCurrencyCode":{"anyOf":[{"$ref":"#/components/schemas/FiatCurrency"},{"type":"null"}]},"smartInterface":{"anyOf":[{"type":"integer"},{"type":"null"}]},"pausable":{"type":"object","properties":{"paused":{"type":"boolean"}},"required":["paused"],"additionalProperties":false},"logoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"tokenFactory":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"templateLink":{"anyOf":[{"type":"object","properties":{"templateId":{"type":"string","minLength":1},"templateSlug":{"type":"string","minLength":1}},"required":["templateId","templateSlug"],"additionalProperties":false},{"type":"null"}]},"capabilities":{"type":"array","items":{"$ref":"#/components/schemas/InstrumentCapability"},"description":"The token's instrument capabilities: share-capital for shares, unit-capital for fund units and real-estate fractions. They decide which corporate actions the token offers. A token linked to a template carries the capabilities snapshotted from that template when it deployed. A token with no template link gets them derived when it is read, from its asset type and its attached features: equity without an attached conversion feature has share-capital, fund and real-estate have unit-capital, and any other type has none."}},"required":["_tag","address","name","symbol","decimals","assetType","createdAt","totalSupply","basePrice","basePriceCurrencyCode","smartInterface","pausable","logoUrl","tokenFactory","templateLink","capabilities"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["canton"]},"instrumentId":{"type":"string","minLength":1},"instrumentAdmin":{"$ref":"#/components/schemas/CantonPartyId"},"name":{"type":"string"},"symbol":{"type":"string"},"networkIdentity":{"type":"string","minLength":1},"disclosedAmount":{"type":"string","pattern":"^-?(0|[1-9]\\d*)(\\.\\d{1,10})?$"},"disclosedLockedAmount":{"type":"string","pattern":"^-?(0|[1-9]\\d*)(\\.\\d{1,10})?$"},"disclosedHolderCount":{"type":"integer","minimum":0},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["_tag","instrumentId","instrumentAdmin","name","symbol","networkIdentity","disclosedAmount","disclosedLockedAmount","disclosedHolderCount","updatedAt"],"additionalProperties":false}]},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"type":"string","minLength":1}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string","minLength":1}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"_tag":"evm","address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"assetType":"bond","createdAt":"2026-03-04T09:12:41.000Z","totalSupply":"50000000","basePrice":"100.00","basePriceCurrencyCode":"EUR","smartInterface":2,"pausable":{"paused":false},"logoUrl":"https://cdn.example.com/tokens/acme25.png","tokenFactory":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","templateLink":{"templateId":"att_northwind_founder_shares","templateSlug":"corporate-bond"},"capabilities":["share-capital"]},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","TOKEN_METADATA_OFFCHAIN_IMMUTABLE","TOKEN_METADATA_VALUES_INVALID","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_TYPE_TEMPLATE_NOT_FOUND","CONTRACT_ERROR","NOT_FOUND","PRICE_RESOLVER_ADDON_NOT_INSTALLED","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"ASSET_TYPE_TEMPLATE_NOT_FOUND","status":404,"message":"Asset type template not found.","data":{"id":"DALP-0091","why":"The platform searched for the asset type template by the supplied ID and found no record owned by your organization or available as a system template.","fix":"Confirm the ID matches an existing template owned by your organization or a published system template. Re-fetch the list of asset type templates to verify the ID before retrying.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","DURABLE_EXECUTION_ENGINE_CALL_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_MUTATION_INSUFFICIENT_BALANCE","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","ORGANIZATION_SUBMISSION_SIGNER_CLAIM_PURPOSE_MISSING","STRICT_COMPLIANCE_PARAMS_INVALID","SYSTEM_IDENTITY_CLAIM_ISSUE","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_CHAIN_UNAVAILABLE","TOKEN_CLAIM_ISSUE_FAILED","TOKEN_COMPLIANCE_MODULE_BINDING_UNRESOLVED","TOKEN_CREATE_AMBIGUOUS_INTEREST_PROVIDER","TOKEN_CREATE_ASSET_FAMILY_DEPRECATED","TOKEN_CREATE_DUPLICATE","TOKEN_CREATE_RECOVERY_FAILED","TOKEN_FUNDING_PAUSE_FAILED","TOKEN_OPERATION_INPUT_INVALID","TOKEN_PRICE_DENOMINATION_UNUSABLE","TOKEN_PRICE_FEED_FACTORY_MISSING","TOKEN_PRICE_FEED_SIGNER_MISSING","TOKEN_PRICE_INPUT_INVALID","TOKEN_PRICE_UPDATE_FAILED","TOKEN_QUEUE_WRITE_REFUSED","TOKEN_WORKFLOW_FAILED","TOKEN_WRITE_OUTCOME_UNKNOWN","TOKEN_WRITE_RECEIPT_INCOMPLETE","TOKEN_WRITE_REVERTED","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_ACCESS_SYNC_RESULT_UNAVAILABLE","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_WRITE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.erc20_metadata.PROBE_FAILED","dapi.identity.CLAIM_ISSUE_DEPENDENCY_FAILED","dapi.identity.CLAIM_TOPIC_READ_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Removes one mutable metadata entry from the selected token, stored on-chain and off-chain by template storage. Immutable keys cannot be removed, and a required off-chain key is refused because the token would no longer satisfy its template. The platform checks the indexed token first, then submits a live chain transaction for an on-chain key. By default the platform queues the transaction and answers under status 202. Prefer: wait=<seconds> waits for settlement.","summary":"Remove token metadata","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"metadataKey":{"type":"string","minLength":1,"maxLength":200}},"required":["metadataKey"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/holders":{"get":{"tags":["Tokens"],"operationId":"v2/token/holders","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"instrumentAdmin","in":"query","schema":{"type":"string","minLength":1,"description":"Canton external party identifier"},"required":false},{"name":"sort","in":"query","schema":{"type":"string"},"required":false},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"type":"integer"},"limit":{"type":"integer"}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"filter","in":"query","schema":{"type":"object","properties":{"accountAddress":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true}],"responses":{"200":{"description":"One page of holders for the selected asset. `meta.total` counts every matching holder, not only this page. For a Canton instrument the total counts the holders the ledger discloses to the calling organization, which is never a ledger-wide holder count. Every pagination link repeats `instrumentAdmin` when the asset is a Canton instrument, so a client can page without rebuilding the asset's key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HoldersV2OutputSchema"},"examples":{"example-1":{"value":{"data":[{"_tag":"evm","account":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","balance":{"total":"1","frozen":"0","available":"900000000","isFrozen":false},"lastUpdatedAt":"2026-03-11T16:02:08.000Z"}],"meta":{"total":12},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/holders?sort=-lastUpdatedAt&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/holders?sort=-lastUpdatedAt&page%5Boffset%5D=0&page%5Blimit%5D=50","last":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/holders?sort=-lastUpdatedAt&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_FILTER_FAMILY_MISMATCH","ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_FILTER_FAMILY_MISMATCH","status":400,"message":"Filter names a column the asset's chain family does not have","data":{"id":"DALP-9324","why":"A shared collection under one asset, its holders or its events, advertises both families' columns, and the asset decides which family answers. The filter names a column from the other family, and the answering family has no such column to evaluate it against. The refusal names the field, the family, and the columns that family does publish on the collection that was read.","fix":"Filter on a column the named asset's family has, or read the asset in the family whose columns you are filtering on.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_NETWORK_NOT_CONFIGURED","CONTRACT_ERROR"]}},"required":["code"]}],"examples":[{"code":"CANTON_NETWORK_NOT_CONFIGURED","status":422,"message":"No Canton participant network is configured","data":{"id":"DALP-9313","why":"This deployment has no Canton participant network, so the platform cannot allocate a party or submit a DAML command.","fix":"Ask an operator to add a Canton network to the platform configuration, then retry.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_READ_DEPENDENCY_FAILED","core.database.QUERY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"core.database.QUERY_FAILED","status":503,"message":"The database is temporarily unavailable","data":{"id":"DALP-12148","why":"The platform could not complete a database query required for this request.","fix":"Retry the request. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of holders for the selected asset, in either chain family. The asset is named exactly as it is for the asset read: `assetId` is a contract address for an EVM token, or a Canton `instrumentId` sent together with the `instrumentAdmin` that completes its key. Every row carries `family`: an `evm` row is an account balance with `available`, `frozen`, and `transferableBalance`, and a `canton` row is one party's rollup of its holdings in the instrument. Page, filter, and sort with the shared collection parameters; default sort is last update descending. Filters are family-specific, and one that names the other family's column returns 400 rather than an emptier page. `transferableBalance` excludes principal already converted when a conversion feature is attached. Every pagination link repeats `instrumentAdmin` for a Canton instrument. The list is indexed. Repeat the same query to refresh the page.","summary":"List asset holders","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/holder-balances":{"get":{"tags":["Tokens"],"operationId":"v2/token/holder","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"holderAddress","in":"query","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true}],"responses":{"200":{"description":"The holder balance for the requested address, wrapped in a single-resource envelope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenHolderV2ResponseSchema"},"examples":{"example-1":{"value":{"data":{"family":"evm","holder":{"_tag":"evm","account":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","balance":{"total":"1","frozen":"0","available":"900000000","isFrozen":false},"lastUpdatedAt":"2026-03-11T16:02:08.000Z"}},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/holder-balances?holderAddress=0x8ba1f109551bD432803012645Ac136ddd64DBA72"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_NETWORK_NOT_CONFIGURED","CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"CANTON_NETWORK_NOT_CONFIGURED","status":422,"message":"No Canton participant network is configured","data":{"id":"DALP-9313","why":"This deployment has no Canton participant network, so the platform cannot allocate a party or submit a DAML command.","fix":"Ask an operator to add a Canton network to the platform configuration, then retry.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_READ_DEPENDENCY_FAILED","core.database.QUERY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"core.database.QUERY_FAILED","status":503,"message":"The database is temporarily unavailable","data":{"id":"DALP-12148","why":"The platform could not complete a database query required for this request.","fix":"Retry the request. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns available, frozen, and total balances for one holder of the selected EVM token. The body carries `family: evm`. Name the holder as `holderAddress`. Spend checks must read `available`, not `value`. A wallet with no indexed balance returns a null `holder`. A Canton-scoped request is refused before any EVM repository runs.","summary":"Read a token holder balance","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/allowances":{"get":{"tags":["Tokens"],"operationId":"v2/token/allowance","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"instrumentAdmin","in":"query","schema":{"type":"string","minLength":1,"description":"Canton external party identifier"},"required":false},{"name":"owner","in":"query","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":false},{"name":"spender","in":"query","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":false},{"name":"filter","in":"query","schema":{"type":"object","properties":{"kind":{"type":"string","enum":["allowance","book"]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true}],"responses":{"200":{"description":"The allowance answer: a single-resource envelope for one owner and spender, or, under `filter[kind]=book` on a Canton instrument, one page of allowance rows.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenAllowanceV2OutputSchema"},"examples":{"example-1":{"value":{"data":{"owner":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30","spender":"0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC","amount":"10000","lastUpdatedAt":"2026-03-11T16:02:08.000Z"},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_FILTER_FAMILY_MISMATCH","ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_FILTER_FAMILY_MISMATCH","status":400,"message":"Filter names a column the asset's chain family does not have","data":{"id":"DALP-9324","why":"A shared collection under one asset, its holders or its events, advertises both families' columns, and the asset decides which family answers. The filter names a column from the other family, and the answering family has no such column to evaluate it against. The refusal names the field, the family, and the columns that family does publish on the collection that was read.","fix":"Filter on a column the named asset's family has, or read the asset in the family whose columns you are filtering on.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_NETWORK_NOT_CONFIGURED","CONTRACT_ERROR"]}},"required":["code"]}],"examples":[{"code":"CANTON_NETWORK_NOT_CONFIGURED","status":422,"message":"No Canton participant network is configured","data":{"id":"DALP-9313","why":"This deployment has no Canton participant network, so the platform cannot allocate a party or submit a DAML command.","fix":"Ask an operator to add a Canton network to the platform configuration, then retry.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_READ_DEPENDENCY_FAILED","core.database.QUERY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"core.database.QUERY_FAILED","status":503,"message":"The database is temporarily unavailable","data":{"id":"DALP-12148","why":"The platform could not complete a database query required for this request.","fix":"Retry the request. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the allowance one owner has granted one spender on the selected asset, in either chain family. The asset is named exactly as it is for the asset read: `assetId` is a contract address for an EVM token, or a Canton `instrumentId` sent together with the `instrumentAdmin` that completes its key. `owner` and `spender` follow the asset: wallet addresses on an EVM token, parties on a Canton instrument. The body carries `family`: an `evm` allowance is a scaled scalar with `value` and `valueExact`, a `canton` allowance is a ledger contract with its own `contractId`, `approvedAmount`, and `remainingAmount`. When none is indexed, `allowance` is null. A Canton instrument also has one allowance *book*, the contract its allowance grants address: `filter[kind]=book` reads it, answers one page of allowance rows, and names no owner or spender, because a book is the container rather than a grant. That filter is Canton-only, so an EVM asset answers 400 rather than an empty page. The read is indexed and does not change approvals.","summary":"Read an asset allowance","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/holdings":{"get":{"tags":["Tokens"],"operationId":"v2/token/holdings","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"instrumentAdmin","in":"query","schema":{"type":"string","minLength":1,"description":"Canton external party identifier"},"required":false},{"name":"sort","in":"query","schema":{"type":"string"},"required":false},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"type":"integer"},"limit":{"type":"integer"}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1},"assetType":{"type":"string","enum":["bond","equity","fund","stablecoin","deposit","real-estate","precious-metal"],"description":"Type of financial asset"},"symbol":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"createdAt":{"type":"string","minLength":1},"contractId":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"ownerParty":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"providerParty":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"accountId":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"amount":{"anyOf":[{"type":"string","pattern":"^-?\\d+$","maxLength":80},{"type":"object","properties":{"eq":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"ne":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"gte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"between":{"type":"string","maxLength":161},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"locked":{"anyOf":[{"type":"string","enum":["true","false"]},{"type":"object","properties":{"eq":{"type":"string","enum":["true","false"]},"ne":{"type":"string","enum":["true","false"]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]}},"additionalProperties":false}]},"createdOffset":{"anyOf":[{"type":"string","pattern":"^-?\\d+$","maxLength":80},{"type":"object","properties":{"eq":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"ne":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"gte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"between":{"type":"string","maxLength":161},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"recordTime":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true}],"responses":{"200":{"description":"One page of holdings for the selected asset, in either chain family. `meta.total` counts every matching holding, not only this page. An EVM token's holdings are the assets its treasury holds a balance in, ordered by held balance by default; a Canton instrument's are its live holding contracts, ordered by creation offset by default. Every pagination link repeats `instrumentAdmin` when the asset is a Canton instrument.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HoldingsV2OutputSchema"},"examples":{"example-1":{"value":{"data":[{"family":"canton","networkIdentity":"canton-local","contractId":"00a1b2c3d4e5f60718293a4b5c6d7e8f90a1b2c3d4e5f60718293a4b5c6d7e8f90","instrumentAdmin":"Canton::1220abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123","instrumentId":"NWC","ownerParty":"Canton::1220fedcba9876543210fedcba9876543210fedcba9876543210fedcba987654","providerParty":"Canton::12200f1e2d3c4b5a69788796a5b4c3d2e1f00f1e2d3c4b5a69788796a5b4c3d2e1","accountId":"treasury-main","amount":"1000","locked":false,"lockHolders":[],"lockExpiresAt":null,"createdOffset":"10427","updateId":"1220aabbccddeeff00112233445566778899aabbccddeeff0011223344556677","recordTime":"2026-08-21T09:15:00.000Z"}],"meta":{"total":1},"links":{"self":"/api/v2/tokens/NWC/holdings?sort=-createdOffset&page%5Boffset%5D=0&page%5Blimit%5D=50&instrumentAdmin=Canton%3A%3A1220abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123","first":"/api/v2/tokens/NWC/holdings?sort=-createdOffset&page%5Boffset%5D=0&page%5Blimit%5D=50&instrumentAdmin=Canton%3A%3A1220abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123","prev":null,"next":null,"last":"/api/v2/tokens/NWC/holdings?sort=-createdOffset&page%5Boffset%5D=0&page%5Blimit%5D=50&instrumentAdmin=Canton%3A%3A1220abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_FILTER_FAMILY_MISMATCH","ASSET_REFERENCE_INVALID","ASSET_SORT_FAMILY_MISMATCH","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","TOKEN_LIST_FILTER_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_FILTER_FAMILY_MISMATCH","status":400,"message":"Filter names a column the asset's chain family does not have","data":{"id":"DALP-9324","why":"A shared collection under one asset, its holders or its events, advertises both families' columns, and the asset decides which family answers. The filter names a column from the other family, and the answering family has no such column to evaluate it against. The refusal names the field, the family, and the columns that family does publish on the collection that was read.","fix":"Filter on a column the named asset's family has, or read the asset in the family whose columns you are filtering on.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_NETWORK_NOT_CONFIGURED","CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"CANTON_NETWORK_NOT_CONFIGURED","status":422,"message":"No Canton participant network is configured","data":{"id":"DALP-9313","why":"This deployment has no Canton participant network, so the platform cannot allocate a party or submit a DAML command.","fix":"Ask an operator to add a Canton network to the platform configuration, then retry.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_READ_DEPENDENCY_FAILED","core.database.QUERY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"core.database.QUERY_FAILED","status":503,"message":"The database is temporarily unavailable","data":{"id":"DALP-12148","why":"The platform could not complete a database query required for this request.","fix":"Retry the request. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of holdings for the selected asset, in either chain family. The asset is named exactly as it is for the asset read: `assetId` is a contract address for an EVM token, or a Canton `instrumentId` sent together with the `instrumentAdmin` that completes its key. Every row carries `family`: an `evm` row is an asset the token's treasury holds a balance in, with the held `balance` and its base-currency value, and a `canton` row is one live holding contract of the ledger instrument, with its owner party, provider party, account, amount and lock state. Page, filter, and sort with the shared collection parameters; the EVM default is held balance descending and the Canton default is creation offset descending. Filters and sorts are family-specific, and one that names the other family's column returns 400 rather than an emptier page or an ordering the caller did not name. Every pagination link repeats `instrumentAdmin` for a Canton instrument. The list is indexed. Repeat the same query to refresh the page.","summary":"List token holdings","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/treasury/health":{"get":{"tags":["Token features"],"operationId":"v2/token/treasuryHealth","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true}],"responses":{"200":{"description":"Treasury coverage for the token. Approval ceilings come from the index. `availableBalance` is a live denomination-asset balance. Status is green, yellow, or red.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TreasuryHealthResponseSchema"},"examples":{"example-1":{"value":{"data":{"status":"yellow","availableBalance":"240000000.00","requiredBalance":"125000.00"},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/treasury/health"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","TOKEN_LIST_METADATA_KEY_IDENTIFIER_INELIGIBLE","TOKEN_LIST_METADATA_KEY_NOT_BUCKETABLE","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND","TREASURY_HEALTH_TREASURY_UNCONFIGURED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TREASURY_HEALTH_TREASURY_MISMATCH"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_FEATURES_UNAVAILABLE","TOKEN_READ_DEPENDENCY_FAILED","TREASURY_HEALTH_BOND_STATUS_UNAVAILABLE","core.database.QUERY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"core.database.QUERY_FAILED","status":503,"message":"The database is temporarily unavailable","data":{"id":"DALP-12148","why":"The platform could not complete a database query required for this request.","fix":"Retry the request. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns treasury coverage for the selected token. Approval ceilings come from the index. `availableBalance` is a live denomination-asset balance of the configured treasury. Status is `green`, `yellow`, or `red`. A token without a configured treasury returns 404. Repeat the call to refresh the live balance.","summary":"Read treasury health","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/historical-balances":{"get":{"tags":["Token statistics"],"operationId":"v2/token/historicalBalances","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"sort","in":"query","schema":{"type":"string"},"required":false},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"type":"integer"},"limit":{"type":"integer"}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"filter","in":"query","schema":{"type":"object","properties":{"account":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"kind":{"type":"string","enum":["account","totalSupply"]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true}],"responses":{"200":{"description":"One page of indexed historical-balance checkpoints. Filter `account` and `kind` only with `eq`. Default sort is block number descending.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenHistoricalBalancesV2OutputSchema"},"examples":{"example-1":{"value":{"data":[{"family":"evm","id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F-0x8ba1f109551bD432803012645Ac136ddd64DBA72-21450881-3","account":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","kind":"account","sender":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30","oldBalance":"0","oldBalanceExact":"0","newBalance":"25000.00","newBalanceExact":"25000000000000000000000","blockNumber":"21450881","blockTimestamp":"2026-03-04T09:12:41.000Z","txHash":"0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24","logIndex":3}],"meta":{"total":1},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/historical-balances?sort=-blockNumber&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/historical-balances?sort=-blockNumber&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/historical-balances?sort=-blockNumber&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_INDEXER_TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_HISTORICAL_BALANCE_BLOCK_NOT_INDEXED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_FEATURES_UNAVAILABLE","TOKEN_READ_DEPENDENCY_FAILED","core.database.QUERY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"core.database.QUERY_FAILED","status":503,"message":"The database is temporarily unavailable","data":{"id":"DALP-12148","why":"The platform could not complete a database query required for this request.","fix":"Retry the request. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of indexed historical-balance checkpoints for the selected token. Each row is an account or total-supply change at a block. The token must have the historical-balances feature attached; otherwise the page is empty. Filter `account` and `kind` only with `eq`. Default sort is block number descending.","summary":"List historical balances","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/historical-balances/balance-at-block":{"get":{"tags":["Token statistics"],"operationId":"v2/token/historicalBalanceAtBlock","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"account","in":"query","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"name":"timepoint","in":"query","schema":{"type":"string","pattern":"^-?\\d+$"},"required":true},{"name":"strict","in":"query","schema":{"type":"boolean"},"required":false}],"responses":{"200":{"description":"Live historical-balances feature read for one holder and the token total supply at the requested timepoint. Null when the feature is not attached.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenHistoricalBalanceAtBlockV2OutputSchema"},"examples":{"example-1":{"value":{"data":{"account":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","balance":"25000.00","balanceExact":"25000000000000000000000","totalSupply":"2500000.00","totalSupplyExact":"2500000000000000000000000","timepoint":"1741079561","featureAddress":"0xa513E6E4b8f2a923D98304ec87F64353C4D5C853"},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/historical-balances/balance-at-block?account=0x8ba1f109551bD432803012645Ac136ddd64DBA72&timepoint=1741079561"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_INDEXER_TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_HISTORICAL_BALANCE_BLOCK_NOT_INDEXED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_FEATURES_UNAVAILABLE","TOKEN_READ_DEPENDENCY_FAILED","core.database.QUERY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"core.database.QUERY_FAILED","status":503,"message":"The database is temporarily unavailable","data":{"id":"DALP-12148","why":"The platform could not complete a database query required for this request.","fix":"Retry the request. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Reads the historical-balances feature on the active chain and returns one holder's balance and the token total supply at the requested timepoint. The token must have that feature attached. When `strict` is true (the default), a timepoint before tracking started fails. This is a live feature read, not an index page.","summary":"Read a historical balance","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/historical-balances/holders-at-block":{"get":{"tags":["Token statistics"],"operationId":"v2/token/historicalHoldersAtBlock","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"sort","in":"query","schema":{"type":"string"},"required":false},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"type":"integer"},"limit":{"type":"integer"}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"timepoint","in":"query","schema":{"type":"string","pattern":"^-?\\d+$"},"required":true},{"name":"strict","in":"query","schema":{"type":"boolean"},"required":false}],"responses":{"200":{"description":"One page of holder balances at the requested timepoint. Holder rows come from indexed checkpoints. When `strict` is true, the platform first checks the feature on chain.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenHistoricalHoldersAtBlockV2OutputSchema"},"examples":{"example-1":{"value":{"data":[{"family":"evm","account":{"id":"0x8ba1f109551bD432803012645Ac136ddd64DBA72"},"available":"25000.00","frozen":"0","isFrozen":false,"value":"25000.00","lastUpdatedAt":"2026-03-11T16:02:08.000Z"}],"meta":{"total":1},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/historical-balances/holders-at-block?timepoint=1741079561&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/historical-balances/holders-at-block?timepoint=1741079561&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/historical-balances/holders-at-block?timepoint=1741079561&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_INDEXER_TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_HISTORICAL_BALANCE_BLOCK_NOT_INDEXED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_FEATURES_UNAVAILABLE","TOKEN_READ_DEPENDENCY_FAILED","core.database.QUERY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"core.database.QUERY_FAILED","status":503,"message":"The database is temporarily unavailable","data":{"id":"DALP-12148","why":"The platform could not complete a database query required for this request.","fix":"Retry the request. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of holder balances at the requested historical-balances timepoint. Holder rows come from indexed checkpoints. When `strict` is true, the platform first checks the feature on chain and rejects a timepoint before tracking started. The token must have historical balances attached.","summary":"List historical holders","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/historical-balances/{holderAddress}":{"get":{"tags":["Token statistics"],"operationId":"v2/token/historicalBalanceAtBlockByHolder","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"holderAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"name":"atBlock","in":"query","schema":{"type":"string","pattern":"^-?\\d+$"},"required":true}],"responses":{"200":{"description":"Indexed holder balance at or before the requested block. When no checkpoint exists, the balance is zero and the as-of transaction fields are null.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenHistoricalBalanceAtBlockByHolderV2OutputSchema"},"examples":{"example-1":{"value":{"data":{"family":"evm","tokenAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","holderAddress":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","balance":"25000.00","balanceExact":"25000000000000000000000","asOfBlockNumber":"21450881","asOfBlockTimestamp":"2026-03-04T09:12:41.000Z","asOfTxHash":"0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24","asOfLogIndex":3,"requestedBlock":"21450881"},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/historical-balances/0x8ba1f109551bD432803012645Ac136ddd64DBA72?atBlock=21450881"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_INDEXER_TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_HISTORICAL_BALANCE_BLOCK_NOT_INDEXED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_READ_DEPENDENCY_FAILED","core.database.QUERY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"core.database.QUERY_FAILED","status":503,"message":"The database is temporarily unavailable","data":{"id":"DALP-12148","why":"The platform could not complete a database query required for this request.","fix":"Retry the request. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the indexed balance of one holder at or before the requested block. Name the holder in the path and the block as `atBlock`. When no checkpoint exists at or before that block, the balance is zero and the as-of transaction fields are null. The token must have historical balances attached. A block the index has not reached returns 409.","summary":"Read a historical holder balance","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/events":{"get":{"tags":["Tokens"],"operationId":"v2/token/events","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"instrumentAdmin","in":"query","schema":{"type":"string","minLength":1,"description":"Canton external party identifier"},"required":false},{"name":"sort","in":"query","schema":{"type":"string"},"required":false},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"type":"integer"},"limit":{"type":"integer"}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"filter","in":"query","schema":{"type":"object","properties":{"eventName":{"type":"string","minLength":1},"walletAddress":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"transactionHash":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"projectionFamily":{"type":"string","minLength":1},"action":{"type":"string","minLength":1},"fromParty":{"type":"string","minLength":1,"description":"Canton external party identifier"},"toParty":{"type":"string","minLength":1,"description":"Canton external party identifier"},"amount":{"type":"string"},"ledgerOffset":{"type":"string"},"recordTime":{"type":"string"}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true}],"responses":{"200":{"description":"One page of indexed events for the selected asset, in either chain family. `meta.total` counts every matching event, not only this page. An EVM token's events order on block time; a Canton instrument's order on its ledger offset, and `links` publish the `sort` that ordered the page. Every pagination link repeats `instrumentAdmin` when the asset is a Canton instrument.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenEventsV2OutputSchema"},"examples":{"example-1":{"value":{"data":[{"family":"evm","id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F-42-3","eventName":"Transfer","txIndex":"3","blockNumber":"21450881","blockTimestamp":"2026-03-04T09:12:41.000Z","transactionHash":"0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24","emitter":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"},"sender":{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"},"metaTxSigner":null,"displaySender":{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"},"relayerKind":null,"relayer":null,"userOpHash":null,"involved":[{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"},{"id":"0x8ba1f109551bD432803012645Ac136ddd64DBA72"}],"values":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F-42-3-from","name":"from","value":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"},{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F-42-3-to","name":"to","value":"0x8ba1f109551bD432803012645Ac136ddd64DBA72"},{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F-42-3-value","name":"value","value":"25000000000000000000000"}]}],"meta":{"total":1},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/events?sort=-blockTimestamp&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/events?sort=-blockTimestamp&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/events?sort=-blockTimestamp&page%5Boffset%5D=0&page%5Blimit%5D=50"}}},"example-2":{"value":{"data":[{"family":"canton","id":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6c","networkIdentity":"canton-local","ledgerOffset":"10427","updateId":"1220aabbccddeeff00112233445566778899aabbccddeeff0011223344556677","nodeId":0,"projectionFamily":"holdings","action":"transfer","contractId":"00a1b2c3d4e5f60718293a4b5c6d7e8f90a1b2c3d4e5f60718293a4b5c6d7e8f90","instrumentAdmin":"Canton::1220abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123","instrumentId":"NWC","fromParty":"Canton::1220abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123","toParty":"Canton::1220fedcba9876543210fedcba9876543210fedcba9876543210fedcba987654","amount":"1000","recordTime":"2026-08-21T09:15:00.000Z"}],"meta":{"total":1},"links":{"self":"/api/v2/tokens/NWC/events?sort=-ledgerOffset&page%5Boffset%5D=0&page%5Blimit%5D=50&instrumentAdmin=Canton%3A%3A1220abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123","first":"/api/v2/tokens/NWC/events?sort=-ledgerOffset&page%5Boffset%5D=0&page%5Blimit%5D=50&instrumentAdmin=Canton%3A%3A1220abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123","prev":null,"next":null,"last":"/api/v2/tokens/NWC/events?sort=-ledgerOffset&page%5Boffset%5D=0&page%5Blimit%5D=50&instrumentAdmin=Canton%3A%3A1220abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_FILTER_FAMILY_MISMATCH","ASSET_REFERENCE_INVALID","ASSET_SORT_FAMILY_MISMATCH","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_FILTER_FAMILY_MISMATCH","status":400,"message":"Filter names a column the asset's chain family does not have","data":{"id":"DALP-9324","why":"A shared collection under one asset, its holders or its events, advertises both families' columns, and the asset decides which family answers. The filter names a column from the other family, and the answering family has no such column to evaluate it against. The refusal names the field, the family, and the columns that family does publish on the collection that was read.","fix":"Filter on a column the named asset's family has, or read the asset in the family whose columns you are filtering on.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_NETWORK_NOT_CONFIGURED","CONTRACT_ERROR","INPUT_VALIDATION_FAILED","OPERATION_FAMILY_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"CANTON_NETWORK_NOT_CONFIGURED","status":422,"message":"No Canton participant network is configured","data":{"id":"DALP-9313","why":"This deployment has no Canton participant network, so the platform cannot allocate a party or submit a DAML command.","fix":"Ask an operator to add a Canton network to the platform configuration, then retry.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_READ_DEPENDENCY_FAILED","core.database.QUERY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"core.database.QUERY_FAILED","status":503,"message":"The database is temporarily unavailable","data":{"id":"DALP-12148","why":"The platform could not complete a database query required for this request.","fix":"Retry the request. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of indexed events for the selected asset, in either chain family. The asset is named exactly as it is for the asset read: `assetId` is a contract address for an EVM token, or a Canton `instrumentId` sent together with the `instrumentAdmin` that completes its key. Every row carries `family`: an `evm` row is an indexed contract event named by a block number, a transaction hash, and a log index, and a `canton` row is a ledger event named by a ledger offset, an update id, and a node index. Page, filter, and sort with the shared collection parameters. An EVM token's events order on block time and page on `(blockNumber, txIndex)`; a Canton instrument's events order on `ledgerOffset` and page on `(ledgerOffset, nodeId)`, because a ledger offset is not a block number and the two cursors do not transfer. Filters and sorts are family-specific; a filter or a `sort` naming the other family's column returns 400 rather than an emptier page or an ordering the caller did not name. Omit `sort` to take the answering family's own ordering, and read the `sort` the response links publish to see which column produced the page. Every pagination link repeats `instrumentAdmin` for a Canton instrument. The list is indexed. Repeat the same query to refresh the page.","summary":"List token events","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/maturity-redemption/redemption-events":{"get":{"tags":["Token features"],"operationId":"v2/token/maturityRedemptionEvents","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"sort","in":"query","schema":{"type":"string"},"required":false},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"type":"integer"},"limit":{"type":"integer"}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true}],"responses":{"200":{"description":"One page of indexed maturity-redemption events. Each row is a holder redemption with the redeemed token amount and the denomination payout. Default sort is redemption time descending.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenMaturityRedemptionEventsV2OutputSchema"},"examples":{"example-1":{"value":{"data":[],"meta":{"total":1},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/maturity-redemption/redemption-events?sort=-redeemedAt&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/maturity-redemption/redemption-events?sort=-redeemedAt&page%5Boffset%5D=0&page%5Blimit%5D=50","last":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/maturity-redemption/redemption-events?sort=-redeemedAt&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","TOKEN_LIST_METADATA_KEY_IDENTIFIER_INELIGIBLE","TOKEN_LIST_METADATA_KEY_NOT_BUCKETABLE","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_FEATURES_UNAVAILABLE","TOKEN_READ_DEPENDENCY_FAILED","core.database.QUERY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"core.database.QUERY_FAILED","status":503,"message":"The database is temporarily unavailable","data":{"id":"DALP-12148","why":"The platform could not complete a database query required for this request.","fix":"Retry the request. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of indexed maturity-redemption events for the selected token. Each row is a holder redemption with the redeemed token amount and the denomination payout. Page and filter with the shared collection parameters. Default sort is redemption time descending.","summary":"List maturity-redemption events","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/stats/bond-status":{"get":{"tags":["Token statistics"],"operationId":"v2/token/bondStatus","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true}],"responses":{"200":{"description":"Indexed bond solvency snapshot, wrapped in a single-resource envelope. When `solvencyKnown` is false, the coverage fields are placeholders.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatsBondStatusOutputSchema"},"examples":{"example-1":{"value":{"data":{"denominationAssetBalanceAvailable":"240000000.00","denominationAssetBalanceRequired":"250000000.00","coveredPercentage":"96.00","denominationAssetTreasuryAllowance":"250000000.00","allowanceCoveredPercentage":"100.00","treasuryIsContract":false,"treasuryAddress":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30","featureAddress":"0x8A791620dd6260079BF849Dc5567aDC3F2FdC318","solvencyKnown":true},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/stats/bond-status"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","TOKEN_LIST_METADATA_KEY_IDENTIFIER_INELIGIBLE","TOKEN_LIST_METADATA_KEY_NOT_BUCKETABLE","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_FEATURES_UNAVAILABLE","TOKEN_READ_DEPENDENCY_FAILED","core.database.QUERY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"core.database.QUERY_FAILED","status":503,"message":"The database is temporarily unavailable","data":{"id":"DALP-12148","why":"The platform could not complete a database query required for this request.","fix":"Retry the request. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns denomination-asset coverage, treasury allowance, and solvency readiness for the selected bond, wrapped in a single-resource envelope. `solvencyKnown` is false while the indexer has not computed the row; do not treat those zeros as an empty treasury. The read is indexed. Repeat the same request after a treasury approval to refresh the snapshot.","summary":"Read token bond status","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/stats/collateral-ratio":{"get":{"tags":["Token statistics"],"operationId":"v2/token/collateralRatio","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true}],"responses":{"200":{"description":"Indexed collateral coverage plus utilization, wrapped in a single-resource envelope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatsCollateralRatioV2OutputSchema"},"examples":{"example-1":{"value":{"data":{"buckets":[{"name":"available","value":"1250000.00"},{"name":"used","value":"250000.00"}],"totalCollateral":"1250000.00","requiredCollateral":"250000.00","mintableSupply":"10000000.00","collateralizationPercentage":500,"configuredCollateralRatioBps":2500,"parity_confidence":"high","utilizationPercentage":20},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/stats/collateral-ratio"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","TOKEN_LIST_METADATA_KEY_IDENTIFIER_INELIGIBLE","TOKEN_LIST_METADATA_KEY_NOT_BUCKETABLE","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_FEATURES_UNAVAILABLE","TOKEN_READ_DEPENDENCY_FAILED","core.database.QUERY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"core.database.QUERY_FAILED","status":503,"message":"The database is temporarily unavailable","data":{"id":"DALP-12148","why":"The platform could not complete a database query required for this request.","fix":"Retry the request. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns current collateral coverage for the selected token, including utilization and a parity-confidence flag the v1 body does not carry. The read is indexed. Use this before a mint that depends on remaining collateral capacity.","summary":"Read token collateral ratio","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/stats/supply-changes":{"get":{"tags":["Token statistics"],"operationId":"v2/token/supplyChanges","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"days","in":"query","schema":{"type":"integer"},"required":false}],"responses":{"200":{"description":"Indexed mint and burn series for the requested day window, wrapped in a single-resource envelope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatsSupplyChangesV2OutputSchema"},"examples":{"example-1":{"value":{"data":{"family":"evm","supplyChangesHistory":[{"timestamp":"2026-03-04T09:12:41.000Z","totalMinted":"2500000.00","totalBurned":"0"},{"timestamp":"2026-03-11T16:02:08.000Z","totalMinted":"2500000.00","totalBurned":"0"}]},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/stats/supply-changes?days=30"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_NETWORK_NOT_CONFIGURED","CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"CANTON_NETWORK_NOT_CONFIGURED","status":422,"message":"No Canton participant network is configured","data":{"id":"DALP-9313","why":"This deployment has no Canton participant network, so the platform cannot allocate a party or submit a DAML command.","fix":"Ask an operator to add a Canton network to the platform configuration, then retry.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_READ_DEPENDENCY_FAILED","core.database.QUERY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"core.database.QUERY_FAILED","status":503,"message":"The database is temporarily unavailable","data":{"id":"DALP-12148","why":"The platform could not complete a database query required for this request.","fix":"Retry the request. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns indexed EVM mint and burn totals for the selected token over the requested day window. The body carries `family: evm`. A Canton-scoped request is refused before any EVM repository runs.","summary":"Read token supply changes","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/stats/total-supply":{"get":{"tags":["Token statistics"],"operationId":"v2/token/totalSupply","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"days","in":"query","schema":{"type":"integer"},"required":false}],"responses":{"200":{"description":"Indexed total-supply series for the requested day window, wrapped in a single-resource envelope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatsTotalSupplyV2OutputSchema"},"examples":{"example-1":{"value":{"data":{"family":"evm","totalSupplyHistory":[{"timestamp":"2026-03-04T09:12:41.000Z","totalSupply":"2500000.00"},{"timestamp":"2026-03-11T16:02:08.000Z","totalSupply":"2500000.00"}]},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/stats/total-supply?days=30"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_NETWORK_NOT_CONFIGURED","CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"CANTON_NETWORK_NOT_CONFIGURED","status":422,"message":"No Canton participant network is configured","data":{"id":"DALP-9313","why":"This deployment has no Canton participant network, so the platform cannot allocate a party or submit a DAML command.","fix":"Ask an operator to add a Canton network to the platform configuration, then retry.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_READ_DEPENDENCY_FAILED","core.database.QUERY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"core.database.QUERY_FAILED","status":503,"message":"The database is temporarily unavailable","data":{"id":"DALP-12148","why":"The platform could not complete a database query required for this request.","fix":"Retry the request. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns indexed EVM total-supply points for the selected token over the requested day window. The body carries `family: evm`. A Canton-scoped request is refused before any EVM repository runs.","summary":"Read token total supply","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/stats/volume":{"get":{"tags":["Token statistics"],"operationId":"v2/token/volume","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"days","in":"query","schema":{"type":"integer"},"required":false}],"responses":{"200":{"description":"Indexed transfer-volume series for the requested day window, wrapped in a single-resource envelope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatsVolumeV2OutputSchema"},"examples":{"example-1":{"value":{"data":{"family":"evm","volumeHistory":[{"timestamp":"2026-03-04T09:12:41.000Z","totalVolume":"0"},{"timestamp":"2026-03-11T16:02:08.000Z","totalVolume":"125000.00"}]},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/stats/volume?days=30"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_NETWORK_NOT_CONFIGURED","CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"CANTON_NETWORK_NOT_CONFIGURED","status":422,"message":"No Canton participant network is configured","data":{"id":"DALP-9313","why":"This deployment has no Canton participant network, so the platform cannot allocate a party or submit a DAML command.","fix":"Ask an operator to add a Canton network to the platform configuration, then retry.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_READ_DEPENDENCY_FAILED","core.database.QUERY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"core.database.QUERY_FAILED","status":503,"message":"The database is temporarily unavailable","data":{"id":"DALP-12148","why":"The platform could not complete a database query required for this request.","fix":"Retry the request. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns indexed EVM transfer-volume points for the selected token over the requested day window. The body carries `family: evm`. A Canton-scoped request is refused before any EVM repository runs.","summary":"Read token volume","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/stats/wallet-distribution":{"get":{"tags":["Token statistics"],"operationId":"v2/token/walletDistribution","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true}],"responses":{"200":{"description":"Indexed holder-count buckets, wrapped in a single-resource envelope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatsWalletDistributionV2OutputSchema"},"examples":{"example-1":{"value":{"data":{"family":"evm","buckets":[{"range":"0-1000","count":4},{"range":"1000-10000","count":6},{"range":"10000+","count":2}],"totalHolders":12},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/stats/wallet-distribution"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_NETWORK_NOT_CONFIGURED","CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"CANTON_NETWORK_NOT_CONFIGURED","status":422,"message":"No Canton participant network is configured","data":{"id":"DALP-9313","why":"This deployment has no Canton participant network, so the platform cannot allocate a party or submit a DAML command.","fix":"Ask an operator to add a Canton network to the platform configuration, then retry.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_READ_DEPENDENCY_FAILED","core.database.QUERY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"core.database.QUERY_FAILED","status":503,"message":"The database is temporarily unavailable","data":{"id":"DALP-12148","why":"The platform could not complete a database query required for this request.","fix":"Retry the request. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns indexed EVM holder-count buckets for the selected token. The body carries `family: evm`. A Canton-scoped request is refused before any EVM repository runs.","summary":"Read token wallet distribution","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/stats/yield-coverage":{"get":{"tags":["Token statistics"],"operationId":"v2/token/yieldCoverage","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true}],"responses":{"200":{"description":"Indexed treasury coverage for the yield schedule, wrapped in a single-resource envelope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatsYieldCoverageV2OutputSchema"},"examples":{"example-1":{"value":{"data":{"family":"evm","yieldCoverage":112.5,"hasYieldSchedule":true,"isRunning":true,"totalUnclaimedYield":"4500.00","denominationAssetBalance":"5062.50","denominationAssetTreasuryAllowance":"8000.00","allowanceCoveredPercentage":"100.00","requiredAllowance":"5750.00","treasuryIsContract":false,"treasuryAddress":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30","scheduleAddress":"0x2279B7A0a67DB372996a5FaB50D91eAA73d2eBe6","scheduleAbsenceReason":null,"funding":{"available":"5062500000","outstanding":"4500000000","projected":"1250000000","coverageBps":8804,"status":"at-risk","measuredAt":"2026-03-11T16:02:08.000Z"}},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/stats/yield-coverage"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","TOKEN_LIST_METADATA_KEY_IDENTIFIER_INELIGIBLE","TOKEN_LIST_METADATA_KEY_NOT_BUCKETABLE","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_FEATURES_UNAVAILABLE","TOKEN_READ_DEPENDENCY_FAILED","core.database.QUERY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"core.database.QUERY_FAILED","status":503,"message":"The database is temporarily unavailable","data":{"id":"DALP-12148","why":"The platform could not complete a database query required for this request.","fix":"Retry the request. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns treasury coverage for the selected token's yield schedule, wrapped in a single-resource envelope. `scheduleAbsenceReason` tells you whether the token is still indexing or has no schedule. The read is indexed. Use this before you change the yield treasury allowance.","summary":"Read token yield coverage","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/stats/yield-distribution":{"get":{"tags":["Token statistics"],"operationId":"v2/token/yieldDistribution","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true}],"responses":{"200":{"description":"Indexed yield periods plus claimed and unclaimed totals, wrapped in a single-resource envelope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatsYieldDistributionV2OutputSchema"},"examples":{"example-1":{"value":{"data":{"family":"evm","periods":[{"id":"0x2279B7A0a67DB372996a5FaB50D91eAA73d2eBe6-12","timestamp":"2026-03-04T09:12:41.000Z","totalYield":"1250.00","claimed":"800.00","unclaimed":"450.00"}],"totalYield":"1250.00","totalClaimed":"800.00","totalUnclaimed":"450.00"},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/stats/yield-distribution"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","TOKEN_LIST_METADATA_KEY_IDENTIFIER_INELIGIBLE","TOKEN_LIST_METADATA_KEY_NOT_BUCKETABLE","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_FEATURES_UNAVAILABLE","TOKEN_READ_DEPENDENCY_FAILED","core.database.QUERY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"core.database.QUERY_FAILED","status":503,"message":"The database is temporarily unavailable","data":{"id":"DALP-12148","why":"The platform could not complete a database query required for this request.","fix":"Retry the request. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns indexed yield periods for the selected token plus claimed and unclaimed totals, wrapped in a single-resource envelope. Use holder yield periods when you need one holder's claims.","summary":"Read token yield distribution","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/inherited-global-controls":{"get":{"tags":["Tokens"],"operationId":"v2/token/inheritedGlobalControls","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"instrumentAdmin","in":"query","schema":{"type":"string","minLength":1,"description":"Canton external party identifier"},"required":false}],"responses":{"200":{"description":"The controls the selected asset inherits, in a single-resource envelope. `links.self` carries the `instrumentAdmin` that completes a Canton instrument's key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InheritedGlobalControlsV2OutputSchema"},"examples":{"example-1":{"value":{"data":{"family":"evm","controls":[]},"links":{"self":"/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/inherited-global-controls"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_NETWORK_NOT_CONFIGURED","CONTRACT_ERROR"]}},"required":["code"]}],"examples":[{"code":"CANTON_NETWORK_NOT_CONFIGURED","status":422,"message":"No Canton participant network is configured","data":{"id":"DALP-9313","why":"This deployment has no Canton participant network, so the platform cannot allocate a party or submit a DAML command.","fix":"Ask an operator to add a Canton network to the platform configuration, then retry.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_READ_DEPENDENCY_FAILED","core.database.QUERY_FAILED","dapi.identity.REGISTER_PENDING_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"core.database.QUERY_FAILED","status":503,"message":"The database is temporarily unavailable","data":{"id":"DALP-12148","why":"The platform could not complete a database query required for this request.","fix":"Retry the request. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the controls the selected asset inherits from above it, in either chain family. The asset is named exactly as it is for the asset read: `assetId` is a contract address for an EVM token, or a Canton `instrumentId` sent together with the `instrumentAdmin` that completes its key. The body carries `family`: an `evm` token reports the system-wide compliance control type IDs, and a `canton` instrument reports the registry rule contracts it is governed by: one registry-wide contract rather than a list of module types, so no type IDs are reported for it. The read is indexed. A pending identity registration can return 503 until that registration settles. Use the compliance-modules read for rules bound directly to the asset.","summary":"Read inherited controls","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/recipient-eligibility":{"get":{"tags":["Tokens"],"operationId":"v2/token/recipientEligibility","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"address","in":"query","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"name":"action","in":"query","schema":{"type":"string","enum":["mint","transfer","burn"]},"required":true}],"responses":{"200":{"description":"Indexed registry-presence verdict for one address, wrapped in a single-resource envelope. This is not the full compliance-module result.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenRecipientEligibilityResponseSchema"},"examples":{"example-1":{"value":{"data":{"eligible":true,"address":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","action":"transfer","reason":null},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/recipient-eligibility?address=0x8ba1f109551bD432803012645Ac136ddd64DBA72&action=transfer"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_READ_DEPENDENCY_FAILED","core.database.QUERY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"core.database.QUERY_FAILED","status":503,"message":"The database is temporarily unavailable","data":{"id":"DALP-12148","why":"The platform could not complete a database query required for this request.","fix":"Retry the request. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Checks whether one address may receive the selected token for mint, transfer, or burn. The verdict uses the indexed identity registry: the address must hold an active, not-lost registered identity on the token or system registry. This is not the full compliance-module verdict. When the address is not eligible, `reason` says why: `identity-not-registered` when it has no active registration in the token's identity registries, `no-identity-registry` when the token has no registry to register in. Repeat the same request after the registry changes.","summary":"Check recipient eligibility","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/documents":{"get":{"tags":["Token documents"],"operationId":"v2/token/documents/list","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"sort","in":"query","schema":{"type":"string"},"required":false},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"type":"integer"},"limit":{"type":"integer"}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"filter","in":"query","schema":{"type":"object","properties":{"fileName":{"type":"string","minLength":1},"visibility":{"type":"string","enum":["public","holders","restricted"]},"mimeType":{"type":"string","minLength":1},"isLatest":{"type":"boolean"}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true}],"responses":{"200":{"description":"One page of documents attached to the token. The list is indexed metadata only and does not download file bytes. Default sort is upload time ascending.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenDocumentsV2ListOutputSchema"},"examples":{"example-1":{"value":{"data":[{"id":"7f1c2b90-3f4a-4b6f-9a1e-5c8d0e2f6a41","token":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","documentType":"prospectus","visibility":"holders","groupId":"a1b2c3d4-5e6f-7081-92a3-b4c5d6e7f809","versionNumber":1,"isLatest":true,"fileName":"northwind-series-a-prospectus.pdf","fileSize":184320,"mimeType":"application/pdf","fileHash":"0x4b227777d4dd1fc61c6f884f48641d02b4d121d3fd328cb08b5531fcacdabf8a","title":"Series A prospectus","description":"Offering memorandum for the Northwind Coffee Series A bond.","thumbnailKey":null,"uploadedAt":"2026-03-04T09:12:41.000Z"}],"meta":{"total":1},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/documents?sort=uploadedAt&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/documents?sort=uploadedAt&page%5Boffset%5D=0&page%5Blimit%5D=50","last":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/documents?sort=uploadedAt&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","TOKEN_DOCUMENTS_DOCUMENT_TYPE_NOT_VALID_ASSET","TOKEN_DOCUMENTS_INVALID_OBJECT_KEY","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_DOCUMENTS_DOCUMENT_GROUP_NOT_FOUND_REPLACEMENT","TOKEN_DOCUMENTS_DOCUMENT_NOT_FOUND","TOKEN_DOCUMENTS_FILE_NOT_FOUND_STORAGE_UPLOAD_FAILED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_DOCUMENTS_DECLARED_FILE_SIZE_DOES_NOT_MATCH_ACTUAL_STORAGE","TOKEN_DOCUMENTS_FAILED_TO_CREATE_DOCUMENT_RECORD","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_READ_DEPENDENCY_FAILED","core.database.QUERY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"core.database.QUERY_FAILED","status":503,"message":"The database is temporarily unavailable","data":{"id":"DALP-12148","why":"The platform could not complete a database query required for this request.","fix":"Retry the request. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of documents attached to the selected token. Page, filter, and sort with the shared collection parameters. Default sort is upload time ascending. The list is indexed metadata only and does not download file bytes. Request a download URL when you need the file.","summary":"List token documents","x-dalp-auth":"session-or-api-key"},"post":{"tags":["Token documents"],"operationId":"v2/token/documents/confirmUpload","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Confirmed token document. The file is now attached to the token and appears on document reads.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","minLength":1},"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"documentType":{"type":"string","enum":["prospectus","term_sheet","legal_opinion","regulatory_filing","compliance_report","annual_report","financial_statement","credit_rating","covenant_agreement","shareholder_agreement","fund_fact_sheet","subscription_agreement","nav_report","reserve_audit","attestation_report","reserve_composition","certificate","interest_schedule","property_deed","survey_report","appraisal","environmental_assessment","title_insurance","assay_certificate","storage_receipt","chain_of_custody","insurance_certificate","brand_logo","other"]},"visibility":{"type":"string","enum":["public","holders","restricted"]},"groupId":{"type":"string","minLength":1},"versionNumber":{"type":"integer"},"isLatest":{"type":"boolean"},"fileName":{"type":"string","minLength":1},"fileSize":{"type":"integer"},"mimeType":{"type":"string","enum":["application/pdf","image/jpeg","image/png","image/webp","application/vnd.openxmlformats-officedocument.wordprocessingml.document","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","text/csv"]},"title":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"uploadedAt":{"type":"string","minLength":1},"fileHash":{"type":"string","minLength":1},"uploadedBy":{"type":"string","minLength":1}},"required":["id","tokenAddress","documentType","visibility","groupId","versionNumber","isLatest","fileName","fileSize","mimeType","title","description","uploadedAt","fileHash","uploadedBy"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string","minLength":1}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"7f1c2b90-3f4a-4b6f-9a1e-5c8d0e2f6a41","tokenAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","documentType":"prospectus","visibility":"holders","groupId":"a1b2c3d4-5e6f-7081-92a3-b4c5d6e7f809","versionNumber":1,"isLatest":true,"fileName":"northwind-series-a-prospectus.pdf","fileSize":184320,"mimeType":"application/pdf","title":"Series A prospectus","description":"Offering memorandum for the Northwind Coffee Series A bond.","uploadedAt":"2026-03-04T09:12:41.000Z","fileHash":"0x4b227777d4dd1fc61c6f884f48641d02b4d121d3fd328cb08b5531fcacdabf8a","uploadedBy":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/documents"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","TOKEN_DOCUMENTS_DOCUMENT_TYPE_NOT_VALID_ASSET","TOKEN_DOCUMENTS_INVALID_OBJECT_KEY","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_TYPE_TEMPLATE_NOT_FOUND","CONTRACT_ERROR","NOT_FOUND","PRICE_RESOLVER_ADDON_NOT_INSTALLED","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_DOCUMENTS_DOCUMENT_GROUP_NOT_FOUND_REPLACEMENT","TOKEN_DOCUMENTS_DOCUMENT_NOT_FOUND","TOKEN_DOCUMENTS_FILE_NOT_FOUND_STORAGE_UPLOAD_FAILED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"ASSET_TYPE_TEMPLATE_NOT_FOUND","status":404,"message":"Asset type template not found.","data":{"id":"DALP-0091","why":"The platform searched for the asset type template by the supplied ID and found no record owned by your organization or available as a system template.","fix":"Confirm the ID matches an existing template owned by your organization or a published system template. Re-fetch the list of asset type templates to verify the ID before retrying.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","DURABLE_EXECUTION_ENGINE_CALL_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_MUTATION_INSUFFICIENT_BALANCE","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","ORGANIZATION_SUBMISSION_SIGNER_CLAIM_PURPOSE_MISSING","STRICT_COMPLIANCE_PARAMS_INVALID","SYSTEM_IDENTITY_CLAIM_ISSUE","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_BRAND_LOGO_REJECTED","TOKEN_CHAIN_UNAVAILABLE","TOKEN_CLAIM_ISSUE_FAILED","TOKEN_COMPLIANCE_MODULE_BINDING_UNRESOLVED","TOKEN_CREATE_AMBIGUOUS_INTEREST_PROVIDER","TOKEN_CREATE_ASSET_FAMILY_DEPRECATED","TOKEN_CREATE_DUPLICATE","TOKEN_CREATE_RECOVERY_FAILED","TOKEN_FUNDING_PAUSE_FAILED","TOKEN_OPERATION_INPUT_INVALID","TOKEN_PRICE_DENOMINATION_UNUSABLE","TOKEN_PRICE_FEED_FACTORY_MISSING","TOKEN_PRICE_FEED_SIGNER_MISSING","TOKEN_PRICE_INPUT_INVALID","TOKEN_PRICE_UPDATE_FAILED","TOKEN_QUEUE_WRITE_REFUSED","TOKEN_WORKFLOW_FAILED","TOKEN_WRITE_OUTCOME_UNKNOWN","TOKEN_WRITE_RECEIPT_INCOMPLETE","TOKEN_WRITE_REVERTED","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_DOCUMENTS_DECLARED_FILE_SIZE_DOES_NOT_MATCH_ACTUAL_STORAGE","TOKEN_DOCUMENTS_FAILED_TO_CREATE_DOCUMENT_RECORD","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_ACCESS_SYNC_RESULT_UNAVAILABLE","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_WRITE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.erc20_metadata.PROBE_FAILED","dapi.identity.CLAIM_ISSUE_DEPENDENCY_FAILED","dapi.identity.CLAIM_TOPIC_READ_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Registers a file already uploaded to the object key returned by the upload-URL route for this token. Confirmation is required before the document appears on token document reads. This route writes object-store metadata, not an on-chain transaction. Retrying a confirmed key does not create a second document. For `brand_logo` the server reads the stored bytes, requires the declared size and image type to match, rejects any side above 2048 px, stores the document as public, and deletes the uploaded objects when a check fails; `smallObjectKey` names the optional 64 px rendition, and without it the hero serves both sizes.","summary":"Confirm a token document upload","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"objectKey":{"type":"string","minLength":1},"documentType":{"type":"string","enum":["prospectus","term_sheet","legal_opinion","regulatory_filing","compliance_report","annual_report","financial_statement","credit_rating","covenant_agreement","shareholder_agreement","fund_fact_sheet","subscription_agreement","nav_report","reserve_audit","attestation_report","reserve_composition","certificate","interest_schedule","property_deed","survey_report","appraisal","environmental_assessment","title_insurance","assay_certificate","storage_receipt","chain_of_custody","insurance_certificate","brand_logo","other"]},"fileName":{"type":"string","minLength":1,"maxLength":255},"fileSize":{"type":"integer","exclusiveMinimum":0,"maximum":52428800},"mimeType":{"type":"string","enum":["application/pdf","image/jpeg","image/png","image/webp","application/vnd.openxmlformats-officedocument.wordprocessingml.document","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","text/csv"]},"visibility":{"type":"string","enum":["public","holders","restricted"]},"title":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"description":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]},"replaceGroupId":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["objectKey","documentType","fileName","fileSize","mimeType","visibility"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/document-uploads":{"post":{"tags":["Token documents"],"operationId":"v2/token/documents/getUploadUrl","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Upload URL for a new token document. PUT the file to `data.uploadUrl`, then confirm with `data.objectKey`.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"uploadUrl":{"type":"string","minLength":1},"objectKey":{"type":"string","minLength":1},"expiresAt":{"type":"string","minLength":1},"method":{"type":"string","enum":["PUT"]},"headers":{"type":"object","additionalProperties":{"type":"string"}}},"required":["uploadUrl","objectKey","expiresAt","method","headers"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string","minLength":1}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"uploadUrl":"https://files.example.com/uploads/token-documents?signature=nwcab","objectKey":"tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/documents/7f1c2b90-3f4a-4b6f-9a1e-5c8d0e2f6a41.pdf","expiresAt":"2026-03-11T16:17:08.000Z","method":"PUT","headers":{"content-type":"application/pdf"}},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/document-uploads"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","TOKEN_DOCUMENTS_DOCUMENT_TYPE_NOT_VALID_ASSET","TOKEN_DOCUMENTS_INVALID_OBJECT_KEY","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_TYPE_TEMPLATE_NOT_FOUND","CONTRACT_ERROR","NOT_FOUND","PRICE_RESOLVER_ADDON_NOT_INSTALLED","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_DOCUMENTS_DOCUMENT_GROUP_NOT_FOUND_REPLACEMENT","TOKEN_DOCUMENTS_DOCUMENT_NOT_FOUND","TOKEN_DOCUMENTS_FILE_NOT_FOUND_STORAGE_UPLOAD_FAILED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"ASSET_TYPE_TEMPLATE_NOT_FOUND","status":404,"message":"Asset type template not found.","data":{"id":"DALP-0091","why":"The platform searched for the asset type template by the supplied ID and found no record owned by your organization or available as a system template.","fix":"Confirm the ID matches an existing template owned by your organization or a published system template. Re-fetch the list of asset type templates to verify the ID before retrying.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","DURABLE_EXECUTION_ENGINE_CALL_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_MUTATION_INSUFFICIENT_BALANCE","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","ORGANIZATION_SUBMISSION_SIGNER_CLAIM_PURPOSE_MISSING","STRICT_COMPLIANCE_PARAMS_INVALID","SYSTEM_IDENTITY_CLAIM_ISSUE","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_BRAND_LOGO_REJECTED","TOKEN_CHAIN_UNAVAILABLE","TOKEN_CLAIM_ISSUE_FAILED","TOKEN_COMPLIANCE_MODULE_BINDING_UNRESOLVED","TOKEN_CREATE_AMBIGUOUS_INTEREST_PROVIDER","TOKEN_CREATE_ASSET_FAMILY_DEPRECATED","TOKEN_CREATE_DUPLICATE","TOKEN_CREATE_RECOVERY_FAILED","TOKEN_FUNDING_PAUSE_FAILED","TOKEN_OPERATION_INPUT_INVALID","TOKEN_PRICE_DENOMINATION_UNUSABLE","TOKEN_PRICE_FEED_FACTORY_MISSING","TOKEN_PRICE_FEED_SIGNER_MISSING","TOKEN_PRICE_INPUT_INVALID","TOKEN_PRICE_UPDATE_FAILED","TOKEN_QUEUE_WRITE_REFUSED","TOKEN_WORKFLOW_FAILED","TOKEN_WRITE_OUTCOME_UNKNOWN","TOKEN_WRITE_RECEIPT_INCOMPLETE","TOKEN_WRITE_REVERTED","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_DOCUMENTS_DECLARED_FILE_SIZE_DOES_NOT_MATCH_ACTUAL_STORAGE","TOKEN_DOCUMENTS_FAILED_TO_CREATE_DOCUMENT_RECORD","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_ACCESS_SYNC_RESULT_UNAVAILABLE","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_WRITE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.erc20_metadata.PROBE_FAILED","dapi.identity.CLAIM_ISSUE_DEPENDENCY_FAILED","dapi.identity.CLAIM_TOPIC_READ_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns a short-lived upload URL and object key for a new document on the selected token in the active organization. This route writes no on-chain state. Upload the file with PUT to the returned URL, then confirm the object key. The URL expires; request a new one instead of retrying an expired URL. A `brand_logo` document is accepted only for a token this organization issued, must be PNG, JPEG or WebP, and must be at most 5 MB; request one URL for the 256 px hero rendition and, optionally, a second for the 64 px small rendition.","summary":"Create a token document upload URL","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"documentType":{"type":"string","enum":["prospectus","term_sheet","legal_opinion","regulatory_filing","compliance_report","annual_report","financial_statement","credit_rating","covenant_agreement","shareholder_agreement","fund_fact_sheet","subscription_agreement","nav_report","reserve_audit","attestation_report","reserve_composition","certificate","interest_schedule","property_deed","survey_report","appraisal","environmental_assessment","title_insurance","assay_certificate","storage_receipt","chain_of_custody","insurance_certificate","brand_logo","other"]},"fileName":{"type":"string","minLength":1,"maxLength":255},"fileSize":{"type":"integer","exclusiveMinimum":0,"maximum":52428800},"mimeType":{"type":"string","enum":["application/pdf","image/jpeg","image/png","image/webp","application/vnd.openxmlformats-officedocument.wordprocessingml.document","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","text/csv"]},"visibility":{"type":"string","enum":["public","holders","restricted"]},"title":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]},"description":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}]}},"required":["documentType","fileName","fileSize","mimeType","visibility"],"additionalProperties":false,"description":"A `brand_logo` document takes a narrower set than the rest. It must be a PNG, JPEG or WebP image of at most 5242880 bytes. Every other document type keeps the full format list and the 52428800 byte cap.","allOf":[{"anyOf":[{"properties":{"documentType":{"not":{"const":"brand_logo"}}}},{"properties":{"documentType":{"const":"brand_logo"},"mimeType":{"enum":["image/png","image/jpeg","image/webp"]},"fileSize":{"maximum":5242880}}}]}]}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/documents/{documentId}/downloads":{"post":{"tags":["Token documents"],"operationId":"v2/token/documents/getDownloadUrl","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"documentId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Short-lived download URL for one document the caller can access. The URL expires; request a new one instead of retrying an expired URL.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenDocumentsReadOutputSchema"},"examples":{"example-1":{"value":{"data":{"downloadUrl":"https://files.example.com/documents/northwind-series-a-prospectus.pdf?expires=1741705028","expiresAt":"2026-03-11T16:17:08.000Z"},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/documents/7f1c2b90-3f4a-4b6f-9a1e-5c8d0e2f6a41/downloads"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","TOKEN_DOCUMENTS_DOCUMENT_TYPE_NOT_VALID_ASSET","TOKEN_DOCUMENTS_INVALID_OBJECT_KEY","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_DOCUMENTS_DOCUMENT_GROUP_NOT_FOUND_REPLACEMENT","TOKEN_DOCUMENTS_DOCUMENT_NOT_FOUND","TOKEN_DOCUMENTS_FILE_NOT_FOUND_STORAGE_UPLOAD_FAILED","TOKEN_DOCUMENTS_READ_DOCUMENT_NOT_FOUND","TOKEN_DOCUMENTS_READ_HOLDER_REQUIRED","TOKEN_DOCUMENTS_READ_RESTRICTED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_DOCUMENTS_DECLARED_FILE_SIZE_DOES_NOT_MATCH_ACTUAL_STORAGE","TOKEN_DOCUMENTS_FAILED_TO_CREATE_DOCUMENT_RECORD","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_READ_DEPENDENCY_FAILED","core.database.QUERY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"core.database.QUERY_FAILED","status":503,"message":"The database is temporarily unavailable","data":{"id":"DALP-12148","why":"The platform could not complete a database query required for this request.","fix":"Retry the request. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Creates a short-lived download URL for one document the caller can access. Identify the document by `documentId`. The URL expires; request a new one instead of retrying an expired URL. This write does not change the document itself and does not queue a blockchain transaction.","summary":"Create a token-document download URL","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenHttpEmptyPart"}}},"required":false},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/documents/{documentId}":{"delete":{"tags":["Token documents"],"operationId":"v2/token/documents/delete","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"documentId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Successful delete acknowledgement. `data` is `null` because the resource no longer exists. Treat HTTP 200 plus this body as confirmation, not as a leftover item.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"null"}},"required":["data"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":null}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","TOKEN_DOCUMENTS_DOCUMENT_TYPE_NOT_VALID_ASSET","TOKEN_DOCUMENTS_INVALID_OBJECT_KEY","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_TYPE_TEMPLATE_NOT_FOUND","CONTRACT_ERROR","NOT_FOUND","PRICE_RESOLVER_ADDON_NOT_INSTALLED","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_DOCUMENTS_DOCUMENT_GROUP_NOT_FOUND_REPLACEMENT","TOKEN_DOCUMENTS_DOCUMENT_NOT_FOUND","TOKEN_DOCUMENTS_FILE_NOT_FOUND_STORAGE_UPLOAD_FAILED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"ASSET_TYPE_TEMPLATE_NOT_FOUND","status":404,"message":"Asset type template not found.","data":{"id":"DALP-0091","why":"The platform searched for the asset type template by the supplied ID and found no record owned by your organization or available as a system template.","fix":"Confirm the ID matches an existing template owned by your organization or a published system template. Re-fetch the list of asset type templates to verify the ID before retrying.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","DURABLE_EXECUTION_ENGINE_CALL_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_MUTATION_INSUFFICIENT_BALANCE","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","ORGANIZATION_SUBMISSION_SIGNER_CLAIM_PURPOSE_MISSING","STRICT_COMPLIANCE_PARAMS_INVALID","SYSTEM_IDENTITY_CLAIM_ISSUE","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_CHAIN_UNAVAILABLE","TOKEN_CLAIM_ISSUE_FAILED","TOKEN_COMPLIANCE_MODULE_BINDING_UNRESOLVED","TOKEN_CREATE_AMBIGUOUS_INTEREST_PROVIDER","TOKEN_CREATE_ASSET_FAMILY_DEPRECATED","TOKEN_CREATE_DUPLICATE","TOKEN_CREATE_RECOVERY_FAILED","TOKEN_FUNDING_PAUSE_FAILED","TOKEN_OPERATION_INPUT_INVALID","TOKEN_PRICE_DENOMINATION_UNUSABLE","TOKEN_PRICE_FEED_FACTORY_MISSING","TOKEN_PRICE_FEED_SIGNER_MISSING","TOKEN_PRICE_INPUT_INVALID","TOKEN_PRICE_UPDATE_FAILED","TOKEN_QUEUE_WRITE_REFUSED","TOKEN_WORKFLOW_FAILED","TOKEN_WRITE_OUTCOME_UNKNOWN","TOKEN_WRITE_RECEIPT_INCOMPLETE","TOKEN_WRITE_REVERTED","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_DOCUMENTS_DECLARED_FILE_SIZE_DOES_NOT_MATCH_ACTUAL_STORAGE","TOKEN_DOCUMENTS_FAILED_TO_CREATE_DOCUMENT_RECORD","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_ACCESS_SYNC_RESULT_UNAVAILABLE","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_WRITE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.erc20_metadata.PROBE_FAILED","dapi.identity.CLAIM_ISSUE_DEPENDENCY_FAILED","dapi.identity.CLAIM_TOPIC_READ_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Removes one document from the selected token in the active organization. A missing document returns 404. This route writes object-store metadata, not an on-chain transaction. `data` is null because no document remains to return.","summary":"Delete a token document","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/logo-upload-urls":{"post":{"tags":["Token documents"],"operationId":"v2/token/logoUploadUrl","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Upload URL for a new token document. PUT the file to `data.uploadUrl`, then confirm with `data.objectKey`.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"uploadUrl":{"type":"string","minLength":1},"objectKey":{"type":"string","minLength":1},"expiresAt":{"type":"string","minLength":1},"method":{"type":"string","enum":["PUT"]},"headers":{"type":"object","additionalProperties":{"type":"string"}}},"required":["uploadUrl","objectKey","expiresAt","method","headers"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string","minLength":1}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"uploadUrl":"https://files.example.com/uploads/token-documents?signature=nwcab","objectKey":"tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/documents/7f1c2b90-3f4a-4b6f-9a1e-5c8d0e2f6a41.pdf","expiresAt":"2026-03-11T16:17:08.000Z","method":"PUT","headers":{"content-type":"application/pdf"}},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/document-uploads"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","TOKEN_DOCUMENTS_DOCUMENT_TYPE_NOT_VALID_ASSET","TOKEN_DOCUMENTS_INVALID_OBJECT_KEY","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_TYPE_TEMPLATE_NOT_FOUND","CONTRACT_ERROR","NOT_FOUND","PRICE_RESOLVER_ADDON_NOT_INSTALLED","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_DOCUMENTS_DOCUMENT_GROUP_NOT_FOUND_REPLACEMENT","TOKEN_DOCUMENTS_DOCUMENT_NOT_FOUND","TOKEN_DOCUMENTS_FILE_NOT_FOUND_STORAGE_UPLOAD_FAILED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"ASSET_TYPE_TEMPLATE_NOT_FOUND","status":404,"message":"Asset type template not found.","data":{"id":"DALP-0091","why":"The platform searched for the asset type template by the supplied ID and found no record owned by your organization or available as a system template.","fix":"Confirm the ID matches an existing template owned by your organization or a published system template. Re-fetch the list of asset type templates to verify the ID before retrying.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","DURABLE_EXECUTION_ENGINE_CALL_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_MUTATION_INSUFFICIENT_BALANCE","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","ORGANIZATION_SUBMISSION_SIGNER_CLAIM_PURPOSE_MISSING","STRICT_COMPLIANCE_PARAMS_INVALID","SYSTEM_IDENTITY_CLAIM_ISSUE","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_BRAND_LOGO_REJECTED","TOKEN_CHAIN_UNAVAILABLE","TOKEN_CLAIM_ISSUE_FAILED","TOKEN_COMPLIANCE_MODULE_BINDING_UNRESOLVED","TOKEN_CREATE_AMBIGUOUS_INTEREST_PROVIDER","TOKEN_CREATE_ASSET_FAMILY_DEPRECATED","TOKEN_CREATE_DUPLICATE","TOKEN_CREATE_RECOVERY_FAILED","TOKEN_FUNDING_PAUSE_FAILED","TOKEN_OPERATION_INPUT_INVALID","TOKEN_PRICE_DENOMINATION_UNUSABLE","TOKEN_PRICE_FEED_FACTORY_MISSING","TOKEN_PRICE_FEED_SIGNER_MISSING","TOKEN_PRICE_INPUT_INVALID","TOKEN_PRICE_UPDATE_FAILED","TOKEN_QUEUE_WRITE_REFUSED","TOKEN_WORKFLOW_FAILED","TOKEN_WRITE_OUTCOME_UNKNOWN","TOKEN_WRITE_RECEIPT_INCOMPLETE","TOKEN_WRITE_REVERTED","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_DOCUMENTS_DECLARED_FILE_SIZE_DOES_NOT_MATCH_ACTUAL_STORAGE","TOKEN_DOCUMENTS_FAILED_TO_CREATE_DOCUMENT_RECORD","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_ACCESS_SYNC_RESULT_UNAVAILABLE","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_WRITE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.erc20_metadata.PROBE_FAILED","dapi.identity.CLAIM_ISSUE_DEPENDENCY_FAILED","dapi.identity.CLAIM_TOPIC_READ_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns a short-lived upload URL and object key for the brand logo a token creation will carry, before that token exists. This route writes no on-chain state and registers no document. The image must be a PNG, JPEG or WebP of at most 5 MB. Upload the file with PUT to the returned URL, then send the returned object key as `logo.objectKey` on the token create call; the platform confirms it once the token is deployed. The key is minted for the active organization, and a create from another organization is refused. The URL expires; request a new one instead of retrying an expired URL.","summary":"Create a token logo upload URL","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenCreateLogoUploadUrlBody"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/create/{transactionId}/stream":{"get":{"tags":["Token creation"],"operationId":"v2/token/createStream","parameters":[{"name":"transactionId","in":"path","schema":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"required":true}],"responses":{"200":{"description":"Streams stored workflow progress for one token-creation transaction in the active organization.","content":{"text/event-stream":{"schema":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","enum":["tree"]},"nodes":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string"},"type":{"type":"string","enum":["wallet","system","registry","role","identity","compliance","feed","factory","addon","paymaster","other"]},"status":{"type":"string","enum":["pending","in-progress","awaiting-approval","waiting","completed","failed"]},"error":{"type":"string"},"children":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string"},"type":{"type":"string","enum":["wallet","system","registry","role","identity","compliance","feed","factory","addon","paymaster","other"]},"status":{"type":"string","enum":["pending","in-progress","awaiting-approval","waiting","completed","failed"]},"error":{"type":"string"}},"required":["id","label","type","status"],"additionalProperties":true}}},"required":["id","label","type","status"],"additionalProperties":true}}},"required":["type","nodes"],"additionalProperties":true},{"type":"object","properties":{"type":{"type":"string","enum":["requirement-required"]},"requirementId":{"type":"string","pattern":"^[\\w:-]+$"},"kind":{"type":"string","enum":["gas"]},"payload":{"type":"object","properties":{"role":{"type":"string","enum":["org-creator-eoa","member-admission-eoa","token-creator-eoa","org-vault-eoa","org-bundler-eoa","org-relayer-eoa","aa-runway-eoa","queued-write-eoa","smart-account","paymaster-deposit"]},"subjectOwner":{"type":"string","enum":["caller","organisation","platform"]},"chainId":{"type":"integer","exclusiveMinimum":0,"description":"EVM chain identifier.","examples":[11155111]},"chainName":{"type":"string","minLength":1},"address":{"type":"string","minLength":1},"nativeCurrency":{"type":"object","properties":{"name":{"type":"string","description":"Full name of the chain's native currency.","examples":["Ether"]},"symbol":{"type":"string","description":"Ticker printed beside a native amount.","examples":["ETH"]},"decimals":{"type":"integer"}},"required":["name","symbol","decimals"],"additionalProperties":true,"description":"The chain's own currency, carried whole so a reader can render a native amount without looking it up."},"shortfall":{"type":"string","pattern":"^\\d+$"},"recommendedTotal":{"type":"string","pattern":"^\\d+$"},"deployCost":{"type":"string","pattern":"^\\d+$"},"opsAllowance":{"type":"string","pattern":"^\\d+$"},"bufferPct":{"type":"integer"},"devCommand":{"type":"string","minLength":1},"opName":{"type":"string","minLength":1},"seq":{"type":"integer"},"alreadySent":{"type":"string","pattern":"^\\d+$"},"expiresAt":{"type":"integer"},"entryPointAddress":{"type":"string","minLength":1}},"required":["role","chainId","chainName","address","nativeCurrency","shortfall","recommendedTotal","deployCost","opsAllowance","bufferPct","opName","seq","alreadySent"],"additionalProperties":true}},"required":["type","requirementId","kind","payload"],"additionalProperties":true},{"type":"object","properties":{"type":{"type":"string","enum":["requirement-resolved"]},"requirementId":{"type":"string","pattern":"^[\\w:-]+$"},"kind":{"type":"string","enum":["gas"]},"resolution":{"type":"object","properties":{"alreadySent":{"type":"string","pattern":"^\\d+$"}},"required":["alreadySent"],"additionalProperties":true}},"required":["type","requirementId","kind","resolution"],"additionalProperties":true},{"type":"object","properties":{"type":{"type":"string","enum":["complete"]},"success":{"type":"boolean"},"failedSteps":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"label":{"type":"string"},"error":{"type":"string"},"wireError":{"type":"object","properties":{"dalpCode":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"selector":{"type":"string"},"solidityError":{"type":"string"},"id":{"type":"string"},"category":{"type":"string"},"why":{"type":"string"},"fix":{"type":"string"},"suggestedAction":{"type":"string"},"args":{"type":"object","additionalProperties":{"type":"string"}},"correlationId":{"type":"string"},"requestId":{"type":"string"}},"required":["dalpCode","message","retryable","selector","solidityError"],"additionalProperties":true}},"required":["id","label"],"additionalProperties":true}},"failureReason":{"type":"string"}},"required":["type","success"],"additionalProperties":true}]},"x-effect-stream":{"encoding":"sse","causeSchema":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["Fail"]},"error":{"not":{}}},"required":["_tag","error"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["Die"]},"defect":{}},"required":["_tag","defect"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["Interrupt"]},"fiberId":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["_tag","fiberId"],"additionalProperties":false}]}},"errorSchema":{"not":{}},"failureEvent":"effect/http-api/stream/failure"},"examples":{"example-1":{"value":{"type":"tree","nodes":[{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","label":"Pay in USDC","type":"wallet","status":"pending","error":"Transaction 019c0000-0000-7000-8000-000000000010 is already COMPLETED and there is nothing left to cancel.","children":[{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","label":"Pay in USDC","type":"wallet","status":"pending","error":"Transaction 019c0000-0000-7000-8000-000000000010 is already COMPLETED and there is nothing left to cancel."}]}]}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_TYPE_TEMPLATE_NOT_FOUND","CONTRACT_ERROR","DEPLOYMENT_NOT_FOUND","NOT_FOUND","PRICE_RESOLVER_ADDON_NOT_INSTALLED","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND","dapi.assets.TOKEN_CREATE_STREAM_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"ASSET_TYPE_TEMPLATE_NOT_FOUND","status":404,"message":"Asset type template not found.","data":{"id":"DALP-0091","why":"The platform searched for the asset type template by the supplied ID and found no record owned by your organization or available as a system template.","fix":"Confirm the ID matches an existing template owned by your organization or a published system template. Re-fetch the list of asset type templates to verify the ID before retrying.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","DURABLE_EXECUTION_ENGINE_CALL_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_MUTATION_INSUFFICIENT_BALANCE","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","ORGANIZATION_SUBMISSION_SIGNER_CLAIM_PURPOSE_MISSING","STRICT_COMPLIANCE_PARAMS_INVALID","SYSTEM_IDENTITY_CLAIM_ISSUE","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_CHAIN_UNAVAILABLE","TOKEN_CLAIM_ISSUE_FAILED","TOKEN_COMPLIANCE_MODULE_BINDING_UNRESOLVED","TOKEN_CREATE_AMBIGUOUS_INTEREST_PROVIDER","TOKEN_CREATE_ASSET_FAMILY_DEPRECATED","TOKEN_CREATE_DUPLICATE","TOKEN_CREATE_RECOVERY_FAILED","TOKEN_FUNDING_PAUSE_FAILED","TOKEN_OPERATION_INPUT_INVALID","TOKEN_PRICE_DENOMINATION_UNUSABLE","TOKEN_PRICE_FEED_FACTORY_MISSING","TOKEN_PRICE_FEED_SIGNER_MISSING","TOKEN_PRICE_INPUT_INVALID","TOKEN_PRICE_UPDATE_FAILED","TOKEN_QUEUE_WRITE_REFUSED","TOKEN_WORKFLOW_FAILED","TOKEN_WRITE_OUTCOME_UNKNOWN","TOKEN_WRITE_RECEIPT_INCOMPLETE","TOKEN_WRITE_REVERTED","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DEPLOYMENT_STREAM_POLLING_FAILED","DEPLOYMENT_WORKFLOW_TERMINAL_FAILED","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_ACCESS_SYNC_RESULT_UNAVAILABLE","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_WRITE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.assets.TOKEN_CREATE_STREAM_LOOKUP_FAILED","dapi.assets.TOKEN_CREATE_STREAM_STEP_FAILED","dapi.erc20_metadata.PROBE_FAILED","dapi.identity.CLAIM_ISSUE_DEPENDENCY_FAILED","dapi.identity.CLAIM_TOPIC_READ_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Streams stored workflow progress for one token-creation transaction in the active organization. The transactionId is the identifier returned when create accepted the request. The first tree event is the full phase snapshot. Later update events report only changed nodes. Gas funding arrives as requirement-required, requirement-resolved, or requirement-expired. The stream ends with complete (success true when the workflow phase is completed; success false with failedSteps when the phase is failed) or with error after a status-read failure. Close the connection after complete or error. After complete with success true, read the created token. The stream does not submit another deployment.","summary":"Stream token-creation progress","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/mints":{"post":{"tags":["Token transfers and supply"],"operationId":"v2/token/mint","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous mutation result (HTTP 200). The write settled within the request wait window. `data` is the token an EVM write moved, or the Canton operation a Canton write submitted.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"anyOf":[{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["evm"]},"address":{"$ref":"#/components/schemas/EvmAddress"},"name":{"type":"string"},"symbol":{"type":"string"},"decimals":{"type":"integer"},"assetType":{"$ref":"#/components/schemas/AssetTypeOrSlug"},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"totalSupply":{"$ref":"#/components/schemas/AssetAmount"},"basePrice":{"$ref":"#/components/schemas/BigDecimal"},"basePriceCurrencyCode":{"anyOf":[{"$ref":"#/components/schemas/FiatCurrency"},{"type":"null"}]},"smartInterface":{"anyOf":[{"type":"integer"},{"type":"null"}]},"pausable":{"type":"object","properties":{"paused":{"type":"boolean"}},"required":["paused"],"additionalProperties":false},"logoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"tokenFactory":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"templateLink":{"anyOf":[{"type":"object","properties":{"templateId":{"type":"string","minLength":1},"templateSlug":{"type":"string","minLength":1}},"required":["templateId","templateSlug"],"additionalProperties":false},{"type":"null"}]},"capabilities":{"type":"array","items":{"$ref":"#/components/schemas/InstrumentCapability"},"description":"The token's instrument capabilities: share-capital for shares, unit-capital for fund units and real-estate fractions. They decide which corporate actions the token offers. A token linked to a template carries the capabilities snapshotted from that template when it deployed. A token with no template link gets them derived when it is read, from its asset type and its attached features: equity without an attached conversion feature has share-capital, fund and real-estate have unit-capital, and any other type has none."}},"required":["_tag","address","name","symbol","decimals","assetType","createdAt","totalSupply","basePrice","basePriceCurrencyCode","smartInterface","pausable","logoUrl","tokenFactory","templateLink","capabilities"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["canton"]},"instrumentId":{"type":"string","minLength":1},"instrumentAdmin":{"$ref":"#/components/schemas/CantonPartyId"},"name":{"type":"string"},"symbol":{"type":"string"},"networkIdentity":{"type":"string","minLength":1},"disclosedAmount":{"type":"string","pattern":"^-?(0|[1-9]\\d*)(\\.\\d{1,10})?$"},"disclosedLockedAmount":{"type":"string","pattern":"^-?(0|[1-9]\\d*)(\\.\\d{1,10})?$"},"disclosedHolderCount":{"type":"integer","minimum":0},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["_tag","instrumentId","instrumentAdmin","name","symbol","networkIdentity","disclosedAmount","disclosedLockedAmount","disclosedHolderCount","updatedAt"],"additionalProperties":false}]},{"$ref":"#/components/schemas/CantonArmSettledResult"}]},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"type":"string","minLength":1}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string","minLength":1}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"_tag":"evm","address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"assetType":"bond","createdAt":"2026-03-04T09:12:41.000Z","totalSupply":"50000000","basePrice":"100.00","basePriceCurrencyCode":"EUR","smartInterface":2,"pausable":{"paused":false},"logoUrl":"https://cdn.example.com/tokens/acme25.png","tokenFactory":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","templateLink":{"templateId":"att_northwind_founder_shares","templateSlug":"corporate-bond"},"capabilities":["share-capital"]},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CANTON_TOKEN_OPERATION_REQUEST_INVALID","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","TOKEN_MINT_AMOUNT_INVALID","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_TYPE_TEMPLATE_NOT_FOUND","CANTON_PARTY_WALLET_NOT_FOUND","CONTRACT_ERROR","NOT_FOUND","PRICE_RESOLVER_ADDON_NOT_INSTALLED","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"ASSET_TYPE_TEMPLATE_NOT_FOUND","status":404,"message":"Asset type template not found.","data":{"id":"DALP-0091","why":"The platform searched for the asset type template by the supplied ID and found no record owned by your organization or available as a system template.","fix":"Confirm the ID matches an existing template owned by your organization or a published system template. Re-fetch the list of asset type templates to verify the ID before retrying.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CORPORATE_ACTION_IN_FLIGHT","CUSTODY_ACCOUNT_SELECTION_INVALID","DURABLE_EXECUTION_ENGINE_CALL_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_MINT_MATURITY_REDEMPTION_MATURED","TOKEN_MUTATION_INSUFFICIENT_BALANCE","TOKEN_SUPPLY_PAUSED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_APPROVAL_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"CANTON_APPROVAL_EXPIRED","status":410,"message":"The Canton command's validity window closed","data":{"id":"DALP-9321","why":"The command's validity window closed while the intent waited for approval, so the platform never sent it to the ledger.","fix":"Submit the command again. The expired intent is terminal and its approval is not reopened.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_NETWORK_NOT_CONFIGURED","CANTON_NETWORK_NOT_ENABLED","CONTRACT_ERROR","CUSTODY_CANTON_SIGNING_UNSUPPORTED","OPERATION_FAMILY_UNSUPPORTED","ORGANIZATION_SUBMISSION_SIGNER_CLAIM_PURPOSE_MISSING","STRICT_COMPLIANCE_PARAMS_INVALID","SYSTEM_IDENTITY_CLAIM_ISSUE","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_CHAIN_UNAVAILABLE","TOKEN_CLAIM_ISSUE_FAILED","TOKEN_COMPLIANCE_MODULE_BINDING_UNRESOLVED","TOKEN_CREATE_AMBIGUOUS_INTEREST_PROVIDER","TOKEN_CREATE_ASSET_FAMILY_DEPRECATED","TOKEN_CREATE_DUPLICATE","TOKEN_CREATE_RECOVERY_FAILED","TOKEN_FUNDING_PAUSE_FAILED","TOKEN_OPERATION_INPUT_INVALID","TOKEN_PRICE_DENOMINATION_UNUSABLE","TOKEN_PRICE_FEED_FACTORY_MISSING","TOKEN_PRICE_FEED_SIGNER_MISSING","TOKEN_PRICE_INPUT_INVALID","TOKEN_PRICE_UPDATE_FAILED","TOKEN_QUEUE_WRITE_REFUSED","TOKEN_WORKFLOW_FAILED","TOKEN_WRITE_OUTCOME_UNKNOWN","TOKEN_WRITE_RECEIPT_INCOMPLETE","TOKEN_WRITE_REVERTED","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"CANTON_NETWORK_NOT_CONFIGURED","status":422,"message":"No Canton participant network is configured","data":{"id":"DALP-9313","why":"This deployment has no Canton participant network, so the platform cannot allocate a party or submit a DAML command.","fix":"Ask an operator to add a Canton network to the platform configuration, then retry.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_SUBMISSION_FAILED","CUSTODY_CREDENTIALS_UNAVAILABLE","INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"CANTON_SUBMISSION_FAILED","status":500,"message":"Canton command submission failed","data":{"id":"DALP-9318","why":"The platform accepted the command, then submission stopped before the ledger settled it.","fix":"Inspect the submission status, then retry with the same submission id when the failure is retryable.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_ACCESS_SYNC_RESULT_UNAVAILABLE","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_WRITE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.erc20_metadata.PROBE_FAILED","dapi.identity.CLAIM_ISSUE_DEPENDENCY_FAILED","dapi.identity.CLAIM_TOPIC_READ_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Mints new token units to one or more addresses on the selected EVM token, or issues new supply of a Canton instrument into the submitting party's own account when the body carries `instrumentAdmin` and the path names the instrument id. Recipients and amounts must have the same length. The platform checks the indexed token first, then submits a live chain transaction. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement. Minting is rejected while supply is paused or closed, or while a composition Corporate Action is in flight.","summary":"Mint tokens","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"recipients":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"array","items":{"$ref":"#/components/schemas/EvmAddress"},"minItems":1,"maxItems":100}]},"amounts":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"array","items":{"type":"string","pattern":"^[0-9]+$"},"minItems":1,"maxItems":100}]},"instrumentAdmin":{"not":{}}},"required":["recipients","amounts"],"additionalProperties":false},{"$ref":"#/components/schemas/CantonMintArmBody"}]}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/burns":{"post":{"tags":["Token transfers and supply"],"operationId":"v2/token/burn","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous mutation result (HTTP 200). The write settled within the request wait window. `data` is the token an EVM write moved, or the Canton operation a Canton write submitted.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"anyOf":[{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["evm"]},"address":{"$ref":"#/components/schemas/EvmAddress"},"name":{"type":"string"},"symbol":{"type":"string"},"decimals":{"type":"integer"},"assetType":{"$ref":"#/components/schemas/AssetTypeOrSlug"},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"totalSupply":{"$ref":"#/components/schemas/AssetAmount"},"basePrice":{"$ref":"#/components/schemas/BigDecimal"},"basePriceCurrencyCode":{"anyOf":[{"$ref":"#/components/schemas/FiatCurrency"},{"type":"null"}]},"smartInterface":{"anyOf":[{"type":"integer"},{"type":"null"}]},"pausable":{"type":"object","properties":{"paused":{"type":"boolean"}},"required":["paused"],"additionalProperties":false},"logoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"tokenFactory":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"templateLink":{"anyOf":[{"type":"object","properties":{"templateId":{"type":"string","minLength":1},"templateSlug":{"type":"string","minLength":1}},"required":["templateId","templateSlug"],"additionalProperties":false},{"type":"null"}]},"capabilities":{"type":"array","items":{"$ref":"#/components/schemas/InstrumentCapability"},"description":"The token's instrument capabilities: share-capital for shares, unit-capital for fund units and real-estate fractions. They decide which corporate actions the token offers. A token linked to a template carries the capabilities snapshotted from that template when it deployed. A token with no template link gets them derived when it is read, from its asset type and its attached features: equity without an attached conversion feature has share-capital, fund and real-estate have unit-capital, and any other type has none."}},"required":["_tag","address","name","symbol","decimals","assetType","createdAt","totalSupply","basePrice","basePriceCurrencyCode","smartInterface","pausable","logoUrl","tokenFactory","templateLink","capabilities"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["canton"]},"instrumentId":{"type":"string","minLength":1},"instrumentAdmin":{"$ref":"#/components/schemas/CantonPartyId"},"name":{"type":"string"},"symbol":{"type":"string"},"networkIdentity":{"type":"string","minLength":1},"disclosedAmount":{"type":"string","pattern":"^-?(0|[1-9]\\d*)(\\.\\d{1,10})?$"},"disclosedLockedAmount":{"type":"string","pattern":"^-?(0|[1-9]\\d*)(\\.\\d{1,10})?$"},"disclosedHolderCount":{"type":"integer","minimum":0},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["_tag","instrumentId","instrumentAdmin","name","symbol","networkIdentity","disclosedAmount","disclosedLockedAmount","disclosedHolderCount","updatedAt"],"additionalProperties":false}]},{"$ref":"#/components/schemas/CantonArmSettledResult"}]},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"type":"string","minLength":1}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string","minLength":1}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"_tag":"evm","address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"assetType":"bond","createdAt":"2026-03-04T09:12:41.000Z","totalSupply":"50000000","basePrice":"100.00","basePriceCurrencyCode":"EUR","smartInterface":2,"pausable":{"paused":false},"logoUrl":"https://cdn.example.com/tokens/acme25.png","tokenFactory":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","templateLink":{"templateId":"att_northwind_founder_shares","templateSlug":"corporate-bond"},"capabilities":["share-capital"]},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CANTON_TOKEN_OPERATION_REQUEST_INVALID","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_TYPE_TEMPLATE_NOT_FOUND","CANTON_PARTY_WALLET_NOT_FOUND","CONTRACT_ERROR","NOT_FOUND","PRICE_RESOLVER_ADDON_NOT_INSTALLED","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"ASSET_TYPE_TEMPLATE_NOT_FOUND","status":404,"message":"Asset type template not found.","data":{"id":"DALP-0091","why":"The platform searched for the asset type template by the supplied ID and found no record owned by your organization or available as a system template.","fix":"Confirm the ID matches an existing template owned by your organization or a published system template. Re-fetch the list of asset type templates to verify the ID before retrying.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CORPORATE_ACTION_IN_FLIGHT","CUSTODY_ACCOUNT_SELECTION_INVALID","DURABLE_EXECUTION_ENGINE_CALL_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_MUTATION_INSUFFICIENT_BALANCE","TOKEN_SUPPLY_PAUSED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_APPROVAL_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"CANTON_APPROVAL_EXPIRED","status":410,"message":"The Canton command's validity window closed","data":{"id":"DALP-9321","why":"The command's validity window closed while the intent waited for approval, so the platform never sent it to the ledger.","fix":"Submit the command again. The expired intent is terminal and its approval is not reopened.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_NETWORK_NOT_CONFIGURED","CANTON_NETWORK_NOT_ENABLED","CONTRACT_ERROR","CUSTODY_CANTON_SIGNING_UNSUPPORTED","OPERATION_FAMILY_UNSUPPORTED","ORGANIZATION_SUBMISSION_SIGNER_CLAIM_PURPOSE_MISSING","STRICT_COMPLIANCE_PARAMS_INVALID","SYSTEM_IDENTITY_CLAIM_ISSUE","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_CHAIN_UNAVAILABLE","TOKEN_CLAIM_ISSUE_FAILED","TOKEN_COMPLIANCE_MODULE_BINDING_UNRESOLVED","TOKEN_CREATE_AMBIGUOUS_INTEREST_PROVIDER","TOKEN_CREATE_ASSET_FAMILY_DEPRECATED","TOKEN_CREATE_DUPLICATE","TOKEN_CREATE_RECOVERY_FAILED","TOKEN_FUNDING_PAUSE_FAILED","TOKEN_OPERATION_INPUT_INVALID","TOKEN_PRICE_DENOMINATION_UNUSABLE","TOKEN_PRICE_FEED_FACTORY_MISSING","TOKEN_PRICE_FEED_SIGNER_MISSING","TOKEN_PRICE_INPUT_INVALID","TOKEN_PRICE_UPDATE_FAILED","TOKEN_QUEUE_WRITE_REFUSED","TOKEN_WORKFLOW_FAILED","TOKEN_WRITE_OUTCOME_UNKNOWN","TOKEN_WRITE_RECEIPT_INCOMPLETE","TOKEN_WRITE_REVERTED","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"CANTON_NETWORK_NOT_CONFIGURED","status":422,"message":"No Canton participant network is configured","data":{"id":"DALP-9313","why":"This deployment has no Canton participant network, so the platform cannot allocate a party or submit a DAML command.","fix":"Ask an operator to add a Canton network to the platform configuration, then retry.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_SUBMISSION_FAILED","CUSTODY_CREDENTIALS_UNAVAILABLE","INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"CANTON_SUBMISSION_FAILED","status":500,"message":"Canton command submission failed","data":{"id":"DALP-9318","why":"The platform accepted the command, then submission stopped before the ledger settled it.","fix":"Inspect the submission status, then retry with the same submission id when the failure is retryable.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_ACCESS_SYNC_RESULT_UNAVAILABLE","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_WRITE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.erc20_metadata.PROBE_FAILED","dapi.identity.CLAIM_ISSUE_DEPENDENCY_FAILED","dapi.identity.CLAIM_TOPIC_READ_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Burns token units from one or more addresses on the selected EVM token, or retires one holding of a Canton instrument the submitting party both administers and owns when the body carries `instrumentAdmin`. Addresses and amounts must have the same length. The platform checks the indexed token first, then submits a live chain transaction. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement. Burning is rejected while supply is paused, the source has too little spendable balance, or a composition Corporate Action is in flight.","summary":"Burn tokens","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"addresses":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"array","items":{"$ref":"#/components/schemas/EvmAddress"},"minItems":1,"maxItems":100}]},"amounts":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"array","items":{"type":"string","pattern":"^[0-9]+$"},"minItems":1,"maxItems":100}]},"instrumentAdmin":{"not":{}}},"required":["addresses","amounts"],"additionalProperties":false},{"$ref":"#/components/schemas/CantonBurnArmBody"}]}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/approvals":{"post":{"tags":["Token transfers and supply"],"operationId":"v2/token/approve","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous mutation result (HTTP 200). The write settled within the request wait window. `data` is the token an EVM write moved, or the Canton operation a Canton write submitted.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"anyOf":[{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["evm"]},"address":{"$ref":"#/components/schemas/EvmAddress"},"name":{"type":"string"},"symbol":{"type":"string"},"decimals":{"type":"integer"},"assetType":{"$ref":"#/components/schemas/AssetTypeOrSlug"},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"totalSupply":{"$ref":"#/components/schemas/AssetAmount"},"basePrice":{"$ref":"#/components/schemas/BigDecimal"},"basePriceCurrencyCode":{"anyOf":[{"$ref":"#/components/schemas/FiatCurrency"},{"type":"null"}]},"smartInterface":{"anyOf":[{"type":"integer"},{"type":"null"}]},"pausable":{"type":"object","properties":{"paused":{"type":"boolean"}},"required":["paused"],"additionalProperties":false},"logoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"tokenFactory":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"templateLink":{"anyOf":[{"type":"object","properties":{"templateId":{"type":"string","minLength":1},"templateSlug":{"type":"string","minLength":1}},"required":["templateId","templateSlug"],"additionalProperties":false},{"type":"null"}]},"capabilities":{"type":"array","items":{"$ref":"#/components/schemas/InstrumentCapability"},"description":"The token's instrument capabilities: share-capital for shares, unit-capital for fund units and real-estate fractions. They decide which corporate actions the token offers. A token linked to a template carries the capabilities snapshotted from that template when it deployed. A token with no template link gets them derived when it is read, from its asset type and its attached features: equity without an attached conversion feature has share-capital, fund and real-estate have unit-capital, and any other type has none."}},"required":["_tag","address","name","symbol","decimals","assetType","createdAt","totalSupply","basePrice","basePriceCurrencyCode","smartInterface","pausable","logoUrl","tokenFactory","templateLink","capabilities"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["canton"]},"instrumentId":{"type":"string","minLength":1},"instrumentAdmin":{"$ref":"#/components/schemas/CantonPartyId"},"name":{"type":"string"},"symbol":{"type":"string"},"networkIdentity":{"type":"string","minLength":1},"disclosedAmount":{"type":"string","pattern":"^-?(0|[1-9]\\d*)(\\.\\d{1,10})?$"},"disclosedLockedAmount":{"type":"string","pattern":"^-?(0|[1-9]\\d*)(\\.\\d{1,10})?$"},"disclosedHolderCount":{"type":"integer","minimum":0},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["_tag","instrumentId","instrumentAdmin","name","symbol","networkIdentity","disclosedAmount","disclosedLockedAmount","disclosedHolderCount","updatedAt"],"additionalProperties":false}]},{"$ref":"#/components/schemas/CantonArmSettledResult"}]},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"type":"string","minLength":1}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string","minLength":1}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"_tag":"evm","address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"assetType":"bond","createdAt":"2026-03-04T09:12:41.000Z","totalSupply":"50000000","basePrice":"100.00","basePriceCurrencyCode":"EUR","smartInterface":2,"pausable":{"paused":false},"logoUrl":"https://cdn.example.com/tokens/acme25.png","tokenFactory":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","templateLink":{"templateId":"att_northwind_founder_shares","templateSlug":"corporate-bond"},"capabilities":["share-capital"]},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CANTON_TOKEN_OPERATION_REQUEST_INVALID","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_TYPE_TEMPLATE_NOT_FOUND","CANTON_PARTY_WALLET_NOT_FOUND","CONTRACT_ERROR","NOT_FOUND","PRICE_RESOLVER_ADDON_NOT_INSTALLED","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"ASSET_TYPE_TEMPLATE_NOT_FOUND","status":404,"message":"Asset type template not found.","data":{"id":"DALP-0091","why":"The platform searched for the asset type template by the supplied ID and found no record owned by your organization or available as a system template.","fix":"Confirm the ID matches an existing template owned by your organization or a published system template. Re-fetch the list of asset type templates to verify the ID before retrying.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_SETTLEMENT_BATCH_NOT_COVERABLE","CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","DURABLE_EXECUTION_ENGINE_CALL_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_MUTATION_INSUFFICIENT_BALANCE","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CANTON_SETTLEMENT_BATCH_NOT_COVERABLE","status":409,"message":"The batch's allocations do not cover its transfer legs exactly","data":{"id":"DALP-9325","why":"Every leg of a batch needs both a sender and a receiver side authorized by an allocation, and at least one leg had neither or only one, so no leg executed and the platform released the escrow it had drawn.","fix":"Read the uncovered legs and unauthorized sides named in the response, escrow the missing sides, then submit the batch again.","retryable":false,"category":"domain","releasedAllocationContractIds":[],"unauthorizedTransferLegSides":[],"uncoveredTransferLegIds":[],"unreleasedAllocationContractIds":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_APPROVAL_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"CANTON_APPROVAL_EXPIRED","status":410,"message":"The Canton command's validity window closed","data":{"id":"DALP-9321","why":"The command's validity window closed while the intent waited for approval, so the platform never sent it to the ledger.","fix":"Submit the command again. The expired intent is terminal and its approval is not reopened.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_NETWORK_NOT_CONFIGURED","CANTON_NETWORK_NOT_ENABLED","CONTRACT_ERROR","CUSTODY_CANTON_SIGNING_UNSUPPORTED","OPERATION_FAMILY_UNSUPPORTED","ORGANIZATION_SUBMISSION_SIGNER_CLAIM_PURPOSE_MISSING","STRICT_COMPLIANCE_PARAMS_INVALID","SYSTEM_IDENTITY_CLAIM_ISSUE","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_CHAIN_UNAVAILABLE","TOKEN_CLAIM_ISSUE_FAILED","TOKEN_COMPLIANCE_MODULE_BINDING_UNRESOLVED","TOKEN_CREATE_AMBIGUOUS_INTEREST_PROVIDER","TOKEN_CREATE_ASSET_FAMILY_DEPRECATED","TOKEN_CREATE_DUPLICATE","TOKEN_CREATE_RECOVERY_FAILED","TOKEN_FUNDING_PAUSE_FAILED","TOKEN_OPERATION_INPUT_INVALID","TOKEN_PRICE_DENOMINATION_UNUSABLE","TOKEN_PRICE_FEED_FACTORY_MISSING","TOKEN_PRICE_FEED_SIGNER_MISSING","TOKEN_PRICE_INPUT_INVALID","TOKEN_PRICE_UPDATE_FAILED","TOKEN_QUEUE_WRITE_REFUSED","TOKEN_WORKFLOW_FAILED","TOKEN_WRITE_OUTCOME_UNKNOWN","TOKEN_WRITE_RECEIPT_INCOMPLETE","TOKEN_WRITE_REVERTED","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"CANTON_NETWORK_NOT_CONFIGURED","status":422,"message":"No Canton participant network is configured","data":{"id":"DALP-9313","why":"This deployment has no Canton participant network, so the platform cannot allocate a party or submit a DAML command.","fix":"Ask an operator to add a Canton network to the platform configuration, then retry.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_SUBMISSION_FAILED","CUSTODY_CREDENTIALS_UNAVAILABLE","INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"CANTON_SUBMISSION_FAILED","status":500,"message":"Canton command submission failed","data":{"id":"DALP-9318","why":"The platform accepted the command, then submission stopped before the ledger settled it.","fix":"Inspect the submission status, then retry with the same submission id when the failure is retryable.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_ACCESS_SYNC_RESULT_UNAVAILABLE","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_WRITE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.erc20_metadata.PROBE_FAILED","dapi.identity.CLAIM_ISSUE_DEPENDENCY_FAILED","dapi.identity.CLAIM_TOPIC_READ_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Sets the allowance the selected owner grants one spender on this EVM token in the active organization. When the body carries `instrumentAdmin`, it instead grants, adjusts or revokes an allowance on the submitting party's own account of the Canton instrument whose id the path names: the body then names the spender as a Canton party, the amount as the ledger's decimal, and the rules, allowance-book and previous-allowance contract ids a read handed back, and an amount of `0.0` revokes. The platform checks the indexed token first, then submits a live chain transaction. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement and receives the indexed token plus transaction hashes. A second identical call submits another approval.","summary":"Approve token spending","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"spender":{"$ref":"#/components/schemas/EvmAddress"},"amount":{"type":"string","pattern":"^[0-9]+$"}},"required":["spender","amount"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/transfers":{"post":{"tags":["Token transfers and supply"],"operationId":"v2/token/transfer","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous mutation result (HTTP 200). The write settled within the request wait window. `data` is the token an EVM write moved, or the Canton operation a Canton write submitted.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"anyOf":[{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["evm"]},"address":{"$ref":"#/components/schemas/EvmAddress"},"name":{"type":"string"},"symbol":{"type":"string"},"decimals":{"type":"integer"},"assetType":{"$ref":"#/components/schemas/AssetTypeOrSlug"},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"totalSupply":{"$ref":"#/components/schemas/AssetAmount"},"basePrice":{"$ref":"#/components/schemas/BigDecimal"},"basePriceCurrencyCode":{"anyOf":[{"$ref":"#/components/schemas/FiatCurrency"},{"type":"null"}]},"smartInterface":{"anyOf":[{"type":"integer"},{"type":"null"}]},"pausable":{"type":"object","properties":{"paused":{"type":"boolean"}},"required":["paused"],"additionalProperties":false},"logoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"tokenFactory":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"templateLink":{"anyOf":[{"type":"object","properties":{"templateId":{"type":"string","minLength":1},"templateSlug":{"type":"string","minLength":1}},"required":["templateId","templateSlug"],"additionalProperties":false},{"type":"null"}]},"capabilities":{"type":"array","items":{"$ref":"#/components/schemas/InstrumentCapability"},"description":"The token's instrument capabilities: share-capital for shares, unit-capital for fund units and real-estate fractions. They decide which corporate actions the token offers. A token linked to a template carries the capabilities snapshotted from that template when it deployed. A token with no template link gets them derived when it is read, from its asset type and its attached features: equity without an attached conversion feature has share-capital, fund and real-estate have unit-capital, and any other type has none."}},"required":["_tag","address","name","symbol","decimals","assetType","createdAt","totalSupply","basePrice","basePriceCurrencyCode","smartInterface","pausable","logoUrl","tokenFactory","templateLink","capabilities"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["canton"]},"instrumentId":{"type":"string","minLength":1},"instrumentAdmin":{"$ref":"#/components/schemas/CantonPartyId"},"name":{"type":"string"},"symbol":{"type":"string"},"networkIdentity":{"type":"string","minLength":1},"disclosedAmount":{"type":"string","pattern":"^-?(0|[1-9]\\d*)(\\.\\d{1,10})?$"},"disclosedLockedAmount":{"type":"string","pattern":"^-?(0|[1-9]\\d*)(\\.\\d{1,10})?$"},"disclosedHolderCount":{"type":"integer","minimum":0},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["_tag","instrumentId","instrumentAdmin","name","symbol","networkIdentity","disclosedAmount","disclosedLockedAmount","disclosedHolderCount","updatedAt"],"additionalProperties":false}]},{"$ref":"#/components/schemas/CantonArmSettledResult"}]},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"type":"string","minLength":1}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string","minLength":1}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"_tag":"evm","address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"assetType":"bond","createdAt":"2026-03-04T09:12:41.000Z","totalSupply":"50000000","basePrice":"100.00","basePriceCurrencyCode":"EUR","smartInterface":2,"pausable":{"paused":false},"logoUrl":"https://cdn.example.com/tokens/acme25.png","tokenFactory":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","templateLink":{"templateId":"att_northwind_founder_shares","templateSlug":"corporate-bond"},"capabilities":["share-capital"]},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CANTON_TOKEN_OPERATION_REQUEST_INVALID","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_TYPE_TEMPLATE_NOT_FOUND","CANTON_PARTY_WALLET_NOT_FOUND","CONTRACT_ERROR","NOT_FOUND","PRICE_RESOLVER_ADDON_NOT_INSTALLED","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"ASSET_TYPE_TEMPLATE_NOT_FOUND","status":404,"message":"Asset type template not found.","data":{"id":"DALP-0091","why":"The platform searched for the asset type template by the supplied ID and found no record owned by your organization or available as a system template.","fix":"Confirm the ID matches an existing template owned by your organization or a published system template. Re-fetch the list of asset type templates to verify the ID before retrying.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_SETTLEMENT_BATCH_NOT_COVERABLE","CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","DURABLE_EXECUTION_ENGINE_CALL_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_MUTATION_INSUFFICIENT_BALANCE","TOKEN_TRANSFER_PAUSED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CANTON_SETTLEMENT_BATCH_NOT_COVERABLE","status":409,"message":"The batch's allocations do not cover its transfer legs exactly","data":{"id":"DALP-9325","why":"Every leg of a batch needs both a sender and a receiver side authorized by an allocation, and at least one leg had neither or only one, so no leg executed and the platform released the escrow it had drawn.","fix":"Read the uncovered legs and unauthorized sides named in the response, escrow the missing sides, then submit the batch again.","retryable":false,"category":"domain","releasedAllocationContractIds":[],"unauthorizedTransferLegSides":[],"uncoveredTransferLegIds":[],"unreleasedAllocationContractIds":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_APPROVAL_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"CANTON_APPROVAL_EXPIRED","status":410,"message":"The Canton command's validity window closed","data":{"id":"DALP-9321","why":"The command's validity window closed while the intent waited for approval, so the platform never sent it to the ledger.","fix":"Submit the command again. The expired intent is terminal and its approval is not reopened.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_NETWORK_NOT_CONFIGURED","CANTON_NETWORK_NOT_ENABLED","CONTRACT_ERROR","CUSTODY_CANTON_SIGNING_UNSUPPORTED","OPERATION_FAMILY_UNSUPPORTED","ORGANIZATION_SUBMISSION_SIGNER_CLAIM_PURPOSE_MISSING","STRICT_COMPLIANCE_PARAMS_INVALID","SYSTEM_IDENTITY_CLAIM_ISSUE","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_BATCH_TRANSFER_FROM_UNSUPPORTED","TOKEN_CHAIN_UNAVAILABLE","TOKEN_CLAIM_ISSUE_FAILED","TOKEN_COMPLIANCE_MODULE_BINDING_UNRESOLVED","TOKEN_CREATE_AMBIGUOUS_INTEREST_PROVIDER","TOKEN_CREATE_ASSET_FAMILY_DEPRECATED","TOKEN_CREATE_DUPLICATE","TOKEN_CREATE_RECOVERY_FAILED","TOKEN_FUNDING_PAUSE_FAILED","TOKEN_OPERATION_INPUT_INVALID","TOKEN_PRICE_DENOMINATION_UNUSABLE","TOKEN_PRICE_FEED_FACTORY_MISSING","TOKEN_PRICE_FEED_SIGNER_MISSING","TOKEN_PRICE_INPUT_INVALID","TOKEN_PRICE_UPDATE_FAILED","TOKEN_QUEUE_WRITE_REFUSED","TOKEN_TRANSFER_MISSING_ITEM","TOKEN_WORKFLOW_FAILED","TOKEN_WRITE_OUTCOME_UNKNOWN","TOKEN_WRITE_RECEIPT_INCOMPLETE","TOKEN_WRITE_REVERTED","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"CANTON_NETWORK_NOT_CONFIGURED","status":422,"message":"No Canton participant network is configured","data":{"id":"DALP-9313","why":"This deployment has no Canton participant network, so the platform cannot allocate a party or submit a DAML command.","fix":"Ask an operator to add a Canton network to the platform configuration, then retry.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_SUBMISSION_FAILED","CUSTODY_CREDENTIALS_UNAVAILABLE","INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"CANTON_SUBMISSION_FAILED","status":500,"message":"Canton command submission failed","data":{"id":"DALP-9318","why":"The platform accepted the command, then submission stopped before the ledger settled it.","fix":"Inspect the submission status, then retry with the same submission id when the failure is retryable.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_ACCESS_SYNC_RESULT_UNAVAILABLE","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_WRITE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.erc20_metadata.PROBE_FAILED","dapi.identity.CLAIM_ISSUE_DEPENDENCY_FAILED","dapi.identity.CLAIM_TOPIC_READ_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Moves tokens from the caller, or from named `from` addresses when `transferType` is transferFrom, to one or more recipients on the selected EVM token. When the body carries `instrumentAdmin`, it instead instructs a Canton transfer out of the submitting party's account: the named holdings are locked to a transfer instruction the receiver accepts through the acceptances route, and nothing moves until it does. The platform checks the indexed token first, then submits a live chain transaction. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement. Transfers are rejected while the token is paused or a source has too little spendable balance.","summary":"Transfer tokens","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"transfers":{"type":"array","items":{"type":"object","properties":{"recipient":{"$ref":"#/components/schemas/EvmAddress"},"amount":{"type":"string","pattern":"^-?\\d+$"},"from":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]}},"required":["recipient","amount"],"additionalProperties":false},"minItems":1,"maxItems":10000},"transferType":{"type":"string","enum":["standard","transferFrom"]},"instrumentAdmin":{"not":{}}},"required":["transfers"],"additionalProperties":false},{"$ref":"#/components/schemas/CantonTransferArmBody"},{"$ref":"#/components/schemas/CantonAllowanceSpendArmBody"}]}}},"required":true},"x-dalp-auth":"session-or-api-key"},"get":{"tags":["Tokens"],"operationId":"v2/token/transfers","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"instrumentAdmin","in":"query","schema":{"type":"string","minLength":1,"description":"Canton external party identifier"},"required":false},{"name":"sort","in":"query","schema":{"type":"string"},"required":false},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"type":"integer"},"limit":{"type":"integer"}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"filter","in":"query","schema":{"type":"object","properties":{"status":{"type":"string","minLength":1},"createdAt":{"type":"string","minLength":1},"contractId":{"type":"string","minLength":1},"senderParty":{"type":"string","minLength":1,"description":"Canton external party identifier"},"receiverParty":{"type":"string","minLength":1,"description":"Canton external party identifier"},"allowanceSpender":{"type":"string","minLength":1,"description":"Canton external party identifier"},"amount":{"type":"string"},"requestedAt":{"type":"string"},"expiresAt":{"type":"string"},"createdOffset":{"type":"string"},"recordTime":{"type":"string"}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true}],"responses":{"200":{"description":"One page of transfers for the selected asset, in either chain family. `meta.total` counts every matching transfer, not only this page. An EVM token's transfers are its indexed transfer approvals, ordered by indexing time by default; a Canton instrument's are its live transfer instructions, ordered by creation offset by default. Every pagination link repeats `instrumentAdmin` when the asset is a Canton instrument.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransfersV2OutputSchema"},"examples":{"example-1":{"value":{"data":[{"family":"evm","id":"0x5FbDB2315678afecb367f032d93F642f64180aa3-0x71C7656EC7ab88b098defB751B7401B5f6d8976F-0x90F79bf6EB2c4f870365E785982E1f101E93b906-0x15d34AAf54267DB7D7c367839AAf71A00a2C6A65-1000000000000000000","token":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"},"fromIdentity":{"id":"0x90F79bf6EB2c4f870365E785982E1f101E93b906"},"toIdentity":{"id":"0x15d34AAf54267DB7D7c367839AAf71A00a2C6A65"},"value":"1000000000000000000","approverIdentity":"0x9965507D1a55bcC2695C58ba16FB37d819B0A4dc","expiry":"2026-12-31T23:59:59.000Z","status":"pending","createdAt":"2026-08-14T12:00:00.000Z","updatedAt":"2026-08-14T12:05:00.000Z"}],"meta":{"total":1},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/transfers?sort=-createdAt&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/transfers?sort=-createdAt&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/transfers?sort=-createdAt&page%5Boffset%5D=0&page%5Blimit%5D=50"}}},"example-2":{"value":{"data":[{"family":"canton","networkIdentity":"canton-local","contractId":"00a1b2c3d4e5f60718293a4b5c6d7e8f90a1b2c3d4e5f60718293a4b5c6d7e8f90","instrumentAdmin":"Canton::1220abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123","instrumentId":"NWC","senderParty":"Canton::1220abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123","receiverParty":"Canton::1220fedcba9876543210fedcba9876543210fedcba9876543210fedcba987654","amount":"1000","allowanceSpender":null,"requestedAt":"2026-08-21T09:15:00.000Z","expiresAt":null,"lockExpiresAt":null,"assessedFees":null,"createdOffset":"10427","updateId":"1220aabbccddeeff00112233445566778899aabbccddeeff0011223344556677","recordTime":"2026-08-21T09:15:00.000Z"}],"meta":{"total":1},"links":{"self":"/api/v2/tokens/NWC/transfers?sort=-createdOffset&page%5Boffset%5D=0&page%5Blimit%5D=50&instrumentAdmin=Canton%3A%3A1220abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123","first":"/api/v2/tokens/NWC/transfers?sort=-createdOffset&page%5Boffset%5D=0&page%5Blimit%5D=50&instrumentAdmin=Canton%3A%3A1220abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123","prev":null,"next":null,"last":"/api/v2/tokens/NWC/transfers?sort=-createdOffset&page%5Boffset%5D=0&page%5Blimit%5D=50&instrumentAdmin=Canton%3A%3A1220abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_FILTER_FAMILY_MISMATCH","ASSET_REFERENCE_INVALID","ASSET_SORT_FAMILY_MISMATCH","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_FILTER_FAMILY_MISMATCH","status":400,"message":"Filter names a column the asset's chain family does not have","data":{"id":"DALP-9324","why":"A shared collection under one asset, its holders or its events, advertises both families' columns, and the asset decides which family answers. The filter names a column from the other family, and the answering family has no such column to evaluate it against. The refusal names the field, the family, and the columns that family does publish on the collection that was read.","fix":"Filter on a column the named asset's family has, or read the asset in the family whose columns you are filtering on.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_NETWORK_NOT_CONFIGURED","CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"CANTON_NETWORK_NOT_CONFIGURED","status":422,"message":"No Canton participant network is configured","data":{"id":"DALP-9313","why":"This deployment has no Canton participant network, so the platform cannot allocate a party or submit a DAML command.","fix":"Ask an operator to add a Canton network to the platform configuration, then retry.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_READ_DEPENDENCY_FAILED","core.database.QUERY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"core.database.QUERY_FAILED","status":503,"message":"The database is temporarily unavailable","data":{"id":"DALP-12148","why":"The platform could not complete a database query required for this request.","fix":"Retry the request. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of transfers for the selected asset, in either chain family. The asset is named exactly as it is for the asset read: `assetId` is a contract address for an EVM token, or a Canton `instrumentId` sent together with the `instrumentAdmin` that completes its key. Every row carries `family`: an `evm` row is an indexed exact transfer approval recorded against the token, with its sender, recipient, approved value and lifecycle status, and a `canton` row is an in-flight Canton transfer instruction, with the sending and receiving party, the amount under instruction, the spender when it draws on an allowance, and any fees already assessed. Page, filter, and sort with the shared collection parameters; the EVM default is newest indexed first and the Canton default is creation offset descending. Filters and sorts are family-specific, and one that names the other family's column returns 400 rather than an emptier page or an ordering the caller did not name. Every pagination link repeats `instrumentAdmin` for a Canton instrument. The list is indexed; approvals are changed through the transfer-approval routes, not here.","summary":"List asset transfers","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/forced-transfers":{"post":{"tags":["Token transfers and supply"],"operationId":"v2/token/forcedTransfer","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous mutation result (HTTP 200). The write settled within the request wait window. `data` is the resulting token, `meta.txHashes` lists submitted transactions, and `links.self` is the token URL.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["evm"]},"address":{"$ref":"#/components/schemas/EvmAddress"},"name":{"type":"string"},"symbol":{"type":"string"},"decimals":{"type":"integer"},"assetType":{"$ref":"#/components/schemas/AssetTypeOrSlug"},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"totalSupply":{"$ref":"#/components/schemas/AssetAmount"},"basePrice":{"$ref":"#/components/schemas/BigDecimal"},"basePriceCurrencyCode":{"anyOf":[{"$ref":"#/components/schemas/FiatCurrency"},{"type":"null"}]},"smartInterface":{"anyOf":[{"type":"integer"},{"type":"null"}]},"pausable":{"type":"object","properties":{"paused":{"type":"boolean"}},"required":["paused"],"additionalProperties":false},"logoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"tokenFactory":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"templateLink":{"anyOf":[{"type":"object","properties":{"templateId":{"type":"string","minLength":1},"templateSlug":{"type":"string","minLength":1}},"required":["templateId","templateSlug"],"additionalProperties":false},{"type":"null"}]},"capabilities":{"type":"array","items":{"$ref":"#/components/schemas/InstrumentCapability"},"description":"The token's instrument capabilities: share-capital for shares, unit-capital for fund units and real-estate fractions. They decide which corporate actions the token offers. A token linked to a template carries the capabilities snapshotted from that template when it deployed. A token with no template link gets them derived when it is read, from its asset type and its attached features: equity without an attached conversion feature has share-capital, fund and real-estate have unit-capital, and any other type has none."}},"required":["_tag","address","name","symbol","decimals","assetType","createdAt","totalSupply","basePrice","basePriceCurrencyCode","smartInterface","pausable","logoUrl","tokenFactory","templateLink","capabilities"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["canton"]},"instrumentId":{"type":"string","minLength":1},"instrumentAdmin":{"$ref":"#/components/schemas/CantonPartyId"},"name":{"type":"string"},"symbol":{"type":"string"},"networkIdentity":{"type":"string","minLength":1},"disclosedAmount":{"type":"string","pattern":"^-?(0|[1-9]\\d*)(\\.\\d{1,10})?$"},"disclosedLockedAmount":{"type":"string","pattern":"^-?(0|[1-9]\\d*)(\\.\\d{1,10})?$"},"disclosedHolderCount":{"type":"integer","minimum":0},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["_tag","instrumentId","instrumentAdmin","name","symbol","networkIdentity","disclosedAmount","disclosedLockedAmount","disclosedHolderCount","updatedAt"],"additionalProperties":false}]},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"type":"string","minLength":1}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string","minLength":1}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"_tag":"evm","address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"assetType":"bond","createdAt":"2026-03-04T09:12:41.000Z","totalSupply":"50000000","basePrice":"100.00","basePriceCurrencyCode":"EUR","smartInterface":2,"pausable":{"paused":false},"logoUrl":"https://cdn.example.com/tokens/acme25.png","tokenFactory":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","templateLink":{"templateId":"att_northwind_founder_shares","templateSlug":"corporate-bond"},"capabilities":["share-capital"]},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_TYPE_TEMPLATE_NOT_FOUND","CONTRACT_ERROR","NOT_FOUND","PRICE_RESOLVER_ADDON_NOT_INSTALLED","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"ASSET_TYPE_TEMPLATE_NOT_FOUND","status":404,"message":"Asset type template not found.","data":{"id":"DALP-0091","why":"The platform searched for the asset type template by the supplied ID and found no record owned by your organization or available as a system template.","fix":"Confirm the ID matches an existing template owned by your organization or a published system template. Re-fetch the list of asset type templates to verify the ID before retrying.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","DURABLE_EXECUTION_ENGINE_CALL_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_MUTATION_INSUFFICIENT_BALANCE","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","ORGANIZATION_SUBMISSION_SIGNER_CLAIM_PURPOSE_MISSING","STRICT_COMPLIANCE_PARAMS_INVALID","SYSTEM_IDENTITY_CLAIM_ISSUE","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_CHAIN_UNAVAILABLE","TOKEN_CLAIM_ISSUE_FAILED","TOKEN_COMPLIANCE_MODULE_BINDING_UNRESOLVED","TOKEN_CREATE_AMBIGUOUS_INTEREST_PROVIDER","TOKEN_CREATE_ASSET_FAMILY_DEPRECATED","TOKEN_CREATE_DUPLICATE","TOKEN_CREATE_RECOVERY_FAILED","TOKEN_FORCED_TRANSFER_MISSING_ITEM","TOKEN_FUNDING_PAUSE_FAILED","TOKEN_OPERATION_INPUT_INVALID","TOKEN_PRICE_DENOMINATION_UNUSABLE","TOKEN_PRICE_FEED_FACTORY_MISSING","TOKEN_PRICE_FEED_SIGNER_MISSING","TOKEN_PRICE_INPUT_INVALID","TOKEN_PRICE_UPDATE_FAILED","TOKEN_QUEUE_WRITE_REFUSED","TOKEN_WORKFLOW_FAILED","TOKEN_WRITE_OUTCOME_UNKNOWN","TOKEN_WRITE_RECEIPT_INCOMPLETE","TOKEN_WRITE_REVERTED","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_ACCESS_SYNC_RESULT_UNAVAILABLE","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_WRITE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.erc20_metadata.PROBE_FAILED","dapi.identity.CLAIM_ISSUE_DEPENDENCY_FAILED","dapi.identity.CLAIM_TOPIC_READ_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Seizes tokens from named source addresses and sends them to the listed recipients on the selected EVM token in the active organization. The caller must hold a role that can force transfers. This operation has no Canton arm: the ledger's forced move is controlled by the admin together with the destination account's parties, and an interactive submission signs one party, so a body naming `instrumentAdmin` is refused with the family it does serve. The platform checks the indexed token first, then submits a live chain transaction. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement.","summary":"Force transfer tokens","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"transfers":{"type":"array","items":{"type":"object","properties":{"from":{"$ref":"#/components/schemas/EvmAddress"},"recipient":{"$ref":"#/components/schemas/EvmAddress"},"amount":{"type":"string","pattern":"^-?\\d+$"}},"required":["from","recipient","amount"],"additionalProperties":false},"minItems":1,"maxItems":10000},"instrumentAdmin":{"not":{}}},"required":["transfers"],"additionalProperties":false},{"$ref":"#/components/schemas/CantonFamilyProbeBody"}]}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/transfers/{transferId}/acceptances":{"post":{"tags":["Token transfers and supply"],"operationId":"v2/token/acceptTransfer","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"transferId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous mutation result (HTTP 200). The operation settled within the request wait window. `data` names the submission id a caller polls and the contract the choice created.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CantonArmSettledResult"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"type":"string","minLength":1}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string","minLength":1}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"operationId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","submissionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","ledgerSubmissionId":"1220ab","preparedHashHex":"deadbeef"},"meta":{"txHashes":[]},"links":{"self":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CANTON_TOKEN_OPERATION_REQUEST_INVALID","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_TYPE_TEMPLATE_NOT_FOUND","CANTON_PARTY_WALLET_NOT_FOUND","CONTRACT_ERROR","NOT_FOUND","PRICE_RESOLVER_ADDON_NOT_INSTALLED","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"ASSET_TYPE_TEMPLATE_NOT_FOUND","status":404,"message":"Asset type template not found.","data":{"id":"DALP-0091","why":"The platform searched for the asset type template by the supplied ID and found no record owned by your organization or available as a system template.","fix":"Confirm the ID matches an existing template owned by your organization or a published system template. Re-fetch the list of asset type templates to verify the ID before retrying.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","DURABLE_EXECUTION_ENGINE_CALL_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_MUTATION_INSUFFICIENT_BALANCE","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_APPROVAL_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"CANTON_APPROVAL_EXPIRED","status":410,"message":"The Canton command's validity window closed","data":{"id":"DALP-9321","why":"The command's validity window closed while the intent waited for approval, so the platform never sent it to the ledger.","fix":"Submit the command again. The expired intent is terminal and its approval is not reopened.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_NETWORK_NOT_CONFIGURED","CANTON_NETWORK_NOT_ENABLED","CONTRACT_ERROR","CUSTODY_CANTON_SIGNING_UNSUPPORTED","OPERATION_FAMILY_UNSUPPORTED","ORGANIZATION_SUBMISSION_SIGNER_CLAIM_PURPOSE_MISSING","STRICT_COMPLIANCE_PARAMS_INVALID","SYSTEM_IDENTITY_CLAIM_ISSUE","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_CHAIN_UNAVAILABLE","TOKEN_CLAIM_ISSUE_FAILED","TOKEN_COMPLIANCE_MODULE_BINDING_UNRESOLVED","TOKEN_CREATE_AMBIGUOUS_INTEREST_PROVIDER","TOKEN_CREATE_ASSET_FAMILY_DEPRECATED","TOKEN_CREATE_DUPLICATE","TOKEN_CREATE_RECOVERY_FAILED","TOKEN_FUNDING_PAUSE_FAILED","TOKEN_OPERATION_INPUT_INVALID","TOKEN_PRICE_DENOMINATION_UNUSABLE","TOKEN_PRICE_FEED_FACTORY_MISSING","TOKEN_PRICE_FEED_SIGNER_MISSING","TOKEN_PRICE_INPUT_INVALID","TOKEN_PRICE_UPDATE_FAILED","TOKEN_QUEUE_WRITE_REFUSED","TOKEN_WORKFLOW_FAILED","TOKEN_WRITE_OUTCOME_UNKNOWN","TOKEN_WRITE_RECEIPT_INCOMPLETE","TOKEN_WRITE_REVERTED","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"CANTON_NETWORK_NOT_CONFIGURED","status":422,"message":"No Canton participant network is configured","data":{"id":"DALP-9313","why":"This deployment has no Canton participant network, so the platform cannot allocate a party or submit a DAML command.","fix":"Ask an operator to add a Canton network to the platform configuration, then retry.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_SUBMISSION_FAILED","CUSTODY_CREDENTIALS_UNAVAILABLE","INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"CANTON_SUBMISSION_FAILED","status":500,"message":"Canton command submission failed","data":{"id":"DALP-9318","why":"The platform accepted the command, then submission stopped before the ledger settled it.","fix":"Inspect the submission status, then retry with the same submission id when the failure is retryable.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_ACCESS_SYNC_RESULT_UNAVAILABLE","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_WRITE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.erc20_metadata.PROBE_FAILED","dapi.identity.CLAIM_ISSUE_DEPENDENCY_FAILED","dapi.identity.CLAIM_TOPIC_READ_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Accepts a pending Canton transfer instruction addressed to the submitting party, which is what actually moves the amount. The instruction is named by the `transferId` segment, the instrument by `assetId` and the body's `instrumentAdmin`, and nothing moves until the receiver accepts: the sender's instruction is not a transfer. This route serves no EVM token, so a body naming no `instrumentAdmin` is refused with the family it does serve. By default the platform queues the operation and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement.","summary":"Accept a Canton transfer instruction","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/CantonTransferAcceptanceArmBody"},{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"instrumentAdmin":{"not":{}}},"additionalProperties":false}],"description":"Acceptance request. Send a Canton body carrying `instrumentAdmin` and the submitting party."}}},"required":false},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/transfer-simulate":{"get":{"tags":["Token transfers and supply"],"operationId":"v2/token/transferSimulate","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"from","in":"query","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"name":"to","in":"query","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"name":"amount","in":"query","schema":{"type":"string","pattern":"^[0-9]+$"},"required":true}],"responses":{"200":{"description":"Live transfer simulation. `data.verdict` comes only from on-chain canTransfer. When the transfer would revert, `data.blockers` names the classified causes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenTransferSimulateOutputSchema"},"examples":{"example-1":{"value":{"data":{"verdict":"will-revert","blockers":[{"code":"identity-not-verified","moduleTypeId":"identity-verification","moduleInstance":"0x5FbDB2315678afecb367f032d93F642f64180aa3","party":"recipient","reason":"identity-not-verified","remediationClass":"self-serve","remediation":{"kind":"issue-claim","topics":["knowYourCustomer"]},"topics":["knowYourCustomer"]}]},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/transfer-simulate"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_TYPE_TEMPLATE_NOT_FOUND","CONTRACT_ERROR","NOT_FOUND","PRICE_RESOLVER_ADDON_NOT_INSTALLED","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"ASSET_TYPE_TEMPLATE_NOT_FOUND","status":404,"message":"Asset type template not found.","data":{"id":"DALP-0091","why":"The platform searched for the asset type template by the supplied ID and found no record owned by your organization or available as a system template.","fix":"Confirm the ID matches an existing template owned by your organization or a published system template. Re-fetch the list of asset type templates to verify the ID before retrying.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","DURABLE_EXECUTION_ENGINE_CALL_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_MUTATION_INSUFFICIENT_BALANCE","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","ORGANIZATION_SUBMISSION_SIGNER_CLAIM_PURPOSE_MISSING","STRICT_COMPLIANCE_PARAMS_INVALID","SYSTEM_IDENTITY_CLAIM_ISSUE","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_CHAIN_UNAVAILABLE","TOKEN_CLAIM_ISSUE_FAILED","TOKEN_COMPLIANCE_MODULE_BINDING_UNRESOLVED","TOKEN_CREATE_AMBIGUOUS_INTEREST_PROVIDER","TOKEN_CREATE_ASSET_FAMILY_DEPRECATED","TOKEN_CREATE_DUPLICATE","TOKEN_CREATE_RECOVERY_FAILED","TOKEN_FUNDING_PAUSE_FAILED","TOKEN_OPERATION_INPUT_INVALID","TOKEN_PRICE_DENOMINATION_UNUSABLE","TOKEN_PRICE_FEED_FACTORY_MISSING","TOKEN_PRICE_FEED_SIGNER_MISSING","TOKEN_PRICE_INPUT_INVALID","TOKEN_PRICE_UPDATE_FAILED","TOKEN_QUEUE_WRITE_REFUSED","TOKEN_WORKFLOW_FAILED","TOKEN_WRITE_OUTCOME_UNKNOWN","TOKEN_WRITE_RECEIPT_INCOMPLETE","TOKEN_WRITE_REVERTED","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_ACCESS_SYNC_RESULT_UNAVAILABLE","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_WRITE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.erc20_metadata.PROBE_FAILED","dapi.identity.CLAIM_ISSUE_DEPENDENCY_FAILED","dapi.identity.CLAIM_TOPIC_READ_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","dapi.transfer-simulation.UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Checks whether a transfer of the named amount from `from` to `to` would pass live on-chain `canTransfer` on the selected token, without submitting a transaction. The verdict comes only from that live call. When the transfer would revert, the body lists classified blockers from the token's indexed compliance modules and names who can clear each one. The simulation is idempotent.","summary":"Simulate a token transfer","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/transfer-approvals":{"get":{"tags":["Tokens"],"operationId":"v2/token/transferApprovals","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"sort","in":"query","schema":{"type":"string","enum":["status","createdAt","updatedAt","value","-status","-createdAt","-updatedAt","-value"]},"required":false},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"filter","in":"query","schema":{"type":"object","properties":{"status":{"anyOf":[{"type":"string","enum":["pending","consumed","revoked"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1},"ne":{"type":"string","minLength":1},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["true","false"]}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["true","false"]}]}},"allOf":[{"type":"object","additionalProperties":{}}]}]},"createdAt":{"anyOf":[{"type":"string"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"gt":{"type":"string"},"gte":{"type":"string"},"lt":{"type":"string"},"lte":{"type":"string"},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["true","false"]}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["true","false"]}]}},"allOf":[{"type":"object","additionalProperties":{}}]}]}},"allOf":[{"type":"object","additionalProperties":{}}]},"required":false,"style":"deepObject","explode":true},{"name":"status","in":"query","schema":{"anyOf":[{"type":"string","enum":["pending","consumed","revoked"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1},"ne":{"type":"string","minLength":1},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["true","false"]}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["true","false"]}]}},"allOf":[{"type":"object","additionalProperties":{}}]}]},"required":false,"style":"deepObject","explode":true},{"name":"createdAt","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"gt":{"type":"string"},"gte":{"type":"string"},"lt":{"type":"string"},"lte":{"type":"string"},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["true","false"]}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["true","false"]}]}},"allOf":[{"type":"object","additionalProperties":{}}]}]},"required":false,"style":"deepObject","explode":true}],"responses":{"200":{"description":"Paginated list envelope. `data` is one page of items. `meta.total` and `meta.facets` describe the full filtered set. `links` carries first, previous, next, and last page URLs with the same sort and filters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferApprovalCollectionResponse"},"examples":{"example-1":{"value":{"data":[{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","token":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"},"fromIdentity":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"},"toIdentity":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"},"value":"1000000000000000000","approverIdentity":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","expiry":"2026-12-31T23:59:59.000Z","status":"pending","createdAt":"2026-08-01T09:00:00.000Z","updatedAt":"2026-08-01T09:00:00.000Z"}],"meta":{"total":1,"facets":{}},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants","first":"/v2/accounts?sort=-firstSeenBlock&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/accounts?sort=-firstSeenBlock&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TOKEN_WRITE_PERSISTENCE_FAILED","core.database.QUERY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Lists pending, consumed, and revoked exact transfer approvals for the selected token in the active organization and request chain. Rows come from indexed Transfer Approval compliance events, not from a live contract read. Filter by status or created time, then sort by created time, updated time, or approved value. After you pre-approve or revoke a transfer, wait for indexing before the new status appears.","summary":"List transfer approvals","x-dalp-auth":"session-or-api-key"},"post":{"tags":["Token transfers and supply"],"operationId":"v2/token/approveTransfer","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous mutation result (HTTP 200). The write settled within the request wait window. `data` is the token an EVM write moved, or the Canton operation a Canton write submitted.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"anyOf":[{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["evm"]},"address":{"$ref":"#/components/schemas/EvmAddress"},"name":{"type":"string"},"symbol":{"type":"string"},"decimals":{"type":"integer"},"assetType":{"$ref":"#/components/schemas/AssetTypeOrSlug"},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"totalSupply":{"$ref":"#/components/schemas/AssetAmount"},"basePrice":{"$ref":"#/components/schemas/BigDecimal"},"basePriceCurrencyCode":{"anyOf":[{"$ref":"#/components/schemas/FiatCurrency"},{"type":"null"}]},"smartInterface":{"anyOf":[{"type":"integer"},{"type":"null"}]},"pausable":{"type":"object","properties":{"paused":{"type":"boolean"}},"required":["paused"],"additionalProperties":false},"logoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"tokenFactory":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"templateLink":{"anyOf":[{"type":"object","properties":{"templateId":{"type":"string","minLength":1},"templateSlug":{"type":"string","minLength":1}},"required":["templateId","templateSlug"],"additionalProperties":false},{"type":"null"}]},"capabilities":{"type":"array","items":{"$ref":"#/components/schemas/InstrumentCapability"},"description":"The token's instrument capabilities: share-capital for shares, unit-capital for fund units and real-estate fractions. They decide which corporate actions the token offers. A token linked to a template carries the capabilities snapshotted from that template when it deployed. A token with no template link gets them derived when it is read, from its asset type and its attached features: equity without an attached conversion feature has share-capital, fund and real-estate have unit-capital, and any other type has none."}},"required":["_tag","address","name","symbol","decimals","assetType","createdAt","totalSupply","basePrice","basePriceCurrencyCode","smartInterface","pausable","logoUrl","tokenFactory","templateLink","capabilities"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["canton"]},"instrumentId":{"type":"string","minLength":1},"instrumentAdmin":{"$ref":"#/components/schemas/CantonPartyId"},"name":{"type":"string"},"symbol":{"type":"string"},"networkIdentity":{"type":"string","minLength":1},"disclosedAmount":{"type":"string","pattern":"^-?(0|[1-9]\\d*)(\\.\\d{1,10})?$"},"disclosedLockedAmount":{"type":"string","pattern":"^-?(0|[1-9]\\d*)(\\.\\d{1,10})?$"},"disclosedHolderCount":{"type":"integer","minimum":0},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["_tag","instrumentId","instrumentAdmin","name","symbol","networkIdentity","disclosedAmount","disclosedLockedAmount","disclosedHolderCount","updatedAt"],"additionalProperties":false}]},{"$ref":"#/components/schemas/CantonArmSettledResult"}]},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"type":"string","minLength":1}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string","minLength":1}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"_tag":"evm","address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"assetType":"bond","createdAt":"2026-03-04T09:12:41.000Z","totalSupply":"50000000","basePrice":"100.00","basePriceCurrencyCode":"EUR","smartInterface":2,"pausable":{"paused":false},"logoUrl":"https://cdn.example.com/tokens/acme25.png","tokenFactory":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","templateLink":{"templateId":"att_northwind_founder_shares","templateSlug":"corporate-bond"},"capabilities":["share-capital"]},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CANTON_TOKEN_OPERATION_REQUEST_INVALID","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_TYPE_TEMPLATE_NOT_FOUND","CANTON_PARTY_WALLET_NOT_FOUND","CONTRACT_ERROR","NOT_FOUND","PRICE_RESOLVER_ADDON_NOT_INSTALLED","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"ASSET_TYPE_TEMPLATE_NOT_FOUND","status":404,"message":"Asset type template not found.","data":{"id":"DALP-0091","why":"The platform searched for the asset type template by the supplied ID and found no record owned by your organization or available as a system template.","fix":"Confirm the ID matches an existing template owned by your organization or a published system template. Re-fetch the list of asset type templates to verify the ID before retrying.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","DURABLE_EXECUTION_ENGINE_CALL_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_MUTATION_INSUFFICIENT_BALANCE","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_APPROVAL_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"CANTON_APPROVAL_EXPIRED","status":410,"message":"The Canton command's validity window closed","data":{"id":"DALP-9321","why":"The command's validity window closed while the intent waited for approval, so the platform never sent it to the ledger.","fix":"Submit the command again. The expired intent is terminal and its approval is not reopened.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_NETWORK_NOT_CONFIGURED","CANTON_NETWORK_NOT_ENABLED","CONTRACT_ERROR","CUSTODY_CANTON_SIGNING_UNSUPPORTED","OPERATION_FAMILY_UNSUPPORTED","ORGANIZATION_SUBMISSION_SIGNER_CLAIM_PURPOSE_MISSING","STRICT_COMPLIANCE_PARAMS_INVALID","SYSTEM_IDENTITY_CLAIM_ISSUE","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_CHAIN_UNAVAILABLE","TOKEN_CLAIM_ISSUE_FAILED","TOKEN_COMPLIANCE_MODULE_BINDING_UNRESOLVED","TOKEN_CREATE_AMBIGUOUS_INTEREST_PROVIDER","TOKEN_CREATE_ASSET_FAMILY_DEPRECATED","TOKEN_CREATE_DUPLICATE","TOKEN_CREATE_RECOVERY_FAILED","TOKEN_FUNDING_PAUSE_FAILED","TOKEN_OPERATION_INPUT_INVALID","TOKEN_PRICE_DENOMINATION_UNUSABLE","TOKEN_PRICE_FEED_FACTORY_MISSING","TOKEN_PRICE_FEED_SIGNER_MISSING","TOKEN_PRICE_INPUT_INVALID","TOKEN_PRICE_UPDATE_FAILED","TOKEN_QUEUE_WRITE_REFUSED","TOKEN_TRANSFER_APPROVAL_VALIDATION","TOKEN_WORKFLOW_FAILED","TOKEN_WRITE_OUTCOME_UNKNOWN","TOKEN_WRITE_RECEIPT_INCOMPLETE","TOKEN_WRITE_REVERTED","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"CANTON_NETWORK_NOT_CONFIGURED","status":422,"message":"No Canton participant network is configured","data":{"id":"DALP-9313","why":"This deployment has no Canton participant network, so the platform cannot allocate a party or submit a DAML command.","fix":"Ask an operator to add a Canton network to the platform configuration, then retry.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_SUBMISSION_FAILED","CUSTODY_CREDENTIALS_UNAVAILABLE","INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"CANTON_SUBMISSION_FAILED","status":500,"message":"Canton command submission failed","data":{"id":"DALP-9318","why":"The platform accepted the command, then submission stopped before the ledger settled it.","fix":"Inspect the submission status, then retry with the same submission id when the failure is retryable.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_ACCESS_SYNC_RESULT_UNAVAILABLE","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_WRITE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.erc20_metadata.PROBE_FAILED","dapi.identity.CLAIM_ISSUE_DEPENDENCY_FAILED","dapi.identity.CLAIM_TOPIC_READ_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Records an exact transfer the selected token's Transfer Approval module will later allow, scoped to the active organization. When the body carries `instrumentAdmin`, it instead grants one single-use Canton transfer approval on the named instrument: the approver signs for the exact sender, receiver and amount, and the submission names the module contract by the id the Canton compliance read returned. The platform checks the indexed token first, then submits a live chain transaction. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement. After indexing, list transfer approvals to confirm the pending row.","summary":"Pre-approve an exact token transfer","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"fromWallet":{"$ref":"#/components/schemas/EvmAddress"},"toWallet":{"$ref":"#/components/schemas/EvmAddress"},"fromIdentityAddress":{"$ref":"#/components/schemas/EvmAddress"},"toIdentityAddress":{"$ref":"#/components/schemas/EvmAddress"},"amount":{"type":"string","pattern":"^-?\\d+$"},"instrumentAdmin":{"not":{}}},"required":["fromWallet","toWallet","amount"],"additionalProperties":false},{"$ref":"#/components/schemas/CantonTransferApprovalArmBody"}],"description":"Transfer approval. Send the EVM fields, or a Canton body carrying `instrumentAdmin`."}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/transfer-approval-revocations":{"post":{"tags":["Token transfers and supply"],"operationId":"v2/token/revokeTransferApproval","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous mutation result (HTTP 200). The write settled within the request wait window. `data` is the resulting token, `meta.txHashes` lists submitted transactions, and `links.self` is the token URL.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["evm"]},"address":{"$ref":"#/components/schemas/EvmAddress"},"name":{"type":"string"},"symbol":{"type":"string"},"decimals":{"type":"integer"},"assetType":{"$ref":"#/components/schemas/AssetTypeOrSlug"},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"totalSupply":{"$ref":"#/components/schemas/AssetAmount"},"basePrice":{"$ref":"#/components/schemas/BigDecimal"},"basePriceCurrencyCode":{"anyOf":[{"$ref":"#/components/schemas/FiatCurrency"},{"type":"null"}]},"smartInterface":{"anyOf":[{"type":"integer"},{"type":"null"}]},"pausable":{"type":"object","properties":{"paused":{"type":"boolean"}},"required":["paused"],"additionalProperties":false},"logoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"tokenFactory":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"templateLink":{"anyOf":[{"type":"object","properties":{"templateId":{"type":"string","minLength":1},"templateSlug":{"type":"string","minLength":1}},"required":["templateId","templateSlug"],"additionalProperties":false},{"type":"null"}]},"capabilities":{"type":"array","items":{"$ref":"#/components/schemas/InstrumentCapability"},"description":"The token's instrument capabilities: share-capital for shares, unit-capital for fund units and real-estate fractions. They decide which corporate actions the token offers. A token linked to a template carries the capabilities snapshotted from that template when it deployed. A token with no template link gets them derived when it is read, from its asset type and its attached features: equity without an attached conversion feature has share-capital, fund and real-estate have unit-capital, and any other type has none."}},"required":["_tag","address","name","symbol","decimals","assetType","createdAt","totalSupply","basePrice","basePriceCurrencyCode","smartInterface","pausable","logoUrl","tokenFactory","templateLink","capabilities"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["canton"]},"instrumentId":{"type":"string","minLength":1},"instrumentAdmin":{"$ref":"#/components/schemas/CantonPartyId"},"name":{"type":"string"},"symbol":{"type":"string"},"networkIdentity":{"type":"string","minLength":1},"disclosedAmount":{"type":"string","pattern":"^-?(0|[1-9]\\d*)(\\.\\d{1,10})?$"},"disclosedLockedAmount":{"type":"string","pattern":"^-?(0|[1-9]\\d*)(\\.\\d{1,10})?$"},"disclosedHolderCount":{"type":"integer","minimum":0},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["_tag","instrumentId","instrumentAdmin","name","symbol","networkIdentity","disclosedAmount","disclosedLockedAmount","disclosedHolderCount","updatedAt"],"additionalProperties":false}]},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"type":"string","minLength":1}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string","minLength":1}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"_tag":"evm","address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"assetType":"bond","createdAt":"2026-03-04T09:12:41.000Z","totalSupply":"50000000","basePrice":"100.00","basePriceCurrencyCode":"EUR","smartInterface":2,"pausable":{"paused":false},"logoUrl":"https://cdn.example.com/tokens/acme25.png","tokenFactory":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","templateLink":{"templateId":"att_northwind_founder_shares","templateSlug":"corporate-bond"},"capabilities":["share-capital"]},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_TYPE_TEMPLATE_NOT_FOUND","CONTRACT_ERROR","NOT_FOUND","PRICE_RESOLVER_ADDON_NOT_INSTALLED","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"ASSET_TYPE_TEMPLATE_NOT_FOUND","status":404,"message":"Asset type template not found.","data":{"id":"DALP-0091","why":"The platform searched for the asset type template by the supplied ID and found no record owned by your organization or available as a system template.","fix":"Confirm the ID matches an existing template owned by your organization or a published system template. Re-fetch the list of asset type templates to verify the ID before retrying.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","DURABLE_EXECUTION_ENGINE_CALL_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_MUTATION_INSUFFICIENT_BALANCE","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","ORGANIZATION_SUBMISSION_SIGNER_CLAIM_PURPOSE_MISSING","STRICT_COMPLIANCE_PARAMS_INVALID","SYSTEM_IDENTITY_CLAIM_ISSUE","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_CHAIN_UNAVAILABLE","TOKEN_CLAIM_ISSUE_FAILED","TOKEN_COMPLIANCE_MODULE_BINDING_UNRESOLVED","TOKEN_CREATE_AMBIGUOUS_INTEREST_PROVIDER","TOKEN_CREATE_ASSET_FAMILY_DEPRECATED","TOKEN_CREATE_DUPLICATE","TOKEN_CREATE_RECOVERY_FAILED","TOKEN_FUNDING_PAUSE_FAILED","TOKEN_OPERATION_INPUT_INVALID","TOKEN_PRICE_DENOMINATION_UNUSABLE","TOKEN_PRICE_FEED_FACTORY_MISSING","TOKEN_PRICE_FEED_SIGNER_MISSING","TOKEN_PRICE_INPUT_INVALID","TOKEN_PRICE_UPDATE_FAILED","TOKEN_QUEUE_WRITE_REFUSED","TOKEN_TRANSFER_APPROVAL_VALIDATION","TOKEN_WORKFLOW_FAILED","TOKEN_WRITE_OUTCOME_UNKNOWN","TOKEN_WRITE_RECEIPT_INCOMPLETE","TOKEN_WRITE_REVERTED","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_ACCESS_SYNC_RESULT_UNAVAILABLE","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_WRITE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.erc20_metadata.PROBE_FAILED","dapi.identity.CLAIM_ISSUE_DEPENDENCY_FAILED","dapi.identity.CLAIM_TOPIC_READ_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Removes a previously recorded exact transfer approval on the selected token in the active organization. The platform checks the indexed token first, then submits a live chain transaction. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement. After indexing, list transfer approvals to confirm the revoked status.","summary":"Revoke an exact token transfer approval","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"fromWallet":{"$ref":"#/components/schemas/EvmAddress"},"toWallet":{"$ref":"#/components/schemas/EvmAddress"},"fromIdentityAddress":{"$ref":"#/components/schemas/EvmAddress"},"toIdentityAddress":{"$ref":"#/components/schemas/EvmAddress"},"amount":{"type":"string","pattern":"^-?\\d+$"},"instrumentAdmin":{"not":{}}},"required":["fromWallet","toWallet","amount"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/aa-role-migration/pending":{"get":{"tags":["Tokens"],"operationId":"v2/token/aaRoleMigrationPending","parameters":[{"name":"sort","in":"query","schema":{"type":"string","enum":["tokenName","tokenSymbol","driftingParticipantCount","-tokenName","-tokenSymbol","-driftingParticipantCount"]},"required":false},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"filter","in":"query","schema":{"type":"object","properties":{"tokenAddress":{"anyOf":[{"type":"string","minLength":1},{"type":"object","properties":{"eq":{"type":"string","minLength":1},"ne":{"type":"string","minLength":1},"iLike":{"type":"string","minLength":1},"notILike":{"type":"string","minLength":1},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["true","false"]}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["true","false"]}]}},"allOf":[{"type":"object","additionalProperties":{}}]}]},"tokenName":{"anyOf":[{"type":"string","minLength":1},{"type":"object","properties":{"eq":{"type":"string","minLength":1},"ne":{"type":"string","minLength":1},"iLike":{"type":"string","minLength":1},"notILike":{"type":"string","minLength":1},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["true","false"]}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["true","false"]}]}},"allOf":[{"type":"object","additionalProperties":{}}]}]},"tokenSymbol":{"anyOf":[{"type":"string","minLength":1},{"type":"object","properties":{"eq":{"type":"string","minLength":1},"ne":{"type":"string","minLength":1},"iLike":{"type":"string","minLength":1},"notILike":{"type":"string","minLength":1},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["true","false"]}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["true","false"]}]}},"allOf":[{"type":"object","additionalProperties":{}}]}]},"accessManagerAddress":{"anyOf":[{"type":"string","minLength":1},{"type":"object","properties":{"eq":{"type":"string","minLength":1},"ne":{"type":"string","minLength":1},"iLike":{"type":"string","minLength":1},"notILike":{"type":"string","minLength":1},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["true","false"]}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["true","false"]}]}},"allOf":[{"type":"object","additionalProperties":{}}]}]},"driftingParticipantCount":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"string"}]},{"type":"object","properties":{"eq":{"anyOf":[{"type":"number"},{"type":"string"}]},"ne":{"anyOf":[{"type":"number"},{"type":"string"}]},"gt":{"anyOf":[{"type":"number"},{"type":"string"}]},"gte":{"anyOf":[{"type":"number"},{"type":"string"}]},"lt":{"anyOf":[{"type":"number"},{"type":"string"}]},"lte":{"anyOf":[{"type":"number"},{"type":"string"}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["true","false"]}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["true","false"]}]}},"allOf":[{"type":"object","additionalProperties":{}}]}]}},"allOf":[{"type":"object","additionalProperties":{}}]},"required":false,"style":"deepObject","explode":true},{"name":"tokenAddress","in":"query","schema":{"anyOf":[{"type":"string","minLength":1},{"type":"object","properties":{"eq":{"type":"string","minLength":1},"ne":{"type":"string","minLength":1},"iLike":{"type":"string","minLength":1},"notILike":{"type":"string","minLength":1},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["true","false"]}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["true","false"]}]}},"allOf":[{"type":"object","additionalProperties":{}}]}]},"required":false,"style":"deepObject","explode":true},{"name":"tokenName","in":"query","schema":{"anyOf":[{"type":"string","minLength":1},{"type":"object","properties":{"eq":{"type":"string","minLength":1},"ne":{"type":"string","minLength":1},"iLike":{"type":"string","minLength":1},"notILike":{"type":"string","minLength":1},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["true","false"]}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["true","false"]}]}},"allOf":[{"type":"object","additionalProperties":{}}]}]},"required":false,"style":"deepObject","explode":true},{"name":"tokenSymbol","in":"query","schema":{"anyOf":[{"type":"string","minLength":1},{"type":"object","properties":{"eq":{"type":"string","minLength":1},"ne":{"type":"string","minLength":1},"iLike":{"type":"string","minLength":1},"notILike":{"type":"string","minLength":1},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["true","false"]}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["true","false"]}]}},"allOf":[{"type":"object","additionalProperties":{}}]}]},"required":false,"style":"deepObject","explode":true},{"name":"accessManagerAddress","in":"query","schema":{"anyOf":[{"type":"string","minLength":1},{"type":"object","properties":{"eq":{"type":"string","minLength":1},"ne":{"type":"string","minLength":1},"iLike":{"type":"string","minLength":1},"notILike":{"type":"string","minLength":1},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["true","false"]}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["true","false"]}]}},"allOf":[{"type":"object","additionalProperties":{}}]}]},"required":false,"style":"deepObject","explode":true},{"name":"driftingParticipantCount","in":"query","schema":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"string"}]},{"type":"object","properties":{"eq":{"anyOf":[{"type":"number"},{"type":"string"}]},"ne":{"anyOf":[{"type":"number"},{"type":"string"}]},"gt":{"anyOf":[{"type":"number"},{"type":"string"}]},"gte":{"anyOf":[{"type":"number"},{"type":"string"}]},"lt":{"anyOf":[{"type":"number"},{"type":"string"}]},"lte":{"anyOf":[{"type":"number"},{"type":"string"}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["true","false"]}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["true","false"]}]}},"allOf":[{"type":"object","additionalProperties":{}}]}]},"required":false,"style":"deepObject","explode":true}],"responses":{"200":{"description":"Paginated list envelope. `data` is one page of items. `meta.total` and `meta.facets` describe the full filtered set. `links` carries first, previous, next, and last page URLs with the same sort and filters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenAaRoleMigrationPendingItemCollectionResponse"},"examples":{"example-1":{"value":{"data":[{"tokenAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","tokenName":"Euro Deposit","tokenSymbol":"EURD","accessManagerAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","driftingParticipantCount":0,"adminAddresses":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]}],"meta":{"total":1,"facets":{}},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants","first":"/v2/accounts?sort=-firstSeenBlock&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/accounts?sort=-firstSeenBlock&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TOKEN_WRITE_PERSISTENCE_FAILED","core.database.QUERY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Lists tokens in the active organization whose access-manager roles still sit on participant externally owned accounts and have not been mirrored onto the matching smart accounts. The list is built from indexed role and wallet rows. It does not submit the migration. Use the token page as an administrator to finish the remaining role grants.","summary":"List pending account-abstraction role migrations","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/pause-state":{"patch":{"tags":["Token controls"],"operationId":"v2/token/pause","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous mutation result (HTTP 200). The write settled within the request wait window. `data` is the resulting token, `meta.txHashes` lists submitted transactions, and `links.self` is the token URL.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["evm"]},"address":{"$ref":"#/components/schemas/EvmAddress"},"name":{"type":"string"},"symbol":{"type":"string"},"decimals":{"type":"integer"},"assetType":{"$ref":"#/components/schemas/AssetTypeOrSlug"},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"totalSupply":{"$ref":"#/components/schemas/AssetAmount"},"basePrice":{"$ref":"#/components/schemas/BigDecimal"},"basePriceCurrencyCode":{"anyOf":[{"$ref":"#/components/schemas/FiatCurrency"},{"type":"null"}]},"smartInterface":{"anyOf":[{"type":"integer"},{"type":"null"}]},"pausable":{"type":"object","properties":{"paused":{"type":"boolean"}},"required":["paused"],"additionalProperties":false},"logoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"tokenFactory":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"templateLink":{"anyOf":[{"type":"object","properties":{"templateId":{"type":"string","minLength":1},"templateSlug":{"type":"string","minLength":1}},"required":["templateId","templateSlug"],"additionalProperties":false},{"type":"null"}]},"capabilities":{"type":"array","items":{"$ref":"#/components/schemas/InstrumentCapability"},"description":"The token's instrument capabilities: share-capital for shares, unit-capital for fund units and real-estate fractions. They decide which corporate actions the token offers. A token linked to a template carries the capabilities snapshotted from that template when it deployed. A token with no template link gets them derived when it is read, from its asset type and its attached features: equity without an attached conversion feature has share-capital, fund and real-estate have unit-capital, and any other type has none."}},"required":["_tag","address","name","symbol","decimals","assetType","createdAt","totalSupply","basePrice","basePriceCurrencyCode","smartInterface","pausable","logoUrl","tokenFactory","templateLink","capabilities"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["canton"]},"instrumentId":{"type":"string","minLength":1},"instrumentAdmin":{"$ref":"#/components/schemas/CantonPartyId"},"name":{"type":"string"},"symbol":{"type":"string"},"networkIdentity":{"type":"string","minLength":1},"disclosedAmount":{"type":"string","pattern":"^-?(0|[1-9]\\d*)(\\.\\d{1,10})?$"},"disclosedLockedAmount":{"type":"string","pattern":"^-?(0|[1-9]\\d*)(\\.\\d{1,10})?$"},"disclosedHolderCount":{"type":"integer","minimum":0},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["_tag","instrumentId","instrumentAdmin","name","symbol","networkIdentity","disclosedAmount","disclosedLockedAmount","disclosedHolderCount","updatedAt"],"additionalProperties":false}]},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"type":"string","minLength":1}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string","minLength":1}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"_tag":"evm","address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"assetType":"bond","createdAt":"2026-03-04T09:12:41.000Z","totalSupply":"50000000","basePrice":"100.00","basePriceCurrencyCode":"EUR","smartInterface":2,"pausable":{"paused":false},"logoUrl":"https://cdn.example.com/tokens/acme25.png","tokenFactory":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","templateLink":{"templateId":"att_northwind_founder_shares","templateSlug":"corporate-bond"},"capabilities":["share-capital"]},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_TYPE_TEMPLATE_NOT_FOUND","CONTRACT_ERROR","NOT_FOUND","PRICE_RESOLVER_ADDON_NOT_INSTALLED","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"ASSET_TYPE_TEMPLATE_NOT_FOUND","status":404,"message":"Asset type template not found.","data":{"id":"DALP-0091","why":"The platform searched for the asset type template by the supplied ID and found no record owned by your organization or available as a system template.","fix":"Confirm the ID matches an existing template owned by your organization or a published system template. Re-fetch the list of asset type templates to verify the ID before retrying.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","DURABLE_EXECUTION_ENGINE_CALL_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_MUTATION_INSUFFICIENT_BALANCE","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","ORGANIZATION_SUBMISSION_SIGNER_CLAIM_PURPOSE_MISSING","STRICT_COMPLIANCE_PARAMS_INVALID","SYSTEM_IDENTITY_CLAIM_ISSUE","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_CHAIN_UNAVAILABLE","TOKEN_CLAIM_ISSUE_FAILED","TOKEN_COMPLIANCE_MODULE_BINDING_UNRESOLVED","TOKEN_CREATE_AMBIGUOUS_INTEREST_PROVIDER","TOKEN_CREATE_ASSET_FAMILY_DEPRECATED","TOKEN_CREATE_DUPLICATE","TOKEN_CREATE_RECOVERY_FAILED","TOKEN_FUNDING_PAUSE_FAILED","TOKEN_OPERATION_INPUT_INVALID","TOKEN_PRICE_DENOMINATION_UNUSABLE","TOKEN_PRICE_FEED_FACTORY_MISSING","TOKEN_PRICE_FEED_SIGNER_MISSING","TOKEN_PRICE_INPUT_INVALID","TOKEN_PRICE_UPDATE_FAILED","TOKEN_QUEUE_WRITE_REFUSED","TOKEN_WORKFLOW_FAILED","TOKEN_WRITE_OUTCOME_UNKNOWN","TOKEN_WRITE_RECEIPT_INCOMPLETE","TOKEN_WRITE_REVERTED","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_ACCESS_SYNC_RESULT_UNAVAILABLE","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_WRITE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.erc20_metadata.PROBE_FAILED","dapi.identity.CLAIM_ISSUE_DEPENDENCY_FAILED","dapi.identity.CLAIM_TOPIC_READ_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Pauses transfers on the selected EVM token in the active organization. This operation has no Canton arm: the contract set the platform operates declares no pause choice, so a body naming `instrumentAdmin` is refused with the family this route does serve. New transfers fail until the token is unpaused. The platform checks the indexed token first, then submits a live chain transaction. By default the platform queues the transaction and answers under status 202. Prefer: wait=<seconds> waits for settlement.","summary":"Pause token transfers","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"instrumentAdmin":{"not":{}}},"additionalProperties":false},{"$ref":"#/components/schemas/CantonFamilyProbeBody"}]}}},"required":false},"x-dalp-auth":"session-or-api-key"},"delete":{"tags":["Token controls"],"operationId":"v2/token/unpause","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous mutation result (HTTP 200). The write settled within the request wait window. `data` is the resulting token, `meta.txHashes` lists submitted transactions, and `links.self` is the token URL.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["evm"]},"address":{"$ref":"#/components/schemas/EvmAddress"},"name":{"type":"string"},"symbol":{"type":"string"},"decimals":{"type":"integer"},"assetType":{"$ref":"#/components/schemas/AssetTypeOrSlug"},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"totalSupply":{"$ref":"#/components/schemas/AssetAmount"},"basePrice":{"$ref":"#/components/schemas/BigDecimal"},"basePriceCurrencyCode":{"anyOf":[{"$ref":"#/components/schemas/FiatCurrency"},{"type":"null"}]},"smartInterface":{"anyOf":[{"type":"integer"},{"type":"null"}]},"pausable":{"type":"object","properties":{"paused":{"type":"boolean"}},"required":["paused"],"additionalProperties":false},"logoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"tokenFactory":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"templateLink":{"anyOf":[{"type":"object","properties":{"templateId":{"type":"string","minLength":1},"templateSlug":{"type":"string","minLength":1}},"required":["templateId","templateSlug"],"additionalProperties":false},{"type":"null"}]},"capabilities":{"type":"array","items":{"$ref":"#/components/schemas/InstrumentCapability"},"description":"The token's instrument capabilities: share-capital for shares, unit-capital for fund units and real-estate fractions. They decide which corporate actions the token offers. A token linked to a template carries the capabilities snapshotted from that template when it deployed. A token with no template link gets them derived when it is read, from its asset type and its attached features: equity without an attached conversion feature has share-capital, fund and real-estate have unit-capital, and any other type has none."}},"required":["_tag","address","name","symbol","decimals","assetType","createdAt","totalSupply","basePrice","basePriceCurrencyCode","smartInterface","pausable","logoUrl","tokenFactory","templateLink","capabilities"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["canton"]},"instrumentId":{"type":"string","minLength":1},"instrumentAdmin":{"$ref":"#/components/schemas/CantonPartyId"},"name":{"type":"string"},"symbol":{"type":"string"},"networkIdentity":{"type":"string","minLength":1},"disclosedAmount":{"type":"string","pattern":"^-?(0|[1-9]\\d*)(\\.\\d{1,10})?$"},"disclosedLockedAmount":{"type":"string","pattern":"^-?(0|[1-9]\\d*)(\\.\\d{1,10})?$"},"disclosedHolderCount":{"type":"integer","minimum":0},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["_tag","instrumentId","instrumentAdmin","name","symbol","networkIdentity","disclosedAmount","disclosedLockedAmount","disclosedHolderCount","updatedAt"],"additionalProperties":false}]},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"type":"string","minLength":1}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string","minLength":1}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"_tag":"evm","address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"assetType":"bond","createdAt":"2026-03-04T09:12:41.000Z","totalSupply":"50000000","basePrice":"100.00","basePriceCurrencyCode":"EUR","smartInterface":2,"pausable":{"paused":false},"logoUrl":"https://cdn.example.com/tokens/acme25.png","tokenFactory":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","templateLink":{"templateId":"att_northwind_founder_shares","templateSlug":"corporate-bond"},"capabilities":["share-capital"]},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_TYPE_TEMPLATE_NOT_FOUND","CONTRACT_ERROR","NOT_FOUND","PRICE_RESOLVER_ADDON_NOT_INSTALLED","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"ASSET_TYPE_TEMPLATE_NOT_FOUND","status":404,"message":"Asset type template not found.","data":{"id":"DALP-0091","why":"The platform searched for the asset type template by the supplied ID and found no record owned by your organization or available as a system template.","fix":"Confirm the ID matches an existing template owned by your organization or a published system template. Re-fetch the list of asset type templates to verify the ID before retrying.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","DURABLE_EXECUTION_ENGINE_CALL_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_MUTATION_INSUFFICIENT_BALANCE","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","ORGANIZATION_SUBMISSION_SIGNER_CLAIM_PURPOSE_MISSING","STRICT_COMPLIANCE_PARAMS_INVALID","SYSTEM_IDENTITY_CLAIM_ISSUE","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_CHAIN_UNAVAILABLE","TOKEN_CLAIM_ISSUE_FAILED","TOKEN_COMPLIANCE_MODULE_BINDING_UNRESOLVED","TOKEN_CREATE_AMBIGUOUS_INTEREST_PROVIDER","TOKEN_CREATE_ASSET_FAMILY_DEPRECATED","TOKEN_CREATE_DUPLICATE","TOKEN_CREATE_RECOVERY_FAILED","TOKEN_FUNDING_PAUSE_FAILED","TOKEN_OPERATION_INPUT_INVALID","TOKEN_PRICE_DENOMINATION_UNUSABLE","TOKEN_PRICE_FEED_FACTORY_MISSING","TOKEN_PRICE_FEED_SIGNER_MISSING","TOKEN_PRICE_INPUT_INVALID","TOKEN_PRICE_UPDATE_FAILED","TOKEN_QUEUE_WRITE_REFUSED","TOKEN_WORKFLOW_FAILED","TOKEN_WRITE_OUTCOME_UNKNOWN","TOKEN_WRITE_RECEIPT_INCOMPLETE","TOKEN_WRITE_REVERTED","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_ACCESS_SYNC_RESULT_UNAVAILABLE","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_WRITE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.erc20_metadata.PROBE_FAILED","dapi.identity.CLAIM_ISSUE_DEPENDENCY_FAILED","dapi.identity.CLAIM_TOPIC_READ_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Resumes transfers on the selected EVM token in the active organization after a pause. A Canton instrument has no standing to pause or unpause, so a body naming `instrumentAdmin` is refused. The platform checks the indexed token first, then submits a live chain transaction. By default the platform queues the transaction and answers under status 202. Prefer: wait=<seconds> waits for settlement.","summary":"Unpause token transfers","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"instrumentAdmin":{"not":{}}},"additionalProperties":false},{"$ref":"#/components/schemas/CantonFamilyProbeBody"}]}}},"required":false},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/address-freezes":{"put":{"tags":["Token controls"],"operationId":"v2/token/freezeAddress","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous mutation result (HTTP 200). The write settled within the request wait window. `data` is the token an EVM write moved, or the Canton operation a Canton write submitted.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"anyOf":[{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["evm"]},"address":{"$ref":"#/components/schemas/EvmAddress"},"name":{"type":"string"},"symbol":{"type":"string"},"decimals":{"type":"integer"},"assetType":{"$ref":"#/components/schemas/AssetTypeOrSlug"},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"totalSupply":{"$ref":"#/components/schemas/AssetAmount"},"basePrice":{"$ref":"#/components/schemas/BigDecimal"},"basePriceCurrencyCode":{"anyOf":[{"$ref":"#/components/schemas/FiatCurrency"},{"type":"null"}]},"smartInterface":{"anyOf":[{"type":"integer"},{"type":"null"}]},"pausable":{"type":"object","properties":{"paused":{"type":"boolean"}},"required":["paused"],"additionalProperties":false},"logoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"tokenFactory":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"templateLink":{"anyOf":[{"type":"object","properties":{"templateId":{"type":"string","minLength":1},"templateSlug":{"type":"string","minLength":1}},"required":["templateId","templateSlug"],"additionalProperties":false},{"type":"null"}]},"capabilities":{"type":"array","items":{"$ref":"#/components/schemas/InstrumentCapability"},"description":"The token's instrument capabilities: share-capital for shares, unit-capital for fund units and real-estate fractions. They decide which corporate actions the token offers. A token linked to a template carries the capabilities snapshotted from that template when it deployed. A token with no template link gets them derived when it is read, from its asset type and its attached features: equity without an attached conversion feature has share-capital, fund and real-estate have unit-capital, and any other type has none."}},"required":["_tag","address","name","symbol","decimals","assetType","createdAt","totalSupply","basePrice","basePriceCurrencyCode","smartInterface","pausable","logoUrl","tokenFactory","templateLink","capabilities"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["canton"]},"instrumentId":{"type":"string","minLength":1},"instrumentAdmin":{"$ref":"#/components/schemas/CantonPartyId"},"name":{"type":"string"},"symbol":{"type":"string"},"networkIdentity":{"type":"string","minLength":1},"disclosedAmount":{"type":"string","pattern":"^-?(0|[1-9]\\d*)(\\.\\d{1,10})?$"},"disclosedLockedAmount":{"type":"string","pattern":"^-?(0|[1-9]\\d*)(\\.\\d{1,10})?$"},"disclosedHolderCount":{"type":"integer","minimum":0},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["_tag","instrumentId","instrumentAdmin","name","symbol","networkIdentity","disclosedAmount","disclosedLockedAmount","disclosedHolderCount","updatedAt"],"additionalProperties":false}]},{"$ref":"#/components/schemas/CantonArmSettledResult"}]},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"type":"string","minLength":1}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string","minLength":1}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"_tag":"evm","address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"assetType":"bond","createdAt":"2026-03-04T09:12:41.000Z","totalSupply":"50000000","basePrice":"100.00","basePriceCurrencyCode":"EUR","smartInterface":2,"pausable":{"paused":false},"logoUrl":"https://cdn.example.com/tokens/acme25.png","tokenFactory":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","templateLink":{"templateId":"att_northwind_founder_shares","templateSlug":"corporate-bond"},"capabilities":["share-capital"]},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CANTON_TOKEN_OPERATION_REQUEST_INVALID","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_TYPE_TEMPLATE_NOT_FOUND","CANTON_PARTY_WALLET_NOT_FOUND","CONTRACT_ERROR","NOT_FOUND","PRICE_RESOLVER_ADDON_NOT_INSTALLED","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"ASSET_TYPE_TEMPLATE_NOT_FOUND","status":404,"message":"Asset type template not found.","data":{"id":"DALP-0091","why":"The platform searched for the asset type template by the supplied ID and found no record owned by your organization or available as a system template.","fix":"Confirm the ID matches an existing template owned by your organization or a published system template. Re-fetch the list of asset type templates to verify the ID before retrying.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_SETTLEMENT_BATCH_NOT_COVERABLE","CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","DURABLE_EXECUTION_ENGINE_CALL_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_MUTATION_INSUFFICIENT_BALANCE","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CANTON_SETTLEMENT_BATCH_NOT_COVERABLE","status":409,"message":"The batch's allocations do not cover its transfer legs exactly","data":{"id":"DALP-9325","why":"Every leg of a batch needs both a sender and a receiver side authorized by an allocation, and at least one leg had neither or only one, so no leg executed and the platform released the escrow it had drawn.","fix":"Read the uncovered legs and unauthorized sides named in the response, escrow the missing sides, then submit the batch again.","retryable":false,"category":"domain","releasedAllocationContractIds":[],"unauthorizedTransferLegSides":[],"uncoveredTransferLegIds":[],"unreleasedAllocationContractIds":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_APPROVAL_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"CANTON_APPROVAL_EXPIRED","status":410,"message":"The Canton command's validity window closed","data":{"id":"DALP-9321","why":"The command's validity window closed while the intent waited for approval, so the platform never sent it to the ledger.","fix":"Submit the command again. The expired intent is terminal and its approval is not reopened.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_NETWORK_NOT_CONFIGURED","CANTON_NETWORK_NOT_ENABLED","CONTRACT_ERROR","CUSTODY_CANTON_SIGNING_UNSUPPORTED","OPERATION_FAMILY_UNSUPPORTED","ORGANIZATION_SUBMISSION_SIGNER_CLAIM_PURPOSE_MISSING","STRICT_COMPLIANCE_PARAMS_INVALID","SYSTEM_IDENTITY_CLAIM_ISSUE","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_CHAIN_UNAVAILABLE","TOKEN_CLAIM_ISSUE_FAILED","TOKEN_COMPLIANCE_MODULE_BINDING_UNRESOLVED","TOKEN_CREATE_AMBIGUOUS_INTEREST_PROVIDER","TOKEN_CREATE_ASSET_FAMILY_DEPRECATED","TOKEN_CREATE_DUPLICATE","TOKEN_CREATE_RECOVERY_FAILED","TOKEN_FUNDING_PAUSE_FAILED","TOKEN_OPERATION_INPUT_INVALID","TOKEN_PRICE_DENOMINATION_UNUSABLE","TOKEN_PRICE_FEED_FACTORY_MISSING","TOKEN_PRICE_FEED_SIGNER_MISSING","TOKEN_PRICE_INPUT_INVALID","TOKEN_PRICE_UPDATE_FAILED","TOKEN_QUEUE_WRITE_REFUSED","TOKEN_WORKFLOW_FAILED","TOKEN_WRITE_OUTCOME_UNKNOWN","TOKEN_WRITE_RECEIPT_INCOMPLETE","TOKEN_WRITE_REVERTED","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"CANTON_NETWORK_NOT_CONFIGURED","status":422,"message":"No Canton participant network is configured","data":{"id":"DALP-9313","why":"This deployment has no Canton participant network, so the platform cannot allocate a party or submit a DAML command.","fix":"Ask an operator to add a Canton network to the platform configuration, then retry.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_SUBMISSION_FAILED","CUSTODY_CREDENTIALS_UNAVAILABLE","INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"CANTON_SUBMISSION_FAILED","status":500,"message":"Canton command submission failed","data":{"id":"DALP-9318","why":"The platform accepted the command, then submission stopped before the ledger settled it.","fix":"Inspect the submission status, then retry with the same submission id when the failure is retryable.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_ACCESS_SYNC_RESULT_UNAVAILABLE","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_WRITE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.erc20_metadata.PROBE_FAILED","dapi.identity.CLAIM_ISSUE_DEPENDENCY_FAILED","dapi.identity.CLAIM_TOPIC_READ_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Freezes or unfreezes every unit of the selected EVM token held by one address in the active organization: `freeze` true locks the address, false unlocks it. When the body carries `instrumentAdmin`, it instead freezes or unfreezes every unit one Canton account holds, which is the account-state contract's own lock: the body then names the account-state book, the account's owner and which account of that owner, alongside the same direction. The platform checks the indexed token first, then submits a live chain transaction. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement.","summary":"Update an address freeze","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"userAddress":{"$ref":"#/components/schemas/EvmAddress"},"freeze":{"type":"boolean"}},"required":["userAddress","freeze"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/partial-freezes":{"post":{"tags":["Token controls"],"operationId":"v2/token/freezePartial","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous mutation result (HTTP 200). The write settled within the request wait window. `data` is the resulting token, `meta.txHashes` lists submitted transactions, and `links.self` is the token URL.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["evm"]},"address":{"$ref":"#/components/schemas/EvmAddress"},"name":{"type":"string"},"symbol":{"type":"string"},"decimals":{"type":"integer"},"assetType":{"$ref":"#/components/schemas/AssetTypeOrSlug"},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"totalSupply":{"$ref":"#/components/schemas/AssetAmount"},"basePrice":{"$ref":"#/components/schemas/BigDecimal"},"basePriceCurrencyCode":{"anyOf":[{"$ref":"#/components/schemas/FiatCurrency"},{"type":"null"}]},"smartInterface":{"anyOf":[{"type":"integer"},{"type":"null"}]},"pausable":{"type":"object","properties":{"paused":{"type":"boolean"}},"required":["paused"],"additionalProperties":false},"logoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"tokenFactory":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"templateLink":{"anyOf":[{"type":"object","properties":{"templateId":{"type":"string","minLength":1},"templateSlug":{"type":"string","minLength":1}},"required":["templateId","templateSlug"],"additionalProperties":false},{"type":"null"}]},"capabilities":{"type":"array","items":{"$ref":"#/components/schemas/InstrumentCapability"},"description":"The token's instrument capabilities: share-capital for shares, unit-capital for fund units and real-estate fractions. They decide which corporate actions the token offers. A token linked to a template carries the capabilities snapshotted from that template when it deployed. A token with no template link gets them derived when it is read, from its asset type and its attached features: equity without an attached conversion feature has share-capital, fund and real-estate have unit-capital, and any other type has none."}},"required":["_tag","address","name","symbol","decimals","assetType","createdAt","totalSupply","basePrice","basePriceCurrencyCode","smartInterface","pausable","logoUrl","tokenFactory","templateLink","capabilities"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["canton"]},"instrumentId":{"type":"string","minLength":1},"instrumentAdmin":{"$ref":"#/components/schemas/CantonPartyId"},"name":{"type":"string"},"symbol":{"type":"string"},"networkIdentity":{"type":"string","minLength":1},"disclosedAmount":{"type":"string","pattern":"^-?(0|[1-9]\\d*)(\\.\\d{1,10})?$"},"disclosedLockedAmount":{"type":"string","pattern":"^-?(0|[1-9]\\d*)(\\.\\d{1,10})?$"},"disclosedHolderCount":{"type":"integer","minimum":0},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["_tag","instrumentId","instrumentAdmin","name","symbol","networkIdentity","disclosedAmount","disclosedLockedAmount","disclosedHolderCount","updatedAt"],"additionalProperties":false}]},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"type":"string","minLength":1}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string","minLength":1}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"_tag":"evm","address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"assetType":"bond","createdAt":"2026-03-04T09:12:41.000Z","totalSupply":"50000000","basePrice":"100.00","basePriceCurrencyCode":"EUR","smartInterface":2,"pausable":{"paused":false},"logoUrl":"https://cdn.example.com/tokens/acme25.png","tokenFactory":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","templateLink":{"templateId":"att_northwind_founder_shares","templateSlug":"corporate-bond"},"capabilities":["share-capital"]},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_TYPE_TEMPLATE_NOT_FOUND","CONTRACT_ERROR","NOT_FOUND","PRICE_RESOLVER_ADDON_NOT_INSTALLED","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"ASSET_TYPE_TEMPLATE_NOT_FOUND","status":404,"message":"Asset type template not found.","data":{"id":"DALP-0091","why":"The platform searched for the asset type template by the supplied ID and found no record owned by your organization or available as a system template.","fix":"Confirm the ID matches an existing template owned by your organization or a published system template. Re-fetch the list of asset type templates to verify the ID before retrying.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","DURABLE_EXECUTION_ENGINE_CALL_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_MUTATION_INSUFFICIENT_BALANCE","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","ORGANIZATION_SUBMISSION_SIGNER_CLAIM_PURPOSE_MISSING","STRICT_COMPLIANCE_PARAMS_INVALID","SYSTEM_IDENTITY_CLAIM_ISSUE","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_CHAIN_UNAVAILABLE","TOKEN_CLAIM_ISSUE_FAILED","TOKEN_COMPLIANCE_MODULE_BINDING_UNRESOLVED","TOKEN_CREATE_AMBIGUOUS_INTEREST_PROVIDER","TOKEN_CREATE_ASSET_FAMILY_DEPRECATED","TOKEN_CREATE_DUPLICATE","TOKEN_CREATE_RECOVERY_FAILED","TOKEN_FUNDING_PAUSE_FAILED","TOKEN_OPERATION_INPUT_INVALID","TOKEN_PRICE_DENOMINATION_UNUSABLE","TOKEN_PRICE_FEED_FACTORY_MISSING","TOKEN_PRICE_FEED_SIGNER_MISSING","TOKEN_PRICE_INPUT_INVALID","TOKEN_PRICE_UPDATE_FAILED","TOKEN_QUEUE_WRITE_REFUSED","TOKEN_WORKFLOW_FAILED","TOKEN_WRITE_OUTCOME_UNKNOWN","TOKEN_WRITE_RECEIPT_INCOMPLETE","TOKEN_WRITE_REVERTED","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_ACCESS_SYNC_RESULT_UNAVAILABLE","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_WRITE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.erc20_metadata.PROBE_FAILED","dapi.identity.CLAIM_ISSUE_DEPENDENCY_FAILED","dapi.identity.CLAIM_TOPIC_READ_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Locks a positive amount of one holder's balance of the selected EVM token so that amount cannot be spent. This operation has no Canton arm: a Canton freeze holds whole holdings through the account state, so a body naming `instrumentAdmin` is refused with the family this route does serve. The platform checks the indexed token first, then submits a live chain transaction. By default the platform queues the transaction and answers under status 202. Prefer: wait=<seconds> waits for settlement.","summary":"Freeze a partial token balance","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"userAddress":{"$ref":"#/components/schemas/EvmAddress"},"amount":{"type":"string","pattern":"^-?\\d+$"},"instrumentAdmin":{"not":{}}},"required":["userAddress","amount"],"additionalProperties":false},{"$ref":"#/components/schemas/CantonFamilyProbeBody"}]}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/partial-unfreezes":{"post":{"tags":["Token controls"],"operationId":"v2/token/unfreezePartial","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous mutation result (HTTP 200). The write settled within the request wait window. `data` is the token an EVM write moved, or the Canton operation a Canton write submitted.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"anyOf":[{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["evm"]},"address":{"$ref":"#/components/schemas/EvmAddress"},"name":{"type":"string"},"symbol":{"type":"string"},"decimals":{"type":"integer"},"assetType":{"$ref":"#/components/schemas/AssetTypeOrSlug"},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"totalSupply":{"$ref":"#/components/schemas/AssetAmount"},"basePrice":{"$ref":"#/components/schemas/BigDecimal"},"basePriceCurrencyCode":{"anyOf":[{"$ref":"#/components/schemas/FiatCurrency"},{"type":"null"}]},"smartInterface":{"anyOf":[{"type":"integer"},{"type":"null"}]},"pausable":{"type":"object","properties":{"paused":{"type":"boolean"}},"required":["paused"],"additionalProperties":false},"logoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"tokenFactory":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"templateLink":{"anyOf":[{"type":"object","properties":{"templateId":{"type":"string","minLength":1},"templateSlug":{"type":"string","minLength":1}},"required":["templateId","templateSlug"],"additionalProperties":false},{"type":"null"}]},"capabilities":{"type":"array","items":{"$ref":"#/components/schemas/InstrumentCapability"},"description":"The token's instrument capabilities: share-capital for shares, unit-capital for fund units and real-estate fractions. They decide which corporate actions the token offers. A token linked to a template carries the capabilities snapshotted from that template when it deployed. A token with no template link gets them derived when it is read, from its asset type and its attached features: equity without an attached conversion feature has share-capital, fund and real-estate have unit-capital, and any other type has none."}},"required":["_tag","address","name","symbol","decimals","assetType","createdAt","totalSupply","basePrice","basePriceCurrencyCode","smartInterface","pausable","logoUrl","tokenFactory","templateLink","capabilities"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["canton"]},"instrumentId":{"type":"string","minLength":1},"instrumentAdmin":{"$ref":"#/components/schemas/CantonPartyId"},"name":{"type":"string"},"symbol":{"type":"string"},"networkIdentity":{"type":"string","minLength":1},"disclosedAmount":{"type":"string","pattern":"^-?(0|[1-9]\\d*)(\\.\\d{1,10})?$"},"disclosedLockedAmount":{"type":"string","pattern":"^-?(0|[1-9]\\d*)(\\.\\d{1,10})?$"},"disclosedHolderCount":{"type":"integer","minimum":0},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["_tag","instrumentId","instrumentAdmin","name","symbol","networkIdentity","disclosedAmount","disclosedLockedAmount","disclosedHolderCount","updatedAt"],"additionalProperties":false}]},{"$ref":"#/components/schemas/CantonArmSettledResult"}]},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"type":"string","minLength":1}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string","minLength":1}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"_tag":"evm","address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"assetType":"bond","createdAt":"2026-03-04T09:12:41.000Z","totalSupply":"50000000","basePrice":"100.00","basePriceCurrencyCode":"EUR","smartInterface":2,"pausable":{"paused":false},"logoUrl":"https://cdn.example.com/tokens/acme25.png","tokenFactory":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","templateLink":{"templateId":"att_northwind_founder_shares","templateSlug":"corporate-bond"},"capabilities":["share-capital"]},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CANTON_TOKEN_OPERATION_REQUEST_INVALID","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_TYPE_TEMPLATE_NOT_FOUND","CANTON_PARTY_WALLET_NOT_FOUND","CONTRACT_ERROR","NOT_FOUND","PRICE_RESOLVER_ADDON_NOT_INSTALLED","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"ASSET_TYPE_TEMPLATE_NOT_FOUND","status":404,"message":"Asset type template not found.","data":{"id":"DALP-0091","why":"The platform searched for the asset type template by the supplied ID and found no record owned by your organization or available as a system template.","fix":"Confirm the ID matches an existing template owned by your organization or a published system template. Re-fetch the list of asset type templates to verify the ID before retrying.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","DURABLE_EXECUTION_ENGINE_CALL_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_MUTATION_INSUFFICIENT_BALANCE","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_APPROVAL_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"CANTON_APPROVAL_EXPIRED","status":410,"message":"The Canton command's validity window closed","data":{"id":"DALP-9321","why":"The command's validity window closed while the intent waited for approval, so the platform never sent it to the ledger.","fix":"Submit the command again. The expired intent is terminal and its approval is not reopened.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_NETWORK_NOT_CONFIGURED","CANTON_NETWORK_NOT_ENABLED","CONTRACT_ERROR","CUSTODY_CANTON_SIGNING_UNSUPPORTED","OPERATION_FAMILY_UNSUPPORTED","ORGANIZATION_SUBMISSION_SIGNER_CLAIM_PURPOSE_MISSING","STRICT_COMPLIANCE_PARAMS_INVALID","SYSTEM_IDENTITY_CLAIM_ISSUE","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_CHAIN_UNAVAILABLE","TOKEN_CLAIM_ISSUE_FAILED","TOKEN_COMPLIANCE_MODULE_BINDING_UNRESOLVED","TOKEN_CREATE_AMBIGUOUS_INTEREST_PROVIDER","TOKEN_CREATE_ASSET_FAMILY_DEPRECATED","TOKEN_CREATE_DUPLICATE","TOKEN_CREATE_RECOVERY_FAILED","TOKEN_FUNDING_PAUSE_FAILED","TOKEN_OPERATION_INPUT_INVALID","TOKEN_PRICE_DENOMINATION_UNUSABLE","TOKEN_PRICE_FEED_FACTORY_MISSING","TOKEN_PRICE_FEED_SIGNER_MISSING","TOKEN_PRICE_INPUT_INVALID","TOKEN_PRICE_UPDATE_FAILED","TOKEN_QUEUE_WRITE_REFUSED","TOKEN_WORKFLOW_FAILED","TOKEN_WRITE_OUTCOME_UNKNOWN","TOKEN_WRITE_RECEIPT_INCOMPLETE","TOKEN_WRITE_REVERTED","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"CANTON_NETWORK_NOT_CONFIGURED","status":422,"message":"No Canton participant network is configured","data":{"id":"DALP-9313","why":"This deployment has no Canton participant network, so the platform cannot allocate a party or submit a DAML command.","fix":"Ask an operator to add a Canton network to the platform configuration, then retry.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_SUBMISSION_FAILED","CUSTODY_CREDENTIALS_UNAVAILABLE","INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"CANTON_SUBMISSION_FAILED","status":500,"message":"Canton command submission failed","data":{"id":"DALP-9318","why":"The platform accepted the command, then submission stopped before the ledger settled it.","fix":"Inspect the submission status, then retry with the same submission id when the failure is retryable.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_ACCESS_SYNC_RESULT_UNAVAILABLE","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_WRITE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.erc20_metadata.PROBE_FAILED","dapi.identity.CLAIM_ISSUE_DEPENDENCY_FAILED","dapi.identity.CLAIM_TOPIC_READ_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Unlocks a positive amount of one holder's previously frozen balance of the selected EVM token, or releases a lock whose expiry has passed on one holding of a Canton instrument when the body carries `instrumentAdmin`. The platform checks the indexed token first, then submits a live chain transaction. By default the platform queues the transaction and answers under status 202. Prefer: wait=<seconds> waits for settlement.","summary":"Unfreeze a partial token balance","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"userAddress":{"$ref":"#/components/schemas/EvmAddress"},"amount":{"type":"string","pattern":"^-?\\d+$"},"instrumentAdmin":{"not":{}}},"required":["userAddress","amount"],"additionalProperties":false},{"$ref":"#/components/schemas/CantonHoldingUnlockArmBody"}]}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/supply-cap":{"patch":{"tags":["Token controls"],"operationId":"v2/token/setCap","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous mutation result (HTTP 200). The write settled within the request wait window. `data` is the resulting token, `meta.txHashes` lists submitted transactions, and `links.self` is the token URL.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["evm"]},"address":{"$ref":"#/components/schemas/EvmAddress"},"name":{"type":"string"},"symbol":{"type":"string"},"decimals":{"type":"integer"},"assetType":{"$ref":"#/components/schemas/AssetTypeOrSlug"},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"totalSupply":{"$ref":"#/components/schemas/AssetAmount"},"basePrice":{"$ref":"#/components/schemas/BigDecimal"},"basePriceCurrencyCode":{"anyOf":[{"$ref":"#/components/schemas/FiatCurrency"},{"type":"null"}]},"smartInterface":{"anyOf":[{"type":"integer"},{"type":"null"}]},"pausable":{"type":"object","properties":{"paused":{"type":"boolean"}},"required":["paused"],"additionalProperties":false},"logoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"tokenFactory":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"templateLink":{"anyOf":[{"type":"object","properties":{"templateId":{"type":"string","minLength":1},"templateSlug":{"type":"string","minLength":1}},"required":["templateId","templateSlug"],"additionalProperties":false},{"type":"null"}]},"capabilities":{"type":"array","items":{"$ref":"#/components/schemas/InstrumentCapability"},"description":"The token's instrument capabilities: share-capital for shares, unit-capital for fund units and real-estate fractions. They decide which corporate actions the token offers. A token linked to a template carries the capabilities snapshotted from that template when it deployed. A token with no template link gets them derived when it is read, from its asset type and its attached features: equity without an attached conversion feature has share-capital, fund and real-estate have unit-capital, and any other type has none."}},"required":["_tag","address","name","symbol","decimals","assetType","createdAt","totalSupply","basePrice","basePriceCurrencyCode","smartInterface","pausable","logoUrl","tokenFactory","templateLink","capabilities"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["canton"]},"instrumentId":{"type":"string","minLength":1},"instrumentAdmin":{"$ref":"#/components/schemas/CantonPartyId"},"name":{"type":"string"},"symbol":{"type":"string"},"networkIdentity":{"type":"string","minLength":1},"disclosedAmount":{"type":"string","pattern":"^-?(0|[1-9]\\d*)(\\.\\d{1,10})?$"},"disclosedLockedAmount":{"type":"string","pattern":"^-?(0|[1-9]\\d*)(\\.\\d{1,10})?$"},"disclosedHolderCount":{"type":"integer","minimum":0},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["_tag","instrumentId","instrumentAdmin","name","symbol","networkIdentity","disclosedAmount","disclosedLockedAmount","disclosedHolderCount","updatedAt"],"additionalProperties":false}]},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"type":"string","minLength":1}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string","minLength":1}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"_tag":"evm","address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"assetType":"bond","createdAt":"2026-03-04T09:12:41.000Z","totalSupply":"50000000","basePrice":"100.00","basePriceCurrencyCode":"EUR","smartInterface":2,"pausable":{"paused":false},"logoUrl":"https://cdn.example.com/tokens/acme25.png","tokenFactory":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","templateLink":{"templateId":"att_northwind_founder_shares","templateSlug":"corporate-bond"},"capabilities":["share-capital"]},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_TYPE_TEMPLATE_NOT_FOUND","CONTRACT_ERROR","NOT_FOUND","PRICE_RESOLVER_ADDON_NOT_INSTALLED","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"ASSET_TYPE_TEMPLATE_NOT_FOUND","status":404,"message":"Asset type template not found.","data":{"id":"DALP-0091","why":"The platform searched for the asset type template by the supplied ID and found no record owned by your organization or available as a system template.","fix":"Confirm the ID matches an existing template owned by your organization or a published system template. Re-fetch the list of asset type templates to verify the ID before retrying.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","DURABLE_EXECUTION_ENGINE_CALL_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_MUTATION_INSUFFICIENT_BALANCE","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","ORGANIZATION_SUBMISSION_SIGNER_CLAIM_PURPOSE_MISSING","STRICT_COMPLIANCE_PARAMS_INVALID","SYSTEM_IDENTITY_CLAIM_ISSUE","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_CHAIN_UNAVAILABLE","TOKEN_CLAIM_ISSUE_FAILED","TOKEN_COMPLIANCE_MODULE_BINDING_UNRESOLVED","TOKEN_CREATE_AMBIGUOUS_INTEREST_PROVIDER","TOKEN_CREATE_ASSET_FAMILY_DEPRECATED","TOKEN_CREATE_DUPLICATE","TOKEN_CREATE_RECOVERY_FAILED","TOKEN_FUNDING_PAUSE_FAILED","TOKEN_OPERATION_INPUT_INVALID","TOKEN_PRICE_DENOMINATION_UNUSABLE","TOKEN_PRICE_FEED_FACTORY_MISSING","TOKEN_PRICE_FEED_SIGNER_MISSING","TOKEN_PRICE_INPUT_INVALID","TOKEN_PRICE_UPDATE_FAILED","TOKEN_QUEUE_WRITE_REFUSED","TOKEN_WORKFLOW_FAILED","TOKEN_WRITE_OUTCOME_UNKNOWN","TOKEN_WRITE_RECEIPT_INCOMPLETE","TOKEN_WRITE_REVERTED","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_ACCESS_SYNC_RESULT_UNAVAILABLE","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_WRITE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.erc20_metadata.PROBE_FAILED","dapi.identity.CLAIM_ISSUE_DEPENDENCY_FAILED","dapi.identity.CLAIM_TOPIC_READ_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Replaces the maximum supply the selected token may mint. The new cap must be at least the current total supply. The platform checks the indexed token first, then submits a live chain transaction. By default the platform queues the transaction and answers under status 202. Prefer: wait=<seconds> waits for settlement.","summary":"Set the token supply cap","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"newCap":{"type":"string","pattern":"^-?\\d+$"}},"required":["newCap"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/forced-recoveries":{"post":{"tags":["Token lifecycle"],"operationId":"v2/token/forcedRecover","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous mutation result (HTTP 200). The write settled within the request wait window. `data` is the resulting token, `meta.txHashes` lists submitted transactions, and `links.self` is the token URL.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["evm"]},"address":{"$ref":"#/components/schemas/EvmAddress"},"name":{"type":"string"},"symbol":{"type":"string"},"decimals":{"type":"integer"},"assetType":{"$ref":"#/components/schemas/AssetTypeOrSlug"},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"totalSupply":{"$ref":"#/components/schemas/AssetAmount"},"basePrice":{"$ref":"#/components/schemas/BigDecimal"},"basePriceCurrencyCode":{"anyOf":[{"$ref":"#/components/schemas/FiatCurrency"},{"type":"null"}]},"smartInterface":{"anyOf":[{"type":"integer"},{"type":"null"}]},"pausable":{"type":"object","properties":{"paused":{"type":"boolean"}},"required":["paused"],"additionalProperties":false},"logoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"tokenFactory":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"templateLink":{"anyOf":[{"type":"object","properties":{"templateId":{"type":"string","minLength":1},"templateSlug":{"type":"string","minLength":1}},"required":["templateId","templateSlug"],"additionalProperties":false},{"type":"null"}]},"capabilities":{"type":"array","items":{"$ref":"#/components/schemas/InstrumentCapability"},"description":"The token's instrument capabilities: share-capital for shares, unit-capital for fund units and real-estate fractions. They decide which corporate actions the token offers. A token linked to a template carries the capabilities snapshotted from that template when it deployed. A token with no template link gets them derived when it is read, from its asset type and its attached features: equity without an attached conversion feature has share-capital, fund and real-estate have unit-capital, and any other type has none."}},"required":["_tag","address","name","symbol","decimals","assetType","createdAt","totalSupply","basePrice","basePriceCurrencyCode","smartInterface","pausable","logoUrl","tokenFactory","templateLink","capabilities"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["canton"]},"instrumentId":{"type":"string","minLength":1},"instrumentAdmin":{"$ref":"#/components/schemas/CantonPartyId"},"name":{"type":"string"},"symbol":{"type":"string"},"networkIdentity":{"type":"string","minLength":1},"disclosedAmount":{"type":"string","pattern":"^-?(0|[1-9]\\d*)(\\.\\d{1,10})?$"},"disclosedLockedAmount":{"type":"string","pattern":"^-?(0|[1-9]\\d*)(\\.\\d{1,10})?$"},"disclosedHolderCount":{"type":"integer","minimum":0},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["_tag","instrumentId","instrumentAdmin","name","symbol","networkIdentity","disclosedAmount","disclosedLockedAmount","disclosedHolderCount","updatedAt"],"additionalProperties":false}]},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"type":"string","minLength":1}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string","minLength":1}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"_tag":"evm","address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"assetType":"bond","createdAt":"2026-03-04T09:12:41.000Z","totalSupply":"50000000","basePrice":"100.00","basePriceCurrencyCode":"EUR","smartInterface":2,"pausable":{"paused":false},"logoUrl":"https://cdn.example.com/tokens/acme25.png","tokenFactory":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","templateLink":{"templateId":"att_northwind_founder_shares","templateSlug":"corporate-bond"},"capabilities":["share-capital"]},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_TYPE_TEMPLATE_NOT_FOUND","CONTRACT_ERROR","NOT_FOUND","PRICE_RESOLVER_ADDON_NOT_INSTALLED","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"ASSET_TYPE_TEMPLATE_NOT_FOUND","status":404,"message":"Asset type template not found.","data":{"id":"DALP-0091","why":"The platform searched for the asset type template by the supplied ID and found no record owned by your organization or available as a system template.","fix":"Confirm the ID matches an existing template owned by your organization or a published system template. Re-fetch the list of asset type templates to verify the ID before retrying.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","DURABLE_EXECUTION_ENGINE_CALL_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_MUTATION_INSUFFICIENT_BALANCE","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","ORGANIZATION_SUBMISSION_SIGNER_CLAIM_PURPOSE_MISSING","STRICT_COMPLIANCE_PARAMS_INVALID","SYSTEM_IDENTITY_CLAIM_ISSUE","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_CHAIN_UNAVAILABLE","TOKEN_CLAIM_ISSUE_FAILED","TOKEN_COMPLIANCE_MODULE_BINDING_UNRESOLVED","TOKEN_CREATE_AMBIGUOUS_INTEREST_PROVIDER","TOKEN_CREATE_ASSET_FAMILY_DEPRECATED","TOKEN_CREATE_DUPLICATE","TOKEN_CREATE_RECOVERY_FAILED","TOKEN_FUNDING_PAUSE_FAILED","TOKEN_OPERATION_INPUT_INVALID","TOKEN_PRICE_DENOMINATION_UNUSABLE","TOKEN_PRICE_FEED_FACTORY_MISSING","TOKEN_PRICE_FEED_SIGNER_MISSING","TOKEN_PRICE_INPUT_INVALID","TOKEN_PRICE_UPDATE_FAILED","TOKEN_QUEUE_WRITE_REFUSED","TOKEN_WORKFLOW_FAILED","TOKEN_WRITE_OUTCOME_UNKNOWN","TOKEN_WRITE_RECEIPT_INCOMPLETE","TOKEN_WRITE_REVERTED","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_ACCESS_SYNC_RESULT_UNAVAILABLE","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_WRITE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.erc20_metadata.PROBE_FAILED","dapi.identity.CLAIM_ISSUE_DEPENDENCY_FAILED","dapi.identity.CLAIM_TOPIC_READ_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Moves the selected token from a lost address to a recovery destination. The caller must hold a custodian recovery role. The platform checks the indexed token first, then submits a live chain transaction. By default the platform queues the transaction and answers under status 202. Prefer: wait=<seconds> waits for settlement.","summary":"Force recover tokens","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"lostWallet":{"$ref":"#/components/schemas/EvmAddress"},"newWallet":{"$ref":"#/components/schemas/EvmAddress"}},"required":["lostWallet","newWallet"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/erc20-recoveries":{"post":{"tags":["Token lifecycle"],"operationId":"v2/token/recoverERC20","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous mutation result (HTTP 200). The write settled within the request wait window. `data` is the resulting token, `meta.txHashes` lists submitted transactions, and `links.self` is the token URL.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["evm"]},"address":{"$ref":"#/components/schemas/EvmAddress"},"name":{"type":"string"},"symbol":{"type":"string"},"decimals":{"type":"integer"},"assetType":{"$ref":"#/components/schemas/AssetTypeOrSlug"},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"totalSupply":{"$ref":"#/components/schemas/AssetAmount"},"basePrice":{"$ref":"#/components/schemas/BigDecimal"},"basePriceCurrencyCode":{"anyOf":[{"$ref":"#/components/schemas/FiatCurrency"},{"type":"null"}]},"smartInterface":{"anyOf":[{"type":"integer"},{"type":"null"}]},"pausable":{"type":"object","properties":{"paused":{"type":"boolean"}},"required":["paused"],"additionalProperties":false},"logoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"tokenFactory":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"templateLink":{"anyOf":[{"type":"object","properties":{"templateId":{"type":"string","minLength":1},"templateSlug":{"type":"string","minLength":1}},"required":["templateId","templateSlug"],"additionalProperties":false},{"type":"null"}]},"capabilities":{"type":"array","items":{"$ref":"#/components/schemas/InstrumentCapability"},"description":"The token's instrument capabilities: share-capital for shares, unit-capital for fund units and real-estate fractions. They decide which corporate actions the token offers. A token linked to a template carries the capabilities snapshotted from that template when it deployed. A token with no template link gets them derived when it is read, from its asset type and its attached features: equity without an attached conversion feature has share-capital, fund and real-estate have unit-capital, and any other type has none."}},"required":["_tag","address","name","symbol","decimals","assetType","createdAt","totalSupply","basePrice","basePriceCurrencyCode","smartInterface","pausable","logoUrl","tokenFactory","templateLink","capabilities"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["canton"]},"instrumentId":{"type":"string","minLength":1},"instrumentAdmin":{"$ref":"#/components/schemas/CantonPartyId"},"name":{"type":"string"},"symbol":{"type":"string"},"networkIdentity":{"type":"string","minLength":1},"disclosedAmount":{"type":"string","pattern":"^-?(0|[1-9]\\d*)(\\.\\d{1,10})?$"},"disclosedLockedAmount":{"type":"string","pattern":"^-?(0|[1-9]\\d*)(\\.\\d{1,10})?$"},"disclosedHolderCount":{"type":"integer","minimum":0},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["_tag","instrumentId","instrumentAdmin","name","symbol","networkIdentity","disclosedAmount","disclosedLockedAmount","disclosedHolderCount","updatedAt"],"additionalProperties":false}]},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"type":"string","minLength":1}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string","minLength":1}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"_tag":"evm","address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"assetType":"bond","createdAt":"2026-03-04T09:12:41.000Z","totalSupply":"50000000","basePrice":"100.00","basePriceCurrencyCode":"EUR","smartInterface":2,"pausable":{"paused":false},"logoUrl":"https://cdn.example.com/tokens/acme25.png","tokenFactory":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","templateLink":{"templateId":"att_northwind_founder_shares","templateSlug":"corporate-bond"},"capabilities":["share-capital"]},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_TYPE_TEMPLATE_NOT_FOUND","CONTRACT_ERROR","NOT_FOUND","PRICE_RESOLVER_ADDON_NOT_INSTALLED","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"ASSET_TYPE_TEMPLATE_NOT_FOUND","status":404,"message":"Asset type template not found.","data":{"id":"DALP-0091","why":"The platform searched for the asset type template by the supplied ID and found no record owned by your organization or available as a system template.","fix":"Confirm the ID matches an existing template owned by your organization or a published system template. Re-fetch the list of asset type templates to verify the ID before retrying.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","DURABLE_EXECUTION_ENGINE_CALL_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_MUTATION_INSUFFICIENT_BALANCE","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","ORGANIZATION_SUBMISSION_SIGNER_CLAIM_PURPOSE_MISSING","STRICT_COMPLIANCE_PARAMS_INVALID","SYSTEM_IDENTITY_CLAIM_ISSUE","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_CHAIN_UNAVAILABLE","TOKEN_CLAIM_ISSUE_FAILED","TOKEN_COMPLIANCE_MODULE_BINDING_UNRESOLVED","TOKEN_CREATE_AMBIGUOUS_INTEREST_PROVIDER","TOKEN_CREATE_ASSET_FAMILY_DEPRECATED","TOKEN_CREATE_DUPLICATE","TOKEN_CREATE_RECOVERY_FAILED","TOKEN_FUNDING_PAUSE_FAILED","TOKEN_OPERATION_INPUT_INVALID","TOKEN_PRICE_DENOMINATION_UNUSABLE","TOKEN_PRICE_FEED_FACTORY_MISSING","TOKEN_PRICE_FEED_SIGNER_MISSING","TOKEN_PRICE_INPUT_INVALID","TOKEN_PRICE_UPDATE_FAILED","TOKEN_QUEUE_WRITE_REFUSED","TOKEN_RECOVER_ERC20_NOT_ERC20","TOKEN_WORKFLOW_FAILED","TOKEN_WRITE_OUTCOME_UNKNOWN","TOKEN_WRITE_RECEIPT_INCOMPLETE","TOKEN_WRITE_REVERTED","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","ERC20_METADATA_PROBE_UNAVAILABLE","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_ACCESS_SYNC_RESULT_UNAVAILABLE","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_WRITE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.erc20_metadata.PROBE_FAILED","dapi.identity.CLAIM_ISSUE_DEPENDENCY_FAILED","dapi.identity.CLAIM_TOPIC_READ_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Recovers ERC-20 denomination or fee tokens held by the selected token contract and sends them to a recipient. The caller must hold an emergency role. The platform checks the indexed token, reads the ERC-20 symbol and decimals live from the chain, then submits a live chain transaction. By default the platform queues the transaction and answers under status 202. Prefer: wait=<seconds> waits for settlement.","summary":"Recover ERC-20 tokens","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"erc20Address":{"$ref":"#/components/schemas/EvmAddress"},"recipient":{"$ref":"#/components/schemas/EvmAddress"},"amount":{"type":"string","pattern":"^-?\\d+$"}},"required":["erc20Address","recipient","amount"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/recoveries":{"post":{"tags":["Token lifecycle"],"operationId":"v2/token/recoverTokens","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous mutation result (HTTP 200). The write settled within the request wait window. `data` is the resulting token, `meta.txHashes` lists submitted transactions, and `links.self` is the token URL.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["evm"]},"address":{"$ref":"#/components/schemas/EvmAddress"},"name":{"type":"string"},"symbol":{"type":"string"},"decimals":{"type":"integer"},"assetType":{"$ref":"#/components/schemas/AssetTypeOrSlug"},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"totalSupply":{"$ref":"#/components/schemas/AssetAmount"},"basePrice":{"$ref":"#/components/schemas/BigDecimal"},"basePriceCurrencyCode":{"anyOf":[{"$ref":"#/components/schemas/FiatCurrency"},{"type":"null"}]},"smartInterface":{"anyOf":[{"type":"integer"},{"type":"null"}]},"pausable":{"type":"object","properties":{"paused":{"type":"boolean"}},"required":["paused"],"additionalProperties":false},"logoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"tokenFactory":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"templateLink":{"anyOf":[{"type":"object","properties":{"templateId":{"type":"string","minLength":1},"templateSlug":{"type":"string","minLength":1}},"required":["templateId","templateSlug"],"additionalProperties":false},{"type":"null"}]},"capabilities":{"type":"array","items":{"$ref":"#/components/schemas/InstrumentCapability"},"description":"The token's instrument capabilities: share-capital for shares, unit-capital for fund units and real-estate fractions. They decide which corporate actions the token offers. A token linked to a template carries the capabilities snapshotted from that template when it deployed. A token with no template link gets them derived when it is read, from its asset type and its attached features: equity without an attached conversion feature has share-capital, fund and real-estate have unit-capital, and any other type has none."}},"required":["_tag","address","name","symbol","decimals","assetType","createdAt","totalSupply","basePrice","basePriceCurrencyCode","smartInterface","pausable","logoUrl","tokenFactory","templateLink","capabilities"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["canton"]},"instrumentId":{"type":"string","minLength":1},"instrumentAdmin":{"$ref":"#/components/schemas/CantonPartyId"},"name":{"type":"string"},"symbol":{"type":"string"},"networkIdentity":{"type":"string","minLength":1},"disclosedAmount":{"type":"string","pattern":"^-?(0|[1-9]\\d*)(\\.\\d{1,10})?$"},"disclosedLockedAmount":{"type":"string","pattern":"^-?(0|[1-9]\\d*)(\\.\\d{1,10})?$"},"disclosedHolderCount":{"type":"integer","minimum":0},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["_tag","instrumentId","instrumentAdmin","name","symbol","networkIdentity","disclosedAmount","disclosedLockedAmount","disclosedHolderCount","updatedAt"],"additionalProperties":false}]},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"type":"string","minLength":1}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string","minLength":1}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"_tag":"evm","address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"assetType":"bond","createdAt":"2026-03-04T09:12:41.000Z","totalSupply":"50000000","basePrice":"100.00","basePriceCurrencyCode":"EUR","smartInterface":2,"pausable":{"paused":false},"logoUrl":"https://cdn.example.com/tokens/acme25.png","tokenFactory":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","templateLink":{"templateId":"att_northwind_founder_shares","templateSlug":"corporate-bond"},"capabilities":["share-capital"]},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_TYPE_TEMPLATE_NOT_FOUND","CONTRACT_ERROR","NOT_FOUND","PRICE_RESOLVER_ADDON_NOT_INSTALLED","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"ASSET_TYPE_TEMPLATE_NOT_FOUND","status":404,"message":"Asset type template not found.","data":{"id":"DALP-0091","why":"The platform searched for the asset type template by the supplied ID and found no record owned by your organization or available as a system template.","fix":"Confirm the ID matches an existing template owned by your organization or a published system template. Re-fetch the list of asset type templates to verify the ID before retrying.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","DURABLE_EXECUTION_ENGINE_CALL_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_MUTATION_INSUFFICIENT_BALANCE","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","ORGANIZATION_SUBMISSION_SIGNER_CLAIM_PURPOSE_MISSING","STRICT_COMPLIANCE_PARAMS_INVALID","SYSTEM_IDENTITY_CLAIM_ISSUE","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_CHAIN_UNAVAILABLE","TOKEN_CLAIM_ISSUE_FAILED","TOKEN_COMPLIANCE_MODULE_BINDING_UNRESOLVED","TOKEN_CREATE_AMBIGUOUS_INTEREST_PROVIDER","TOKEN_CREATE_ASSET_FAMILY_DEPRECATED","TOKEN_CREATE_DUPLICATE","TOKEN_CREATE_RECOVERY_FAILED","TOKEN_FUNDING_PAUSE_FAILED","TOKEN_OPERATION_INPUT_INVALID","TOKEN_PRICE_DENOMINATION_UNUSABLE","TOKEN_PRICE_FEED_FACTORY_MISSING","TOKEN_PRICE_FEED_SIGNER_MISSING","TOKEN_PRICE_INPUT_INVALID","TOKEN_PRICE_UPDATE_FAILED","TOKEN_QUEUE_WRITE_REFUSED","TOKEN_WORKFLOW_FAILED","TOKEN_WRITE_OUTCOME_UNKNOWN","TOKEN_WRITE_RECEIPT_INCOMPLETE","TOKEN_WRITE_REVERTED","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_ACCESS_SYNC_RESULT_UNAVAILABLE","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_WRITE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.erc20_metadata.PROBE_FAILED","dapi.identity.CLAIM_ISSUE_DEPENDENCY_FAILED","dapi.identity.CLAIM_TOPIC_READ_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Recovers the selected token's own balances from a lost wallet through the token contract recovery path. The caller must hold an emergency role. The platform checks the indexed token first, then submits a live chain transaction. By default the platform queues the transaction and answers under status 202. Prefer: wait=<seconds> waits for settlement.","summary":"Recover token balances","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"lostWallet":{"$ref":"#/components/schemas/EvmAddress"}},"required":["lostWallet"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/price":{"get":{"tags":["Tokens"],"operationId":"v2/token/price","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"currency","in":"query","schema":{"type":"string","enum":["AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BMD","BND","BOB","BRL","BSD","BTN","BWP","BYN","BZD","CAD","CDF","CHF","CLP","CNY","COP","CRC","CUC","CUP","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","FKP","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MRU","MUR","MVR","MWK","MXN","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SHP","SLE","SOS","SRD","SSP","STN","SVC","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","UYU","UYW","UZS","VED","VES","VND","VUV","WST","XAF","XCD","XOF","XPF","YER","ZAR","ZMW","ZWG"]},"required":false}],"responses":{"200":{"description":"Indexed token price for the requested currency. `data` is the resolved price. `links.self` is this price URL.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenPriceResponseResponse"},"examples":{"example-1":{"value":{"data":{"tokenAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","price":"27230000000000000000","currency":"USD","decimals":18,"source":"feed","sourceCurrency":"AED","convertible":true,"updatedAt":"2026-08-14T09:30:00.000Z","conversionPath":[{"from":"AED","to":"USD","rate":"272300000000000000","feedAddress":"0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0","updatedAt":"2026-08-14T09:30:00.000Z","inverse":false}]},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/price"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TOKEN_PRICE_RESOLUTION_FAILED","TOKEN_WRITE_PERSISTENCE_FAILED","core.database.QUERY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Resolves the selected token's indexed market price in the requested ISO 4217 currency for the active organization and request chain. The resolver reads indexed price feeds and, when the source currency differs, indexed FX hops. It does not call the token contract. Omit `currency` to receive USD. When conversion cannot complete, the body names the reason and the currencies that are reachable from the source.","summary":"Read a token price","x-dalp-auth":"session-or-api-key"},"post":{"tags":["Fees and pricing"],"operationId":"v2/token/setPrice","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous price-update result (HTTP 200). `data` echoes the stored feed, price, and currency. An empty `txHash` means the same price was already applied.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"feedAddress":{"$ref":"#/components/schemas/EvmAddress"},"txHash":{"type":"string"},"price":{"type":"string","minLength":1},"currencyCode":{"type":"string","pattern":"^[A-Z]{3}$"}},"required":["feedAddress","txHash","price","currencyCode"],"additionalProperties":false},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"type":"string","minLength":1}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string","minLength":1}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"feedAddress":"0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0","txHash":"0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24","price":"100.50","currencyCode":"EUR"},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"]},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/price"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","TOKEN_PRICE_IDENTITY_REQUIRED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY","dapi.assets.TOKEN_PRICE_ADMIN_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_TYPE_TEMPLATE_NOT_FOUND","CONTRACT_ERROR","NOT_FOUND","PRICE_RESOLVER_ADDON_NOT_INSTALLED","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND","TOKEN_PRICE_TOKEN_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"ASSET_TYPE_TEMPLATE_NOT_FOUND","status":404,"message":"Asset type template not found.","data":{"id":"DALP-0091","why":"The platform searched for the asset type template by the supplied ID and found no record owned by your organization or available as a system template.","fix":"Confirm the ID matches an existing template owned by your organization or a published system template. Re-fetch the list of asset type templates to verify the ID before retrying.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","DURABLE_EXECUTION_ENGINE_CALL_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_MUTATION_INSUFFICIENT_BALANCE","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","ORGANIZATION_SUBMISSION_SIGNER_CLAIM_PURPOSE_MISSING","STRICT_COMPLIANCE_PARAMS_INVALID","SYSTEM_IDENTITY_CLAIM_ISSUE","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_CHAIN_UNAVAILABLE","TOKEN_CLAIM_ISSUE_FAILED","TOKEN_COMPLIANCE_MODULE_BINDING_UNRESOLVED","TOKEN_CREATE_AMBIGUOUS_INTEREST_PROVIDER","TOKEN_CREATE_ASSET_FAMILY_DEPRECATED","TOKEN_CREATE_DUPLICATE","TOKEN_CREATE_RECOVERY_FAILED","TOKEN_FUNDING_PAUSE_FAILED","TOKEN_OPERATION_INPUT_INVALID","TOKEN_PRICE_DENOMINATION_UNUSABLE","TOKEN_PRICE_FEED_FACTORY_MISSING","TOKEN_PRICE_FEED_SIGNER_MISSING","TOKEN_PRICE_INPUT_INVALID","TOKEN_PRICE_UNSUPPORTED_TOKEN","TOKEN_PRICE_UPDATE_FAILED","TOKEN_QUEUE_WRITE_REFUSED","TOKEN_WORKFLOW_FAILED","TOKEN_WRITE_OUTCOME_UNKNOWN","TOKEN_WRITE_RECEIPT_INCOMPLETE","TOKEN_WRITE_REVERTED","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_ACCESS_SYNC_RESULT_UNAVAILABLE","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_PRICE_FEED_FACTORY_UNAVAILABLE","TOKEN_WRITE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.erc20_metadata.PROBE_FAILED","dapi.identity.CLAIM_ISSUE_DEPENDENCY_FAILED","dapi.identity.CLAIM_TOPIC_READ_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Submits an on-chain price feed update for the selected token in the named fiat currency. The caller must be authorized for this token in the active organization. By default the platform queues the transaction and answers under status 202. Prefer: wait=<seconds> waits for settlement. An empty transaction hash means the same price was already applied. After settlement, read the token price to see the indexed value.","summary":"Set the token price","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"price":{"type":"string","pattern":"^(?!0+(?:\\.0+)?$)\\d+(?:\\.\\d+)?$"},"currencyCode":{"$ref":"#/components/schemas/FiatCurrency"}},"required":["price","currencyCode"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/yield-schedule":{"patch":{"tags":["Token lifecycle"],"operationId":"v2/token/setYieldSchedule","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous mutation result (HTTP 200). The write settled within the request wait window. `data` is the resulting token, `meta.txHashes` lists submitted transactions, and `links.self` is the token URL.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["evm"]},"address":{"$ref":"#/components/schemas/EvmAddress"},"name":{"type":"string"},"symbol":{"type":"string"},"decimals":{"type":"integer"},"assetType":{"$ref":"#/components/schemas/AssetTypeOrSlug"},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"totalSupply":{"$ref":"#/components/schemas/AssetAmount"},"basePrice":{"$ref":"#/components/schemas/BigDecimal"},"basePriceCurrencyCode":{"anyOf":[{"$ref":"#/components/schemas/FiatCurrency"},{"type":"null"}]},"smartInterface":{"anyOf":[{"type":"integer"},{"type":"null"}]},"pausable":{"type":"object","properties":{"paused":{"type":"boolean"}},"required":["paused"],"additionalProperties":false},"logoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"tokenFactory":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"templateLink":{"anyOf":[{"type":"object","properties":{"templateId":{"type":"string","minLength":1},"templateSlug":{"type":"string","minLength":1}},"required":["templateId","templateSlug"],"additionalProperties":false},{"type":"null"}]},"capabilities":{"type":"array","items":{"$ref":"#/components/schemas/InstrumentCapability"},"description":"The token's instrument capabilities: share-capital for shares, unit-capital for fund units and real-estate fractions. They decide which corporate actions the token offers. A token linked to a template carries the capabilities snapshotted from that template when it deployed. A token with no template link gets them derived when it is read, from its asset type and its attached features: equity without an attached conversion feature has share-capital, fund and real-estate have unit-capital, and any other type has none."}},"required":["_tag","address","name","symbol","decimals","assetType","createdAt","totalSupply","basePrice","basePriceCurrencyCode","smartInterface","pausable","logoUrl","tokenFactory","templateLink","capabilities"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["canton"]},"instrumentId":{"type":"string","minLength":1},"instrumentAdmin":{"$ref":"#/components/schemas/CantonPartyId"},"name":{"type":"string"},"symbol":{"type":"string"},"networkIdentity":{"type":"string","minLength":1},"disclosedAmount":{"type":"string","pattern":"^-?(0|[1-9]\\d*)(\\.\\d{1,10})?$"},"disclosedLockedAmount":{"type":"string","pattern":"^-?(0|[1-9]\\d*)(\\.\\d{1,10})?$"},"disclosedHolderCount":{"type":"integer","minimum":0},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["_tag","instrumentId","instrumentAdmin","name","symbol","networkIdentity","disclosedAmount","disclosedLockedAmount","disclosedHolderCount","updatedAt"],"additionalProperties":false}]},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"type":"string","minLength":1}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string","minLength":1}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"_tag":"evm","address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"assetType":"bond","createdAt":"2026-03-04T09:12:41.000Z","totalSupply":"50000000","basePrice":"100.00","basePriceCurrencyCode":"EUR","smartInterface":2,"pausable":{"paused":false},"logoUrl":"https://cdn.example.com/tokens/acme25.png","tokenFactory":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","templateLink":{"templateId":"att_northwind_founder_shares","templateSlug":"corporate-bond"},"capabilities":["share-capital"]},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_TYPE_TEMPLATE_NOT_FOUND","CONTRACT_ERROR","NOT_FOUND","PRICE_RESOLVER_ADDON_NOT_INSTALLED","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"ASSET_TYPE_TEMPLATE_NOT_FOUND","status":404,"message":"Asset type template not found.","data":{"id":"DALP-0091","why":"The platform searched for the asset type template by the supplied ID and found no record owned by your organization or available as a system template.","fix":"Confirm the ID matches an existing template owned by your organization or a published system template. Re-fetch the list of asset type templates to verify the ID before retrying.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","DURABLE_EXECUTION_ENGINE_CALL_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_MUTATION_INSUFFICIENT_BALANCE","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","ORGANIZATION_SUBMISSION_SIGNER_CLAIM_PURPOSE_MISSING","STRICT_COMPLIANCE_PARAMS_INVALID","SYSTEM_IDENTITY_CLAIM_ISSUE","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_CHAIN_UNAVAILABLE","TOKEN_CLAIM_ISSUE_FAILED","TOKEN_COMPLIANCE_MODULE_BINDING_UNRESOLVED","TOKEN_CREATE_AMBIGUOUS_INTEREST_PROVIDER","TOKEN_CREATE_ASSET_FAMILY_DEPRECATED","TOKEN_CREATE_DUPLICATE","TOKEN_CREATE_RECOVERY_FAILED","TOKEN_FUNDING_PAUSE_FAILED","TOKEN_OPERATION_INPUT_INVALID","TOKEN_PRICE_DENOMINATION_UNUSABLE","TOKEN_PRICE_FEED_FACTORY_MISSING","TOKEN_PRICE_FEED_SIGNER_MISSING","TOKEN_PRICE_INPUT_INVALID","TOKEN_PRICE_UPDATE_FAILED","TOKEN_QUEUE_WRITE_REFUSED","TOKEN_WORKFLOW_FAILED","TOKEN_WRITE_OUTCOME_UNKNOWN","TOKEN_WRITE_RECEIPT_INCOMPLETE","TOKEN_WRITE_REVERTED","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_ACCESS_SYNC_RESULT_UNAVAILABLE","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_WRITE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.erc20_metadata.PROBE_FAILED","dapi.identity.CLAIM_ISSUE_DEPENDENCY_FAILED","dapi.identity.CLAIM_TOPIC_READ_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Attaches or replaces the yield schedule contract the selected token uses. The platform checks the indexed token first, then submits a live chain transaction. By default the platform queues the transaction and answers under status 202. Prefer: wait=<seconds> waits for settlement.","summary":"Set the token yield schedule","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"schedule":{"$ref":"#/components/schemas/EvmAddress"}},"required":["schedule"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"},"post":{"tags":["Token features"],"operationId":"v2/token/createYieldSchedule","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous mutation result (HTTP 200). The write settled within the request wait window. `data` is the resulting token, `meta.txHashes` lists submitted transactions, and `links.self` is the token URL.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenRecord"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","tokenFactory":"0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0","complianceContract":"0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9","identityRegistry":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","type":"bond","createdAt":"2026-03-04T09:12:41.000Z","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"basePrice":"100.00","basePriceCurrencyCode":"EUR","totalSupply":"2500000.00","totalSupplyExact":"2500000000000000000000000","extensions":["ACCESS_MANAGED","BOND","CAPPED","REDEEMABLE"],"implementsERC3643":true,"smartInterface":2,"implementsSMART":true,"pausable":{"paused":false},"collateral":null,"capped":{"cap":"5000000.00","capExact":"5000000000000000000000000"},"createdBy":{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"},"redeemable":{"redeemedAmount":"0","redeemedAmountExact":"0"},"yield":null,"bond":{"faceValue":"100.00","faceValueExact":"100000000000000000000","isMatured":false,"maturityDate":"2029-03-04T00:00:00.000Z","totalRedeemed":"0","totalRedeemedExact":"0","denominationAsset":{"id":"0x5FbDB2315678afecb367f032d93F642f64180aa3","symbol":"EURC","decimals":6}},"fund":null,"complianceModuleConfigs":[],"stats":{"balancesCount":12,"totalValueInBaseCurrency":"250000000.00","totalBurned":"0","totalBurnedExact":"0"}},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"]},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_TYPE_TEMPLATE_NOT_FOUND","CONTRACT_ERROR","NOT_FOUND","PRICE_RESOLVER_ADDON_NOT_INSTALLED","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"ASSET_TYPE_TEMPLATE_NOT_FOUND","status":404,"message":"Asset type template not found.","data":{"id":"DALP-0091","why":"The platform searched for the asset type template by the supplied ID and found no record owned by your organization or available as a system template.","fix":"Confirm the ID matches an existing template owned by your organization or a published system template. Re-fetch the list of asset type templates to verify the ID before retrying.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","DURABLE_EXECUTION_ENGINE_CALL_CONFLICT","FIXED_YIELD_OPERATION_ADDON_NOT_FOUND","FIXED_YIELD_OPERATION_DENOMINATION_ASSET_NOT_INDEXED","FIXED_YIELD_OPERATION_DENOMINATION_METADATA_NOT_INDEXED","FIXED_YIELD_OPERATION_DEPLOYMENT_NOT_INDEXED","FIXED_YIELD_OPERATION_SCHEDULE_NOT_FOUND","FIXED_YIELD_OPERATION_SYSTEM_MISMATCH","FIXED_YIELD_OPERATION_TOKEN_LINKAGE_NOT_INDEXED","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_MUTATION_INSUFFICIENT_BALANCE","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","ORGANIZATION_SUBMISSION_SIGNER_CLAIM_PURPOSE_MISSING","STRICT_COMPLIANCE_PARAMS_INVALID","SYSTEM_IDENTITY_CLAIM_ISSUE","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_CHAIN_UNAVAILABLE","TOKEN_CLAIM_ISSUE_FAILED","TOKEN_COMPLIANCE_MODULE_BINDING_UNRESOLVED","TOKEN_CREATE_AMBIGUOUS_INTEREST_PROVIDER","TOKEN_CREATE_ASSET_FAMILY_DEPRECATED","TOKEN_CREATE_DUPLICATE","TOKEN_CREATE_RECOVERY_FAILED","TOKEN_FUNDING_PAUSE_FAILED","TOKEN_LIFECYCLE_VALIDATION_FAILED","TOKEN_OPERATION_INPUT_INVALID","TOKEN_PRICE_DENOMINATION_UNUSABLE","TOKEN_PRICE_FEED_FACTORY_MISSING","TOKEN_PRICE_FEED_SIGNER_MISSING","TOKEN_PRICE_INPUT_INVALID","TOKEN_PRICE_UPDATE_FAILED","TOKEN_QUEUE_WRITE_REFUSED","TOKEN_WORKFLOW_FAILED","TOKEN_WRITE_OUTCOME_UNKNOWN","TOKEN_WRITE_RECEIPT_INCOMPLETE","TOKEN_WRITE_REVERTED","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_ACCESS_SYNC_RESULT_UNAVAILABLE","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_WRITE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.identity.CLAIM_ISSUE_DEPENDENCY_FAILED","dapi.identity.CLAIM_TOPIC_READ_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Deploys a fixed-yield schedule for the selected token and attaches it as one queued chain. The caller needs the token governance role and the system token manager role, and the token must not have a yield schedule. The platform runs every check before it queues a transaction. By default the platform answers with the transaction identifier and status URL under status 202. Prefer: wait=<seconds> waits for settlement and returns the token with its schedule. When the attach fails, the token keeps no schedule and the transaction status lists the schedule deployment hash. A retry with the same terms attaches that schedule and does not deploy another.","summary":"Create and attach a token yield schedule","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"yieldRate":{"type":"integer","minimum":1,"maximum":10000},"paymentInterval":{"anyOf":[{"type":"string","enum":["HOURLY","DAILY","WEEKLY","MONTHLY","QUARTERLY","SEMI_ANNUAL","YEARLY"]},{"type":"integer","minimum":1,"maximum":31536000}]},"startTime":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"number","minimum":0},{"type":"string"}]},"endTime":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"number","minimum":0},{"type":"string"}]},"countryCode":{"type":"integer","minimum":1,"maximum":999}},"required":["yieldRate","paymentInterval","startTime","endTime","countryCode"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/legacy-bond-redemption-top-ups":{"post":{"tags":["Token lifecycle"],"operationId":"v2/token/topUpBondDenomination","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous mutation result (HTTP 200). The write settled within the request wait window. `data` is the resulting token, `meta.txHashes` lists submitted transactions, and `links.self` is the token URL.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["evm"]},"address":{"$ref":"#/components/schemas/EvmAddress"},"name":{"type":"string"},"symbol":{"type":"string"},"decimals":{"type":"integer"},"assetType":{"$ref":"#/components/schemas/AssetTypeOrSlug"},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"totalSupply":{"$ref":"#/components/schemas/AssetAmount"},"basePrice":{"$ref":"#/components/schemas/BigDecimal"},"basePriceCurrencyCode":{"anyOf":[{"$ref":"#/components/schemas/FiatCurrency"},{"type":"null"}]},"smartInterface":{"anyOf":[{"type":"integer"},{"type":"null"}]},"pausable":{"type":"object","properties":{"paused":{"type":"boolean"}},"required":["paused"],"additionalProperties":false},"logoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"tokenFactory":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"templateLink":{"anyOf":[{"type":"object","properties":{"templateId":{"type":"string","minLength":1},"templateSlug":{"type":"string","minLength":1}},"required":["templateId","templateSlug"],"additionalProperties":false},{"type":"null"}]},"capabilities":{"type":"array","items":{"$ref":"#/components/schemas/InstrumentCapability"},"description":"The token's instrument capabilities: share-capital for shares, unit-capital for fund units and real-estate fractions. They decide which corporate actions the token offers. A token linked to a template carries the capabilities snapshotted from that template when it deployed. A token with no template link gets them derived when it is read, from its asset type and its attached features: equity without an attached conversion feature has share-capital, fund and real-estate have unit-capital, and any other type has none."}},"required":["_tag","address","name","symbol","decimals","assetType","createdAt","totalSupply","basePrice","basePriceCurrencyCode","smartInterface","pausable","logoUrl","tokenFactory","templateLink","capabilities"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["canton"]},"instrumentId":{"type":"string","minLength":1},"instrumentAdmin":{"$ref":"#/components/schemas/CantonPartyId"},"name":{"type":"string"},"symbol":{"type":"string"},"networkIdentity":{"type":"string","minLength":1},"disclosedAmount":{"type":"string","pattern":"^-?(0|[1-9]\\d*)(\\.\\d{1,10})?$"},"disclosedLockedAmount":{"type":"string","pattern":"^-?(0|[1-9]\\d*)(\\.\\d{1,10})?$"},"disclosedHolderCount":{"type":"integer","minimum":0},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["_tag","instrumentId","instrumentAdmin","name","symbol","networkIdentity","disclosedAmount","disclosedLockedAmount","disclosedHolderCount","updatedAt"],"additionalProperties":false}]},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"type":"string","minLength":1}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string","minLength":1}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"_tag":"evm","address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"assetType":"bond","createdAt":"2026-03-04T09:12:41.000Z","totalSupply":"50000000","basePrice":"100.00","basePriceCurrencyCode":"EUR","smartInterface":2,"pausable":{"paused":false},"logoUrl":"https://cdn.example.com/tokens/acme25.png","tokenFactory":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","templateLink":{"templateId":"att_northwind_founder_shares","templateSlug":"corporate-bond"},"capabilities":["share-capital"]},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_TYPE_TEMPLATE_NOT_FOUND","CONTRACT_ERROR","LEGACY_BOND_NOT_INDEXED","NOT_FOUND","PRICE_RESOLVER_ADDON_NOT_INSTALLED","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"ASSET_TYPE_TEMPLATE_NOT_FOUND","status":404,"message":"Asset type template not found.","data":{"id":"DALP-0091","why":"The platform searched for the asset type template by the supplied ID and found no record owned by your organization or available as a system template.","fix":"Confirm the ID matches an existing template owned by your organization or a published system template. Re-fetch the list of asset type templates to verify the ID before retrying.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","DURABLE_EXECUTION_ENGINE_CALL_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_MUTATION_INSUFFICIENT_BALANCE","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","LEGACY_BOND_FEATURE_TREASURY_REQUIRED","OPERATION_FAMILY_UNSUPPORTED","ORGANIZATION_SUBMISSION_SIGNER_CLAIM_PURPOSE_MISSING","STRICT_COMPLIANCE_PARAMS_INVALID","SYSTEM_IDENTITY_CLAIM_ISSUE","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_CHAIN_UNAVAILABLE","TOKEN_CLAIM_ISSUE_FAILED","TOKEN_COMPLIANCE_MODULE_BINDING_UNRESOLVED","TOKEN_CREATE_AMBIGUOUS_INTEREST_PROVIDER","TOKEN_CREATE_ASSET_FAMILY_DEPRECATED","TOKEN_CREATE_DUPLICATE","TOKEN_CREATE_RECOVERY_FAILED","TOKEN_FUNDING_PAUSE_FAILED","TOKEN_OPERATION_INPUT_INVALID","TOKEN_PRICE_DENOMINATION_UNUSABLE","TOKEN_PRICE_FEED_FACTORY_MISSING","TOKEN_PRICE_FEED_SIGNER_MISSING","TOKEN_PRICE_INPUT_INVALID","TOKEN_PRICE_UPDATE_FAILED","TOKEN_QUEUE_WRITE_REFUSED","TOKEN_WORKFLOW_FAILED","TOKEN_WRITE_OUTCOME_UNKNOWN","TOKEN_WRITE_RECEIPT_INCOMPLETE","TOKEN_WRITE_REVERTED","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"LEGACY_BOND_FEATURE_TREASURY_REQUIRED","status":422,"message":"This bond funds redemptions from its maturity-redemption feature treasury.","data":{"id":"DALP-12027","why":"The bond has an attached maturity-redemption feature, and that feature's configured treasury pays redemptions. The legacy top-up route writes to the bond contract instead, so the deposit would never fund a redemption.","fix":"Use the maturity-redemption treasury top-up endpoint for this bond.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_ACCESS_SYNC_RESULT_UNAVAILABLE","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_WRITE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.erc20_metadata.PROBE_FAILED","dapi.identity.CLAIM_ISSUE_DEPENDENCY_FAILED","dapi.identity.CLAIM_TOPIC_READ_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Adds denomination-asset funds to the selected legacy bond treasury so later redemptions can settle. The token must already be indexed and must have a treasury. The platform checks the indexed bond first, then submits a live chain transaction. By default the platform queues the transaction and answers under status 202. Prefer: wait=<seconds> waits for settlement.","summary":"Top up a legacy bond denomination","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"amount":{"type":"string","pattern":"^[0-9]+$"}},"required":["amount"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/claims":{"post":{"tags":["Token lifecycle"],"operationId":"v2/token/claimIssue","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous claim-issue result (HTTP 200). `data` names the issued topic and the identity that received it.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"success":{"type":"boolean"},"txHash":{"type":"string","minLength":1},"claimTopic":{"type":"string","minLength":1},"targetIdentity":{"$ref":"#/components/schemas/EvmAddress"}},"required":["success","txHash","claimTopic","targetIdentity"],"additionalProperties":false},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"type":"string","minLength":1}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string","minLength":1}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"success":true,"txHash":"0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24","claimTopic":"uniqueIdentifier","targetIdentity":"0x90F79bf6EB2c4f870365E785982E1f101E93b906"},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"]},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_TYPE_TEMPLATE_NOT_FOUND","CONTRACT_ERROR","NOT_FOUND","PRICE_RESOLVER_ADDON_NOT_INSTALLED","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"ASSET_TYPE_TEMPLATE_NOT_FOUND","status":404,"message":"Asset type template not found.","data":{"id":"DALP-0091","why":"The platform searched for the asset type template by the supplied ID and found no record owned by your organization or available as a system template.","fix":"Confirm the ID matches an existing template owned by your organization or a published system template. Re-fetch the list of asset type templates to verify the ID before retrying.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","DURABLE_EXECUTION_ENGINE_CALL_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_CLAIM_SIGNING_REFUSED","TOKEN_MUTATION_INSUFFICIENT_BALANCE","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","ORGANIZATION_SUBMISSION_SIGNER_CLAIM_PURPOSE_MISSING","STRICT_COMPLIANCE_PARAMS_INVALID","SYSTEM_IDENTITY_CLAIM_ISSUE","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_CHAIN_UNAVAILABLE","TOKEN_CLAIM_ISSUE_FAILED","TOKEN_CLAIM_VALIDATION_FAILED","TOKEN_COMPLIANCE_MODULE_BINDING_UNRESOLVED","TOKEN_CREATE_AMBIGUOUS_INTEREST_PROVIDER","TOKEN_CREATE_ASSET_FAMILY_DEPRECATED","TOKEN_CREATE_DUPLICATE","TOKEN_CREATE_RECOVERY_FAILED","TOKEN_FUNDING_PAUSE_FAILED","TOKEN_OPERATION_INPUT_INVALID","TOKEN_PRICE_DENOMINATION_UNUSABLE","TOKEN_PRICE_FEED_FACTORY_MISSING","TOKEN_PRICE_FEED_SIGNER_MISSING","TOKEN_PRICE_INPUT_INVALID","TOKEN_PRICE_UPDATE_FAILED","TOKEN_QUEUE_WRITE_REFUSED","TOKEN_WORKFLOW_FAILED","TOKEN_WRITE_OUTCOME_UNKNOWN","TOKEN_WRITE_RECEIPT_INCOMPLETE","TOKEN_WRITE_REVERTED","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_ACCESS_SYNC_RESULT_UNAVAILABLE","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_CLAIM_INDEXED_STATE_UNAVAILABLE","TOKEN_WRITE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.erc20_metadata.PROBE_FAILED","dapi.identity.CLAIM_ISSUE_DEPENDENCY_FAILED","dapi.identity.CLAIM_TOPIC_READ_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Issues an identity claim against the selected token's on-chain identity, using a topic registered for the active system. The payload must match the registered scheme. The platform checks the indexed token and topic scheme first, then submits a live chain transaction. By default the platform queues the transaction and answers under status 202. Prefer: wait=<seconds> waits for settlement.","summary":"Issue a token claim","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"externalMessageAuthorization":{"type":"object","properties":{"signature":{"type":"string","minLength":1}},"required":["signature"],"additionalProperties":false},"claim":{"type":"object","properties":{"topic":{"type":"string","minLength":1},"data":{"type":"object"}},"required":["topic","data"],"additionalProperties":false}},"required":["claim"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/claim-revocations":{"post":{"tags":["Token lifecycle"],"operationId":"v2/token/claimRevoke","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous claim-revoke result (HTTP 200). `data.claimId` is the revoked on-chain claim.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"success":{"type":"boolean"},"txHash":{"type":"string","minLength":1},"claimId":{"type":"string","minLength":1}},"required":["success","txHash","claimId"],"additionalProperties":false},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"type":"string","minLength":1}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string","minLength":1}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"success":true,"txHash":"0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24","claimId":"0x1c8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8"},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"]},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_TYPE_TEMPLATE_NOT_FOUND","CONTRACT_ERROR","NOT_FOUND","PRICE_RESOLVER_ADDON_NOT_INSTALLED","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"ASSET_TYPE_TEMPLATE_NOT_FOUND","status":404,"message":"Asset type template not found.","data":{"id":"DALP-0091","why":"The platform searched for the asset type template by the supplied ID and found no record owned by your organization or available as a system template.","fix":"Confirm the ID matches an existing template owned by your organization or a published system template. Re-fetch the list of asset type templates to verify the ID before retrying.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","DURABLE_EXECUTION_ENGINE_CALL_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_CLAIM_SIGNING_REFUSED","TOKEN_MUTATION_INSUFFICIENT_BALANCE","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","ORGANIZATION_SUBMISSION_SIGNER_CLAIM_PURPOSE_MISSING","STRICT_COMPLIANCE_PARAMS_INVALID","SYSTEM_IDENTITY_CLAIM_ISSUE","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_CHAIN_UNAVAILABLE","TOKEN_CLAIM_ISSUE_FAILED","TOKEN_CLAIM_VALIDATION_FAILED","TOKEN_COMPLIANCE_MODULE_BINDING_UNRESOLVED","TOKEN_CREATE_AMBIGUOUS_INTEREST_PROVIDER","TOKEN_CREATE_ASSET_FAMILY_DEPRECATED","TOKEN_CREATE_DUPLICATE","TOKEN_CREATE_RECOVERY_FAILED","TOKEN_FUNDING_PAUSE_FAILED","TOKEN_OPERATION_INPUT_INVALID","TOKEN_PRICE_DENOMINATION_UNUSABLE","TOKEN_PRICE_FEED_FACTORY_MISSING","TOKEN_PRICE_FEED_SIGNER_MISSING","TOKEN_PRICE_INPUT_INVALID","TOKEN_PRICE_UPDATE_FAILED","TOKEN_QUEUE_WRITE_REFUSED","TOKEN_WORKFLOW_FAILED","TOKEN_WRITE_OUTCOME_UNKNOWN","TOKEN_WRITE_RECEIPT_INCOMPLETE","TOKEN_WRITE_REVERTED","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_ACCESS_SYNC_RESULT_UNAVAILABLE","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_CLAIM_INDEXED_STATE_UNAVAILABLE","TOKEN_WRITE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.erc20_metadata.PROBE_FAILED","dapi.identity.CLAIM_ISSUE_DEPENDENCY_FAILED","dapi.identity.CLAIM_TOPIC_READ_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Revokes a previously issued identity claim on the selected token's on-chain identity. The platform checks the indexed token and topic first, then submits a live chain transaction. By default the platform queues the transaction and answers under status 202. Prefer: wait=<seconds> waits for settlement.","summary":"Revoke a token claim","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"externalMessageAuthorization":{"type":"object","properties":{"signature":{"type":"string","minLength":1}},"required":["signature"],"additionalProperties":false},"claimTopic":{"type":"string","minLength":1,"maxLength":100}},"required":["claimTopic"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/collateral":{"patch":{"tags":["Token lifecycle"],"operationId":"v2/token/updateCollateral","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous mutation result (HTTP 200). The write settled within the request wait window. `data` is the token an EVM write moved, or the Canton operation a Canton write submitted.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"anyOf":[{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["evm"]},"address":{"$ref":"#/components/schemas/EvmAddress"},"name":{"type":"string"},"symbol":{"type":"string"},"decimals":{"type":"integer"},"assetType":{"$ref":"#/components/schemas/AssetTypeOrSlug"},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"totalSupply":{"$ref":"#/components/schemas/AssetAmount"},"basePrice":{"$ref":"#/components/schemas/BigDecimal"},"basePriceCurrencyCode":{"anyOf":[{"$ref":"#/components/schemas/FiatCurrency"},{"type":"null"}]},"smartInterface":{"anyOf":[{"type":"integer"},{"type":"null"}]},"pausable":{"type":"object","properties":{"paused":{"type":"boolean"}},"required":["paused"],"additionalProperties":false},"logoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"tokenFactory":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"templateLink":{"anyOf":[{"type":"object","properties":{"templateId":{"type":"string","minLength":1},"templateSlug":{"type":"string","minLength":1}},"required":["templateId","templateSlug"],"additionalProperties":false},{"type":"null"}]},"capabilities":{"type":"array","items":{"$ref":"#/components/schemas/InstrumentCapability"},"description":"The token's instrument capabilities: share-capital for shares, unit-capital for fund units and real-estate fractions. They decide which corporate actions the token offers. A token linked to a template carries the capabilities snapshotted from that template when it deployed. A token with no template link gets them derived when it is read, from its asset type and its attached features: equity without an attached conversion feature has share-capital, fund and real-estate have unit-capital, and any other type has none."}},"required":["_tag","address","name","symbol","decimals","assetType","createdAt","totalSupply","basePrice","basePriceCurrencyCode","smartInterface","pausable","logoUrl","tokenFactory","templateLink","capabilities"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["canton"]},"instrumentId":{"type":"string","minLength":1},"instrumentAdmin":{"$ref":"#/components/schemas/CantonPartyId"},"name":{"type":"string"},"symbol":{"type":"string"},"networkIdentity":{"type":"string","minLength":1},"disclosedAmount":{"type":"string","pattern":"^-?(0|[1-9]\\d*)(\\.\\d{1,10})?$"},"disclosedLockedAmount":{"type":"string","pattern":"^-?(0|[1-9]\\d*)(\\.\\d{1,10})?$"},"disclosedHolderCount":{"type":"integer","minimum":0},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["_tag","instrumentId","instrumentAdmin","name","symbol","networkIdentity","disclosedAmount","disclosedLockedAmount","disclosedHolderCount","updatedAt"],"additionalProperties":false}]},{"$ref":"#/components/schemas/CantonArmSettledResult"}]},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"type":"string","minLength":1}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string","minLength":1}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"_tag":"evm","address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"assetType":"bond","createdAt":"2026-03-04T09:12:41.000Z","totalSupply":"50000000","basePrice":"100.00","basePriceCurrencyCode":"EUR","smartInterface":2,"pausable":{"paused":false},"logoUrl":"https://cdn.example.com/tokens/acme25.png","tokenFactory":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","templateLink":{"templateId":"att_northwind_founder_shares","templateSlug":"corporate-bond"},"capabilities":["share-capital"]},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CANTON_TOKEN_OPERATION_REQUEST_INVALID","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_TYPE_TEMPLATE_NOT_FOUND","CANTON_PARTY_WALLET_NOT_FOUND","CONTRACT_ERROR","NOT_FOUND","PRICE_RESOLVER_ADDON_NOT_INSTALLED","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"ASSET_TYPE_TEMPLATE_NOT_FOUND","status":404,"message":"Asset type template not found.","data":{"id":"DALP-0091","why":"The platform searched for the asset type template by the supplied ID and found no record owned by your organization or available as a system template.","fix":"Confirm the ID matches an existing template owned by your organization or a published system template. Re-fetch the list of asset type templates to verify the ID before retrying.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","DURABLE_EXECUTION_ENGINE_CALL_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_CLAIM_SIGNING_REFUSED","TOKEN_MUTATION_INSUFFICIENT_BALANCE","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_APPROVAL_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"CANTON_APPROVAL_EXPIRED","status":410,"message":"The Canton command's validity window closed","data":{"id":"DALP-9321","why":"The command's validity window closed while the intent waited for approval, so the platform never sent it to the ledger.","fix":"Submit the command again. The expired intent is terminal and its approval is not reopened.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_NETWORK_NOT_CONFIGURED","CANTON_NETWORK_NOT_ENABLED","CONTRACT_ERROR","CUSTODY_CANTON_SIGNING_UNSUPPORTED","OPERATION_FAMILY_UNSUPPORTED","ORGANIZATION_SUBMISSION_SIGNER_CLAIM_PURPOSE_MISSING","STRICT_COMPLIANCE_PARAMS_INVALID","SYSTEM_IDENTITY_CLAIM_ISSUE","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_CHAIN_UNAVAILABLE","TOKEN_CLAIM_ISSUE_FAILED","TOKEN_CLAIM_VALIDATION_FAILED","TOKEN_COMPLIANCE_MODULE_BINDING_UNRESOLVED","TOKEN_CREATE_AMBIGUOUS_INTEREST_PROVIDER","TOKEN_CREATE_ASSET_FAMILY_DEPRECATED","TOKEN_CREATE_DUPLICATE","TOKEN_CREATE_RECOVERY_FAILED","TOKEN_FUNDING_PAUSE_FAILED","TOKEN_OPERATION_INPUT_INVALID","TOKEN_PRICE_DENOMINATION_UNUSABLE","TOKEN_PRICE_FEED_FACTORY_MISSING","TOKEN_PRICE_FEED_SIGNER_MISSING","TOKEN_PRICE_INPUT_INVALID","TOKEN_PRICE_UPDATE_FAILED","TOKEN_QUEUE_WRITE_REFUSED","TOKEN_WORKFLOW_FAILED","TOKEN_WRITE_OUTCOME_UNKNOWN","TOKEN_WRITE_RECEIPT_INCOMPLETE","TOKEN_WRITE_REVERTED","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"CANTON_NETWORK_NOT_CONFIGURED","status":422,"message":"No Canton participant network is configured","data":{"id":"DALP-9313","why":"This deployment has no Canton participant network, so the platform cannot allocate a party or submit a DAML command.","fix":"Ask an operator to add a Canton network to the platform configuration, then retry.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_SUBMISSION_FAILED","CUSTODY_CREDENTIALS_UNAVAILABLE","INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"CANTON_SUBMISSION_FAILED","status":500,"message":"Canton command submission failed","data":{"id":"DALP-9318","why":"The platform accepted the command, then submission stopped before the ledger settled it.","fix":"Inspect the submission status, then retry with the same submission id when the failure is retryable.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_ACCESS_SYNC_RESULT_UNAVAILABLE","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_CLAIM_INDEXED_STATE_UNAVAILABLE","TOKEN_WRITE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.erc20_metadata.PROBE_FAILED","dapi.identity.CLAIM_ISSUE_DEPENDENCY_FAILED","dapi.identity.CLAIM_TOPIC_READ_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Updates the collateral amount recorded on the selected token's identity. An EVM token's collateral lives on its identity contract and the platform checks the indexed token first, then submits a live chain transaction. A Canton instrument's collateral is the admin's attestation on its collateral module, and a body carrying `instrumentAdmin` submits that attestation as one of the organization's party wallets, naming the module contract by the id the Canton compliance read returned; the submitting party must hold claim-issuer standing on that instrument. By default the platform queues the transaction and answers under status 202. Prefer: wait=<seconds> waits for settlement.","summary":"Update token collateral","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"externalMessageAuthorization":{"type":"object","properties":{"signature":{"type":"string","minLength":1}},"required":["signature"],"additionalProperties":false},"amount":{"type":"string","pattern":"^[0-9]+$"},"expiryTimestamp":{"$ref":"#/components/schemas/BlocktimeEncoded"},"instrumentAdmin":{"not":{}}},"required":["amount"],"additionalProperties":false},{"$ref":"#/components/schemas/CantonCollateralArmBody"}],"description":"Collateral update. Send the EVM fields, or a Canton body carrying `instrumentAdmin`."}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/accounts":{"post":{"tags":["Token controls"],"operationId":"v2/token/registerAccount","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled Canton operation. `data` carries the operation, submission and ledger submission ids plus the prepared-transaction hash; `links.self` is the collection this write belongs to.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CantonArmSettledResult"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"type":"string","minLength":1}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string","minLength":1}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"operationId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","submissionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","ledgerSubmissionId":"1220ab","preparedHashHex":"deadbeef"},"meta":{"txHashes":[]},"links":{"self":"/api/v2/tokens/BOND/accounts"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CANTON_TOKEN_OPERATION_REQUEST_INVALID","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_TYPE_TEMPLATE_NOT_FOUND","CANTON_PARTY_WALLET_NOT_FOUND","CONTRACT_ERROR","NOT_FOUND","PRICE_RESOLVER_ADDON_NOT_INSTALLED","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"ASSET_TYPE_TEMPLATE_NOT_FOUND","status":404,"message":"Asset type template not found.","data":{"id":"DALP-0091","why":"The platform searched for the asset type template by the supplied ID and found no record owned by your organization or available as a system template.","fix":"Confirm the ID matches an existing template owned by your organization or a published system template. Re-fetch the list of asset type templates to verify the ID before retrying.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_SETTLEMENT_BATCH_NOT_COVERABLE","CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","DURABLE_EXECUTION_ENGINE_CALL_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_MUTATION_INSUFFICIENT_BALANCE","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CANTON_SETTLEMENT_BATCH_NOT_COVERABLE","status":409,"message":"The batch's allocations do not cover its transfer legs exactly","data":{"id":"DALP-9325","why":"Every leg of a batch needs both a sender and a receiver side authorized by an allocation, and at least one leg had neither or only one, so no leg executed and the platform released the escrow it had drawn.","fix":"Read the uncovered legs and unauthorized sides named in the response, escrow the missing sides, then submit the batch again.","retryable":false,"category":"domain","releasedAllocationContractIds":[],"unauthorizedTransferLegSides":[],"uncoveredTransferLegIds":[],"unreleasedAllocationContractIds":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_APPROVAL_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"CANTON_APPROVAL_EXPIRED","status":410,"message":"The Canton command's validity window closed","data":{"id":"DALP-9321","why":"The command's validity window closed while the intent waited for approval, so the platform never sent it to the ledger.","fix":"Submit the command again. The expired intent is terminal and its approval is not reopened.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_NETWORK_NOT_CONFIGURED","CANTON_NETWORK_NOT_ENABLED","CONTRACT_ERROR","CUSTODY_CANTON_SIGNING_UNSUPPORTED","OPERATION_FAMILY_UNSUPPORTED","ORGANIZATION_SUBMISSION_SIGNER_CLAIM_PURPOSE_MISSING","STRICT_COMPLIANCE_PARAMS_INVALID","SYSTEM_IDENTITY_CLAIM_ISSUE","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_CHAIN_UNAVAILABLE","TOKEN_CLAIM_ISSUE_FAILED","TOKEN_COMPLIANCE_MODULE_BINDING_UNRESOLVED","TOKEN_CREATE_AMBIGUOUS_INTEREST_PROVIDER","TOKEN_CREATE_ASSET_FAMILY_DEPRECATED","TOKEN_CREATE_DUPLICATE","TOKEN_CREATE_RECOVERY_FAILED","TOKEN_FUNDING_PAUSE_FAILED","TOKEN_OPERATION_INPUT_INVALID","TOKEN_PRICE_DENOMINATION_UNUSABLE","TOKEN_PRICE_FEED_FACTORY_MISSING","TOKEN_PRICE_FEED_SIGNER_MISSING","TOKEN_PRICE_INPUT_INVALID","TOKEN_PRICE_UPDATE_FAILED","TOKEN_QUEUE_WRITE_REFUSED","TOKEN_WORKFLOW_FAILED","TOKEN_WRITE_OUTCOME_UNKNOWN","TOKEN_WRITE_RECEIPT_INCOMPLETE","TOKEN_WRITE_REVERTED","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"CANTON_NETWORK_NOT_CONFIGURED","status":422,"message":"No Canton participant network is configured","data":{"id":"DALP-9313","why":"This deployment has no Canton participant network, so the platform cannot allocate a party or submit a DAML command.","fix":"Ask an operator to add a Canton network to the platform configuration, then retry.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_SUBMISSION_FAILED","CUSTODY_CREDENTIALS_UNAVAILABLE","INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"CANTON_SUBMISSION_FAILED","status":500,"message":"Canton command submission failed","data":{"id":"DALP-9318","why":"The platform accepted the command, then submission stopped before the ledger settled it.","fix":"Inspect the submission status, then retry with the same submission id when the failure is retryable.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_ACCESS_SYNC_RESULT_UNAVAILABLE","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_WRITE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.erc20_metadata.PROBE_FAILED","dapi.identity.CLAIM_ISSUE_DEPENDENCY_FAILED","dapi.identity.CLAIM_TOPIC_READ_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Onboards one account into the Canton instrument's account-state book, unfrozen. A registry that enforces account states refuses debits from an account that was never onboarded, so this is a precondition for holding, and a second registration of the same account is refused. The account registered is a regular one, held by the owner under its own name; a custody-scoped account appears in reads as a non-null providerParty but needs the provider's signature alongside the owner's, which one submission cannot carry. There is no EVM counterpart: an EVM holder needs no registration. Send `instrumentAdmin` with the instrument id in the path segment; a request without it is refused, because this operation exists on Canton alone. Read the account back from the accounts collection of the same instrument.","summary":"Register a Canton account","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"instrumentAdmin":{"$ref":"#/components/schemas/CantonPartyId_23"},"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"cantonPartyId":{"$ref":"#/components/schemas/CantonPartyId"},"bookContractId":{"type":"string","minLength":1},"ownerParty":{"$ref":"#/components/schemas/CantonPartyId"},"accountId":{"type":"string"}},"required":["cantonPartyId","bookContractId","ownerParty"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"},"get":{"tags":["Tokens"],"operationId":"v2/token/accounts","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"instrumentAdmin","in":"query","schema":{"type":"string","minLength":1,"description":"Canton external party identifier"},"required":false},{"name":"sort","in":"query","schema":{"type":"string"},"required":false},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"type":"integer"},"limit":{"type":"integer"}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"filter","in":"query","schema":{"type":"object","properties":{"kind":{"type":"string","minLength":1},"ownerParty":{"type":"string","minLength":1,"description":"Canton external party identifier"},"providerParty":{"type":"string","minLength":1,"description":"Canton external party identifier"},"accountId":{"type":"string","minLength":1},"fullyFrozen":{"type":"string","minLength":1},"createdOffset":{"type":"string"},"recordTime":{"type":"string"}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true}],"responses":{"200":{"description":"One page of the selected Canton instrument's custodian accounts and account books, disclosed to the calling organization's parties. `meta.total` counts every matching row, not only this page. Rows are ordered by creation offset descending unless the request names a `sort`, and every pagination link repeats `instrumentAdmin` so a resumed page still names the instrument.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountsV2OutputSchema"},"examples":{"example-1":{"value":{"data":[{"family":"canton","networkIdentity":"canton-local","contractId":"00a1b2c3d4e5f60718293a4b5c6d7e8f90a1b2c3d4e5f60718293a4b5c6d7e8f90","kind":"account","instrumentAdmin":"Canton::1220abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123","instrumentId":"NWC","ownerParty":"Canton::1220fedcba9876543210fedcba9876543210fedcba9876543210fedcba987654","providerParty":"Canton::12200f1e2d3c4b5a69788796a5b4c3d2e1f00f1e2d3c4b5a69788796a5b4c3d2e1","accountId":"treasury-main","fullyFrozen":false,"createdOffset":"10427","updateId":"1220aabbccddeeff00112233445566778899aabbccddeeff0011223344556677","recordTime":"2026-08-21T09:15:00.000Z"}],"meta":{"total":1},"links":{"self":"/api/v2/tokens/NWC/accounts?sort=-createdOffset&page%5Boffset%5D=0&page%5Blimit%5D=50&instrumentAdmin=Canton%3A%3A1220abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123","first":"/api/v2/tokens/NWC/accounts?sort=-createdOffset&page%5Boffset%5D=0&page%5Blimit%5D=50&instrumentAdmin=Canton%3A%3A1220abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123","prev":null,"next":null,"last":"/api/v2/tokens/NWC/accounts?sort=-createdOffset&page%5Boffset%5D=0&page%5Blimit%5D=50&instrumentAdmin=Canton%3A%3A1220abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_NETWORK_NOT_CONFIGURED","CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"CANTON_NETWORK_NOT_CONFIGURED","status":422,"message":"No Canton participant network is configured","data":{"id":"DALP-9313","why":"This deployment has no Canton participant network, so the platform cannot allocate a party or submit a DAML command.","fix":"Ask an operator to add a Canton network to the platform configuration, then retry.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_READ_DEPENDENCY_FAILED","core.database.QUERY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"core.database.QUERY_FAILED","status":503,"message":"The database is temporarily unavailable","data":{"id":"DALP-12148","why":"The platform could not complete a database query required for this request.","fix":"Retry the request. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of Canton holding accounts and account books for the selected instrument: one row per custodian account, with its owner party, provider party, account id and freeze state, plus the per-instrument book that holds them. The instrument is named as a Canton `instrumentId` sent together with the `instrumentAdmin` that completes its key. This operation has no EVM counterpart, because an EVM token has no account contract to register: an `assetId` sent without `instrumentAdmin` is refused with a 422 naming the family rather than answered with an empty page. Page, filter, and sort on the ledger's own columns; default sort is creation offset descending. Every pagination link repeats `instrumentAdmin`. Rows are limited to what the ledger discloses to the active organization's parties. The list is indexed.","summary":"List asset accounts","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/holding-freezes":{"put":{"tags":["Token controls"],"operationId":"v2/token/freezeHolding","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled Canton operation. `data` carries the operation, submission and ledger submission ids plus the prepared-transaction hash; `links.self` is the collection this write belongs to.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CantonArmSettledResult"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"type":"string","minLength":1}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string","minLength":1}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"operationId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","submissionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","ledgerSubmissionId":"1220ab","preparedHashHex":"deadbeef"},"meta":{"txHashes":[]},"links":{"self":"/api/v2/tokens/BOND/accounts"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CANTON_TOKEN_OPERATION_REQUEST_INVALID","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_TYPE_TEMPLATE_NOT_FOUND","CANTON_PARTY_WALLET_NOT_FOUND","CONTRACT_ERROR","NOT_FOUND","PRICE_RESOLVER_ADDON_NOT_INSTALLED","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"ASSET_TYPE_TEMPLATE_NOT_FOUND","status":404,"message":"Asset type template not found.","data":{"id":"DALP-0091","why":"The platform searched for the asset type template by the supplied ID and found no record owned by your organization or available as a system template.","fix":"Confirm the ID matches an existing template owned by your organization or a published system template. Re-fetch the list of asset type templates to verify the ID before retrying.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_SETTLEMENT_BATCH_NOT_COVERABLE","CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","DURABLE_EXECUTION_ENGINE_CALL_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_MUTATION_INSUFFICIENT_BALANCE","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CANTON_SETTLEMENT_BATCH_NOT_COVERABLE","status":409,"message":"The batch's allocations do not cover its transfer legs exactly","data":{"id":"DALP-9325","why":"Every leg of a batch needs both a sender and a receiver side authorized by an allocation, and at least one leg had neither or only one, so no leg executed and the platform released the escrow it had drawn.","fix":"Read the uncovered legs and unauthorized sides named in the response, escrow the missing sides, then submit the batch again.","retryable":false,"category":"domain","releasedAllocationContractIds":[],"unauthorizedTransferLegSides":[],"uncoveredTransferLegIds":[],"unreleasedAllocationContractIds":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_APPROVAL_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"CANTON_APPROVAL_EXPIRED","status":410,"message":"The Canton command's validity window closed","data":{"id":"DALP-9321","why":"The command's validity window closed while the intent waited for approval, so the platform never sent it to the ledger.","fix":"Submit the command again. The expired intent is terminal and its approval is not reopened.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_NETWORK_NOT_CONFIGURED","CANTON_NETWORK_NOT_ENABLED","CONTRACT_ERROR","CUSTODY_CANTON_SIGNING_UNSUPPORTED","OPERATION_FAMILY_UNSUPPORTED","ORGANIZATION_SUBMISSION_SIGNER_CLAIM_PURPOSE_MISSING","STRICT_COMPLIANCE_PARAMS_INVALID","SYSTEM_IDENTITY_CLAIM_ISSUE","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_CHAIN_UNAVAILABLE","TOKEN_CLAIM_ISSUE_FAILED","TOKEN_COMPLIANCE_MODULE_BINDING_UNRESOLVED","TOKEN_CREATE_AMBIGUOUS_INTEREST_PROVIDER","TOKEN_CREATE_ASSET_FAMILY_DEPRECATED","TOKEN_CREATE_DUPLICATE","TOKEN_CREATE_RECOVERY_FAILED","TOKEN_FUNDING_PAUSE_FAILED","TOKEN_OPERATION_INPUT_INVALID","TOKEN_PRICE_DENOMINATION_UNUSABLE","TOKEN_PRICE_FEED_FACTORY_MISSING","TOKEN_PRICE_FEED_SIGNER_MISSING","TOKEN_PRICE_INPUT_INVALID","TOKEN_PRICE_UPDATE_FAILED","TOKEN_QUEUE_WRITE_REFUSED","TOKEN_WORKFLOW_FAILED","TOKEN_WRITE_OUTCOME_UNKNOWN","TOKEN_WRITE_RECEIPT_INCOMPLETE","TOKEN_WRITE_REVERTED","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"CANTON_NETWORK_NOT_CONFIGURED","status":422,"message":"No Canton participant network is configured","data":{"id":"DALP-9313","why":"This deployment has no Canton participant network, so the platform cannot allocate a party or submit a DAML command.","fix":"Ask an operator to add a Canton network to the platform configuration, then retry.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_SUBMISSION_FAILED","CUSTODY_CREDENTIALS_UNAVAILABLE","INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"CANTON_SUBMISSION_FAILED","status":500,"message":"Canton command submission failed","data":{"id":"DALP-9318","why":"The platform accepted the command, then submission stopped before the ledger settled it.","fix":"Inspect the submission status, then retry with the same submission id when the failure is retryable.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_ACCESS_SYNC_RESULT_UNAVAILABLE","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_WRITE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.erc20_metadata.PROBE_FAILED","dapi.identity.CLAIM_ISSUE_DEPENDENCY_FAILED","dapi.identity.CLAIM_TOPIC_READ_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Locks or releases named holdings of one account under the instrument admin's freeze lock. `frozen` true freezes; false releases. Send `stateContractId` with `holdingContractIds` to reach the lock through the account state in one submission, or `holdingContractId` to place it on one holding directly, which is how a holding is held pending recovery. The named holdings stop funding debits while their unfrozen siblings stay spendable, which is a partial freeze over one account rather than an account-wide one. A holding that is already locked is refused rather than re-frozen, and where more than one holding is named the submission is all-or-nothing. Each holding is archived and comes back at a new contract id, so read the outcome back by filtering the holdings collection on the owner and the instrument. Send `instrumentAdmin` with the instrument id in the path segment; a request without it is refused.","summary":"Freeze or unfreeze Canton holdings","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"instrumentAdmin":{"$ref":"#/components/schemas/CantonPartyId_23"},"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"cantonPartyId":{"$ref":"#/components/schemas/CantonPartyId"},"frozen":{"type":"boolean"},"stateContractId":{"type":"string","minLength":1},"holdingContractIds":{"type":"array","items":{"type":"string","minLength":1},"minItems":1},"holdingContractId":{"type":"string","minLength":1}},"required":["cantonPartyId","frozen"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/custodians/{party}":{"delete":{"tags":["Token controls"],"operationId":"v2/token/revokeBurnerCapability","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"party","in":"path","schema":{"type":"string","minLength":1,"description":"Canton external party identifier"},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled Canton operation. `data` carries the operation, submission and ledger submission ids plus the prepared-transaction hash; `links.self` is the collection this write belongs to.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CantonArmSettledResult"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"type":"string","minLength":1}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string","minLength":1}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"operationId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","submissionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","ledgerSubmissionId":"1220ab","preparedHashHex":"deadbeef"},"meta":{"txHashes":[]},"links":{"self":"/api/v2/tokens/BOND/accounts"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CANTON_TOKEN_OPERATION_REQUEST_INVALID","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_TYPE_TEMPLATE_NOT_FOUND","CANTON_PARTY_WALLET_NOT_FOUND","CONTRACT_ERROR","NOT_FOUND","PRICE_RESOLVER_ADDON_NOT_INSTALLED","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"ASSET_TYPE_TEMPLATE_NOT_FOUND","status":404,"message":"Asset type template not found.","data":{"id":"DALP-0091","why":"The platform searched for the asset type template by the supplied ID and found no record owned by your organization or available as a system template.","fix":"Confirm the ID matches an existing template owned by your organization or a published system template. Re-fetch the list of asset type templates to verify the ID before retrying.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_SETTLEMENT_BATCH_NOT_COVERABLE","CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","DURABLE_EXECUTION_ENGINE_CALL_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_MUTATION_INSUFFICIENT_BALANCE","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CANTON_SETTLEMENT_BATCH_NOT_COVERABLE","status":409,"message":"The batch's allocations do not cover its transfer legs exactly","data":{"id":"DALP-9325","why":"Every leg of a batch needs both a sender and a receiver side authorized by an allocation, and at least one leg had neither or only one, so no leg executed and the platform released the escrow it had drawn.","fix":"Read the uncovered legs and unauthorized sides named in the response, escrow the missing sides, then submit the batch again.","retryable":false,"category":"domain","releasedAllocationContractIds":[],"unauthorizedTransferLegSides":[],"uncoveredTransferLegIds":[],"unreleasedAllocationContractIds":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_APPROVAL_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"CANTON_APPROVAL_EXPIRED","status":410,"message":"The Canton command's validity window closed","data":{"id":"DALP-9321","why":"The command's validity window closed while the intent waited for approval, so the platform never sent it to the ledger.","fix":"Submit the command again. The expired intent is terminal and its approval is not reopened.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_NETWORK_NOT_CONFIGURED","CANTON_NETWORK_NOT_ENABLED","CONTRACT_ERROR","CUSTODY_CANTON_SIGNING_UNSUPPORTED","OPERATION_FAMILY_UNSUPPORTED","ORGANIZATION_SUBMISSION_SIGNER_CLAIM_PURPOSE_MISSING","STRICT_COMPLIANCE_PARAMS_INVALID","SYSTEM_IDENTITY_CLAIM_ISSUE","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_CHAIN_UNAVAILABLE","TOKEN_CLAIM_ISSUE_FAILED","TOKEN_COMPLIANCE_MODULE_BINDING_UNRESOLVED","TOKEN_CREATE_AMBIGUOUS_INTEREST_PROVIDER","TOKEN_CREATE_ASSET_FAMILY_DEPRECATED","TOKEN_CREATE_DUPLICATE","TOKEN_CREATE_RECOVERY_FAILED","TOKEN_FUNDING_PAUSE_FAILED","TOKEN_OPERATION_INPUT_INVALID","TOKEN_PRICE_DENOMINATION_UNUSABLE","TOKEN_PRICE_FEED_FACTORY_MISSING","TOKEN_PRICE_FEED_SIGNER_MISSING","TOKEN_PRICE_INPUT_INVALID","TOKEN_PRICE_UPDATE_FAILED","TOKEN_QUEUE_WRITE_REFUSED","TOKEN_WORKFLOW_FAILED","TOKEN_WRITE_OUTCOME_UNKNOWN","TOKEN_WRITE_RECEIPT_INCOMPLETE","TOKEN_WRITE_REVERTED","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"CANTON_NETWORK_NOT_CONFIGURED","status":422,"message":"No Canton participant network is configured","data":{"id":"DALP-9313","why":"This deployment has no Canton participant network, so the platform cannot allocate a party or submit a DAML command.","fix":"Ask an operator to add a Canton network to the platform configuration, then retry.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_SUBMISSION_FAILED","CUSTODY_CREDENTIALS_UNAVAILABLE","INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"CANTON_SUBMISSION_FAILED","status":500,"message":"Canton command submission failed","data":{"id":"DALP-9318","why":"The platform accepted the command, then submission stopped before the ledger settled it.","fix":"Inspect the submission status, then retry with the same submission id when the failure is retryable.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_ACCESS_SYNC_RESULT_UNAVAILABLE","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_WRITE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.erc20_metadata.PROBE_FAILED","dapi.identity.CLAIM_ISSUE_DEPENDENCY_FAILED","dapi.identity.CLAIM_TOPIC_READ_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Withdraws a delegated in-flight seizure authority before it expires. The `party` segment names the custodian that holds it and the body names the capability contract a read handed back. Archiving that contract is the revocation, so a sweep that presents the withdrawn capability fails on the archived contract rather than on a flag. A capability can be granted with a scope and an expiry, and this route is the other half of that: revoke it when the investigation ends instead of waiting for the expiry. Send `instrumentAdmin` with the instrument id in the path segment; a request without it is refused, because the contract set declares no EVM equivalent.","summary":"Revoke a Canton burner capability","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"instrumentAdmin":{"$ref":"#/components/schemas/CantonPartyId_23"},"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"cantonPartyId":{"$ref":"#/components/schemas/CantonPartyId"},"custodianParty":{"$ref":"#/components/schemas/CantonPartyId"},"capabilityContractId":{"type":"string","minLength":1}},"required":["cantonPartyId","custodianParty","capabilityContractId"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/accounts/{party}/snapshots":{"post":{"tags":["Token controls"],"operationId":"v2/token/snapshotAccount","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"party","in":"path","schema":{"type":"string","minLength":1,"description":"Canton external party identifier"},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled Canton operation. `data` carries the operation, submission and ledger submission ids plus the prepared-transaction hash; `links.self` is the collection this write belongs to.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CantonArmSettledResult"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"type":"string","minLength":1}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string","minLength":1}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"operationId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","submissionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","ledgerSubmissionId":"1220ab","preparedHashHex":"deadbeef"},"meta":{"txHashes":[]},"links":{"self":"/api/v2/tokens/BOND/accounts"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CANTON_TOKEN_OPERATION_REQUEST_INVALID","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_TYPE_TEMPLATE_NOT_FOUND","CANTON_PARTY_WALLET_NOT_FOUND","CONTRACT_ERROR","NOT_FOUND","PRICE_RESOLVER_ADDON_NOT_INSTALLED","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"ASSET_TYPE_TEMPLATE_NOT_FOUND","status":404,"message":"Asset type template not found.","data":{"id":"DALP-0091","why":"The platform searched for the asset type template by the supplied ID and found no record owned by your organization or available as a system template.","fix":"Confirm the ID matches an existing template owned by your organization or a published system template. Re-fetch the list of asset type templates to verify the ID before retrying.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_SETTLEMENT_BATCH_NOT_COVERABLE","CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","DURABLE_EXECUTION_ENGINE_CALL_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_MUTATION_INSUFFICIENT_BALANCE","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CANTON_SETTLEMENT_BATCH_NOT_COVERABLE","status":409,"message":"The batch's allocations do not cover its transfer legs exactly","data":{"id":"DALP-9325","why":"Every leg of a batch needs both a sender and a receiver side authorized by an allocation, and at least one leg had neither or only one, so no leg executed and the platform released the escrow it had drawn.","fix":"Read the uncovered legs and unauthorized sides named in the response, escrow the missing sides, then submit the batch again.","retryable":false,"category":"domain","releasedAllocationContractIds":[],"unauthorizedTransferLegSides":[],"uncoveredTransferLegIds":[],"unreleasedAllocationContractIds":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_APPROVAL_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"CANTON_APPROVAL_EXPIRED","status":410,"message":"The Canton command's validity window closed","data":{"id":"DALP-9321","why":"The command's validity window closed while the intent waited for approval, so the platform never sent it to the ledger.","fix":"Submit the command again. The expired intent is terminal and its approval is not reopened.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_NETWORK_NOT_CONFIGURED","CANTON_NETWORK_NOT_ENABLED","CONTRACT_ERROR","CUSTODY_CANTON_SIGNING_UNSUPPORTED","OPERATION_FAMILY_UNSUPPORTED","ORGANIZATION_SUBMISSION_SIGNER_CLAIM_PURPOSE_MISSING","STRICT_COMPLIANCE_PARAMS_INVALID","SYSTEM_IDENTITY_CLAIM_ISSUE","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_CHAIN_UNAVAILABLE","TOKEN_CLAIM_ISSUE_FAILED","TOKEN_COMPLIANCE_MODULE_BINDING_UNRESOLVED","TOKEN_CREATE_AMBIGUOUS_INTEREST_PROVIDER","TOKEN_CREATE_ASSET_FAMILY_DEPRECATED","TOKEN_CREATE_DUPLICATE","TOKEN_CREATE_RECOVERY_FAILED","TOKEN_FUNDING_PAUSE_FAILED","TOKEN_OPERATION_INPUT_INVALID","TOKEN_PRICE_DENOMINATION_UNUSABLE","TOKEN_PRICE_FEED_FACTORY_MISSING","TOKEN_PRICE_FEED_SIGNER_MISSING","TOKEN_PRICE_INPUT_INVALID","TOKEN_PRICE_UPDATE_FAILED","TOKEN_QUEUE_WRITE_REFUSED","TOKEN_WORKFLOW_FAILED","TOKEN_WRITE_OUTCOME_UNKNOWN","TOKEN_WRITE_RECEIPT_INCOMPLETE","TOKEN_WRITE_REVERTED","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"CANTON_NETWORK_NOT_CONFIGURED","status":422,"message":"No Canton participant network is configured","data":{"id":"DALP-9313","why":"This deployment has no Canton participant network, so the platform cannot allocate a party or submit a DAML command.","fix":"Ask an operator to add a Canton network to the platform configuration, then retry.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_SUBMISSION_FAILED","CUSTODY_CREDENTIALS_UNAVAILABLE","INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"CANTON_SUBMISSION_FAILED","status":500,"message":"Canton command submission failed","data":{"id":"DALP-9318","why":"The platform accepted the command, then submission stopped before the ledger settled it.","fix":"Inspect the submission status, then retry with the same submission id when the failure is retryable.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_ACCESS_SYNC_RESULT_UNAVAILABLE","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_WRITE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.erc20_metadata.PROBE_FAILED","dapi.identity.CLAIM_ISSUE_DEPENDENCY_FAILED","dapi.identity.CLAIM_TOPIC_READ_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Records the named holdings of one account on its account-state contract, as the instrument admin. A snapshot is a checkpoint the account state carries, not a movement: no holding changes and no balance moves. The `party` segment names the account's owner and the body names the state contract and the holdings a read handed back. Send `instrumentAdmin` with the instrument id in the path segment; a request without it is refused.","summary":"Snapshot a Canton account","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"instrumentAdmin":{"$ref":"#/components/schemas/CantonPartyId_23"},"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"cantonPartyId":{"$ref":"#/components/schemas/CantonPartyId"},"ownerParty":{"$ref":"#/components/schemas/CantonPartyId"},"stateContractId":{"type":"string","minLength":1},"holdingContractIds":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["cantonPartyId","ownerParty","stateContractId","holdingContractIds"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/token-issuance-runs":{"post":{"tags":["Token creation"],"operationId":"v2/token/acceptIssuanceRun","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Accepts one reviewed issuance of one or more tokens as a durable run before anything is deployed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IssuanceRunResponse"},"examples":{"example-1":{"value":{"data":{"runId":"01990a4e-7c2b-7d31-9a55-3f0b6c8e2a11","structure":{"id":"northwind-dual-class","revision":3,"instanceId":"01990a4e-7c2b-7d31-9a55-3f0b6c8e2a17"},"members":[{"memberId":"01990a4e-7c2b-7d31-9a55-3f0b6c8e2a12","role":"controlling","label":"Founder class","templateId":"att_northwind_founder_shares","tokenAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"},{"memberId":"01990a4e-7c2b-7d31-9a55-3f0b6c8e2a13","role":"economic","label":"Investor class","templateId":"att_northwind_investor_shares","tokenAddress":null}],"operations":[{"operationId":"01990a4e-7c2b-7d31-9a55-3f0b6c8e2a14","kind":"deploy-member","memberId":"01990a4e-7c2b-7d31-9a55-3f0b6c8e2a12","featureId":null,"featureOperationId":null,"dependsOn":[],"status":"confirmed"},{"operationId":"01990a4e-7c2b-7d31-9a55-3f0b6c8e2a15","kind":"deploy-member","memberId":"01990a4e-7c2b-7d31-9a55-3f0b6c8e2a13","featureId":null,"featureOperationId":null,"dependsOn":[],"status":"submitted"},{"operationId":"01990a4e-7c2b-7d31-9a55-3f0b6c8e2a16","kind":"claim-structure","memberId":"01990a4e-7c2b-7d31-9a55-3f0b6c8e2a12","featureId":null,"featureOperationId":null,"dependsOn":["01990a4e-7c2b-7d31-9a55-3f0b6c8e2a14","01990a4e-7c2b-7d31-9a55-3f0b6c8e2a15"],"status":"accepted"}],"nextOperationId":"01990a4e-7c2b-7d31-9a55-3f0b6c8e2a15"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_TYPE_TEMPLATE_NOT_FOUND","CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"ASSET_TYPE_TEMPLATE_NOT_FOUND","status":404,"message":"Asset type template not found.","data":{"id":"DALP-0091","why":"The platform searched for the asset type template by the supplied ID and found no record owned by your organization or available as a system template.","fix":"Confirm the ID matches an existing template owned by your organization or a published system template. Re-fetch the list of asset type templates to verify the ID before retrying.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_ISSUANCE_RUN_CONFLICT","TOKEN_ISSUANCE_RUN_STRUCTURE_UNPUBLISHED","TOKEN_ISSUANCE_RUN_TEMPLATE_UNPUBLISHED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","TOKEN_ISSUANCE_RUN_DECLARATION_INVALID","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"TOKEN_ISSUANCE_RUN_DECLARATION_INVALID","status":422,"message":"The members and links do not form one complete issuance.","data":{"id":"DALP-12159","why":"The members, structure, templates, or feature links in the request do not form one complete issuance. `data.reason` names the rule the request broke.","fix":"Read `data.reason`. Send every structure member once with its declared template, or declare every link a standalone member needs, then retry.","retryable":false,"category":"client","reason":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_READ_DEPENDENCY_FAILED","TOKEN_WRITE_PERSISTENCE_FAILED","core.database.QUERY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"core.database.QUERY_FAILED","status":503,"message":"The database is temporarily unavailable","data":{"id":"DALP-12148","why":"The platform could not complete a database query required for this request.","fix":"Retry the request. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Accepts one reviewed issuance of one or more tokens as a durable run before anything is deployed. Send the structure and the revision you reviewed, or omit it for a standalone issuance, and for each member either its create input or an existing token of this system. The server reads the structure's members and locked feature links, applies each template's pinned values, and stores the operation graph once. Create each new member with `issuanceRun` naming the run and member; later edits to the structure or templates do not change an accepted run.","summary":"Accept an issuance run","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IssuanceRunAcceptBody"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/token-issuance-runs/{runId}":{"get":{"tags":["Token creation"],"operationId":"v2/token/readIssuanceRun","parameters":[{"name":"runId","in":"path","schema":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid","description":"Run identifier returned when the issuance was accepted."},"required":true}],"responses":{"200":{"description":"Returns one accepted issuance run of the active organization and system: every member with its token address once deployed, every operation with its durable status, and the first operation that is not confirmed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IssuanceRunResponse"},"examples":{"example-1":{"value":{"data":{"runId":"01990a4e-7c2b-7d31-9a55-3f0b6c8e2a11","structure":{"id":"northwind-dual-class","revision":3,"instanceId":"01990a4e-7c2b-7d31-9a55-3f0b6c8e2a17"},"members":[{"memberId":"01990a4e-7c2b-7d31-9a55-3f0b6c8e2a12","role":"controlling","label":"Founder class","templateId":"att_northwind_founder_shares","tokenAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"},{"memberId":"01990a4e-7c2b-7d31-9a55-3f0b6c8e2a13","role":"economic","label":"Investor class","templateId":"att_northwind_investor_shares","tokenAddress":null}],"operations":[{"operationId":"01990a4e-7c2b-7d31-9a55-3f0b6c8e2a14","kind":"deploy-member","memberId":"01990a4e-7c2b-7d31-9a55-3f0b6c8e2a12","featureId":null,"featureOperationId":null,"dependsOn":[],"status":"confirmed"},{"operationId":"01990a4e-7c2b-7d31-9a55-3f0b6c8e2a15","kind":"deploy-member","memberId":"01990a4e-7c2b-7d31-9a55-3f0b6c8e2a13","featureId":null,"featureOperationId":null,"dependsOn":[],"status":"submitted"},{"operationId":"01990a4e-7c2b-7d31-9a55-3f0b6c8e2a16","kind":"claim-structure","memberId":"01990a4e-7c2b-7d31-9a55-3f0b6c8e2a12","featureId":null,"featureOperationId":null,"dependsOn":["01990a4e-7c2b-7d31-9a55-3f0b6c8e2a14","01990a4e-7c2b-7d31-9a55-3f0b6c8e2a15"],"status":"accepted"}],"nextOperationId":"01990a4e-7c2b-7d31-9a55-3f0b6c8e2a15"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_ISSUANCE_RUN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_READ_DEPENDENCY_FAILED","TOKEN_WRITE_PERSISTENCE_FAILED","core.database.QUERY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"core.database.QUERY_FAILED","status":503,"message":"The database is temporarily unavailable","data":{"id":"DALP-12148","why":"The platform could not complete a database query required for this request.","fix":"Retry the request. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one accepted issuance run of the active organization and system: every member with its token address once deployed, every operation with its durable status, and the first operation that is not confirmed. Use it to resume an issuance after the browser was closed. The read is safe to repeat.","summary":"Read an issuance run","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/role-sets":{"post":{"tags":["Token controls"],"operationId":"v2/token/setRoles","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous role-set result (HTTP 200). `data.accounts` are the wallets changed, `data.grant` and `data.revoke` the roles added and removed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenRoleSetMutationResponse"},"examples":{"example-1":{"value":{"data":{"accounts":["0x8ba1f109551bD432803012645Ac136ddd64DBA72"],"grant":["custodian"],"revoke":[]},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"]},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AsyncAcceptedResult"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.assets.TOKEN_ACCESS_ROLE_INVALID","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_TYPE_TEMPLATE_NOT_FOUND","CONTRACT_ERROR","NOT_FOUND","PRICE_RESOLVER_ADDON_NOT_INSTALLED","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"ASSET_TYPE_TEMPLATE_NOT_FOUND","status":404,"message":"Asset type template not found.","data":{"id":"DALP-0091","why":"The platform searched for the asset type template by the supplied ID and found no record owned by your organization or available as a system template.","fix":"Confirm the ID matches an existing template owned by your organization or a published system template. Re-fetch the list of asset type templates to verify the ID before retrying.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","DURABLE_EXECUTION_ENGINE_CALL_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_MUTATION_INSUFFICIENT_BALANCE","dapi.assets.TOKEN_ACCESS_LAST_ADMINISTRATOR","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","ORGANIZATION_SUBMISSION_SIGNER_CLAIM_PURPOSE_MISSING","STRICT_COMPLIANCE_PARAMS_INVALID","SYSTEM_IDENTITY_CLAIM_ISSUE","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_CHAIN_UNAVAILABLE","TOKEN_CLAIM_ISSUE_FAILED","TOKEN_COMPLIANCE_MODULE_BINDING_UNRESOLVED","TOKEN_CREATE_AMBIGUOUS_INTEREST_PROVIDER","TOKEN_CREATE_ASSET_FAMILY_DEPRECATED","TOKEN_CREATE_DUPLICATE","TOKEN_CREATE_RECOVERY_FAILED","TOKEN_FUNDING_PAUSE_FAILED","TOKEN_OPERATION_INPUT_INVALID","TOKEN_PRICE_DENOMINATION_UNUSABLE","TOKEN_PRICE_FEED_FACTORY_MISSING","TOKEN_PRICE_FEED_SIGNER_MISSING","TOKEN_PRICE_INPUT_INVALID","TOKEN_PRICE_UPDATE_FAILED","TOKEN_QUEUE_WRITE_REFUSED","TOKEN_WORKFLOW_FAILED","TOKEN_WRITE_OUTCOME_UNKNOWN","TOKEN_WRITE_RECEIPT_INCOMPLETE","TOKEN_WRITE_REVERTED","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_ACCESS_SYNC_RESULT_UNAVAILABLE","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_WRITE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_PARTICIPANT_UNAVAILABLE","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.erc20_metadata.PROBE_FAILED","dapi.identity.CLAIM_ISSUE_DEPENDENCY_FAILED","dapi.identity.CLAIM_TOPIC_READ_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Grants and revokes token roles for one participant or one wallet as one change on the selected token in the active organization. Name the target by participantId, which covers every wallet of the participant, or by address. The caller needs the token admin role for every role in the request; a refused role answers 403 before any transaction. A smart-account executor applies every call in one user operation, so the change lands whole or not at all. An EOA executor sends the calls in order and undoes the ones that landed when a later call fails. By default the platform queues the change and answers under status 202. Prefer: wait=<seconds> waits for settlement.","summary":"Set token roles","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TokenRoleSetBody"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/transfer-approvals/authority":{"get":{"tags":["Token transfers and supply"],"operationId":"v2/token/transferApprovalAuthority","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true}],"responses":{"200":{"description":"Whether the caller's selected executor is a transfer-approval authority on the token.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TransferApprovalAuthority"},"links":{"$ref":"#/components/schemas/SingleResourceLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"approvalAuthority":true},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/transfer-approvals/authority"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CANTON_TOKEN_OPERATION_REQUEST_INVALID","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_TYPE_TEMPLATE_NOT_FOUND","CANTON_PARTY_WALLET_NOT_FOUND","CONTRACT_ERROR","NOT_FOUND","PRICE_RESOLVER_ADDON_NOT_INSTALLED","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"ASSET_TYPE_TEMPLATE_NOT_FOUND","status":404,"message":"Asset type template not found.","data":{"id":"DALP-0091","why":"The platform searched for the asset type template by the supplied ID and found no record owned by your organization or available as a system template.","fix":"Confirm the ID matches an existing template owned by your organization or a published system template. Re-fetch the list of asset type templates to verify the ID before retrying.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","DURABLE_EXECUTION_ENGINE_CALL_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_MUTATION_INSUFFICIENT_BALANCE","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"410":{"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError410"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_APPROVAL_EXPIRED"]}},"required":["code"]}],"examples":[{"code":"CANTON_APPROVAL_EXPIRED","status":410,"message":"The Canton command's validity window closed","data":{"id":"DALP-9321","why":"The command's validity window closed while the intent waited for approval, so the platform never sent it to the ledger.","fix":"Submit the command again. The expired intent is terminal and its approval is not reopened.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_NETWORK_NOT_CONFIGURED","CANTON_NETWORK_NOT_ENABLED","CONTRACT_ERROR","CUSTODY_CANTON_SIGNING_UNSUPPORTED","OPERATION_FAMILY_UNSUPPORTED","ORGANIZATION_SUBMISSION_SIGNER_CLAIM_PURPOSE_MISSING","STRICT_COMPLIANCE_PARAMS_INVALID","SYSTEM_IDENTITY_CLAIM_ISSUE","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_CHAIN_UNAVAILABLE","TOKEN_CLAIM_ISSUE_FAILED","TOKEN_COMPLIANCE_MODULE_BINDING_UNRESOLVED","TOKEN_CREATE_AMBIGUOUS_INTEREST_PROVIDER","TOKEN_CREATE_ASSET_FAMILY_DEPRECATED","TOKEN_CREATE_DUPLICATE","TOKEN_CREATE_RECOVERY_FAILED","TOKEN_FUNDING_PAUSE_FAILED","TOKEN_OPERATION_INPUT_INVALID","TOKEN_PRICE_DENOMINATION_UNUSABLE","TOKEN_PRICE_FEED_FACTORY_MISSING","TOKEN_PRICE_FEED_SIGNER_MISSING","TOKEN_PRICE_INPUT_INVALID","TOKEN_PRICE_UPDATE_FAILED","TOKEN_QUEUE_WRITE_REFUSED","TOKEN_TRANSFER_APPROVAL_VALIDATION","TOKEN_WORKFLOW_FAILED","TOKEN_WRITE_OUTCOME_UNKNOWN","TOKEN_WRITE_RECEIPT_INCOMPLETE","TOKEN_WRITE_REVERTED","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"CANTON_NETWORK_NOT_CONFIGURED","status":422,"message":"No Canton participant network is configured","data":{"id":"DALP-9313","why":"This deployment has no Canton participant network, so the platform cannot allocate a party or submit a DAML command.","fix":"Ask an operator to add a Canton network to the platform configuration, then retry.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["CANTON_SUBMISSION_FAILED","CUSTODY_CREDENTIALS_UNAVAILABLE","INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"CANTON_SUBMISSION_FAILED","status":500,"message":"Canton command submission failed","data":{"id":"DALP-9318","why":"The platform accepted the command, then submission stopped before the ledger settled it.","fix":"Inspect the submission status, then retry with the same submission id when the failure is retryable.","retryable":false,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_ACCESS_SYNC_RESULT_UNAVAILABLE","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_WRITE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.erc20_metadata.PROBE_FAILED","dapi.identity.CLAIM_ISSUE_DEPENDENCY_FAILED","dapi.identity.CLAIM_TOPIC_READ_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Answers whether the caller's selected executor may approve or revoke transfer approvals on the token: true when the executor wallet's active registered identity in the system is an approval authority of the token's active transfer-approval module. It resolves the executor and applies the check exactly as the approve and revoke writes do, without asking for wallet verification. A token without an active transfer-approval module, or an executor without a registered identity, answers false. Repeating the request is safe.","summary":"Check transfer-approval authority","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/features":{"post":{"tags":["Token features"],"operationId":"v2/token/features/attach","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous mutation result (HTTP 200). The write settled within the request wait window. `data` is the token an EVM write moved, or the Canton operation a Canton write submitted.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenRecord"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","tokenFactory":"0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0","complianceContract":"0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9","identityRegistry":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","type":"bond","createdAt":"2026-03-04T09:12:41.000Z","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"basePrice":"100.00","basePriceCurrencyCode":"EUR","totalSupply":"2500000.00","totalSupplyExact":"2500000000000000000000000","extensions":["ACCESS_MANAGED","BOND","CAPPED","REDEEMABLE"],"implementsERC3643":true,"smartInterface":2,"implementsSMART":true,"pausable":{"paused":false},"collateral":null,"capped":{"cap":"5000000.00","capExact":"5000000000000000000000000"},"createdBy":{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"},"redeemable":{"redeemedAmount":"0","redeemedAmountExact":"0"},"yield":null,"bond":{"faceValue":"100.00","faceValueExact":"100000000000000000000","isMatured":false,"maturityDate":"2029-03-04T00:00:00.000Z","totalRedeemed":"0","totalRedeemedExact":"0","denominationAsset":{"id":"0x5FbDB2315678afecb367f032d93F642f64180aa3","symbol":"EURC","decimals":6}},"fund":null,"complianceModuleConfigs":[],"stats":{"balancesCount":12,"totalValueInBaseCurrency":"250000000.00","totalBurned":"0","totalBurnedExact":"0"}},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"]},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_CREATE_DENOMINATION_ASSET_NOT_ERC20","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","ERC20_METADATA_PROBE_UNAVAILABLE","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.erc20_metadata.PROBE_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Attaches one named feature to the selected token and stores its initial configuration. The token is identified by the `assetId` path segment, and by `instrumentAdmin` as well when it is a Canton instrument. The request body name selects the feature type and supplies that type's configuration. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement. A feature the token already holds returns 409. After settlement, list the token features to read the deployed feature address. On Canton the body carries `instrumentAdmin` and `feature`, and creates that config contract.","summary":"Attach a token feature","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"name":{"type":"string","enum":["fixed-treasury-yield"]},"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"denominationAsset":{"$ref":"#/components/schemas/EvmAddress"},"basisPerUnit":{"type":"string","pattern":"^[0-9]+$"},"treasury":{"$ref":"#/components/schemas/EvmAddress"},"startDate":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2}))?$"}]},"endDate":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2}))?$"}]},"rate":{"type":"integer","minimum":1,"maximum":10000,"description":"Yield rate in basis points of the basis per unit, read according to `rateBasis`: per year when `rateBasis` is `annual`, otherwise paid every payment interval."},"rateBasis":{"$ref":"#/components/schemas/FixedYieldRateBasis"},"interval":{"type":"string","enum":["HOURLY","DAILY","WEEKLY","MONTHLY","QUARTERLY","SEMI_ANNUAL","YEARLY"]}},"required":["name","denominationAsset","basisPerUnit","treasury","startDate","endDate","rate","interval"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","enum":["dividend-yield"]},"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"denominationAsset":{"$ref":"#/components/schemas/EvmAddress"},"treasury":{"$ref":"#/components/schemas/EvmAddress"},"defaultClaimDeadlineDays":{"type":"integer"}},"required":["name","denominationAsset","treasury","defaultClaimDeadlineDays"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","enum":["interest-yield"]},"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"denominationAsset":{"$ref":"#/components/schemas/EvmAddress"},"treasury":{"$ref":"#/components/schemas/EvmAddress"},"annualRateBps":{"type":"integer","minimum":1,"maximum":10000},"startDate":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2}))?$"}]},"daycountConvention":{"type":"string","enum":["continuous","act-360"]}},"required":["name","denominationAsset","treasury","annualRateBps"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","enum":["maturity-redemption"]},"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"maturityDate":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2}))?$"}]},"denominationAsset":{"$ref":"#/components/schemas/EvmAddress"},"treasury":{"$ref":"#/components/schemas/EvmAddress"},"faceValue":{"type":"string","pattern":"^[0-9]+$"}},"required":["name","maturityDate","denominationAsset","treasury","faceValue"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","enum":["permit"]},"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]}},"required":["name"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","enum":["transaction-fee"]},"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"mintFeeBps":{"type":"integer","minimum":0,"maximum":10000},"burnFeeBps":{"type":"integer","minimum":0,"maximum":10000},"transferFeeBps":{"type":"integer","minimum":0,"maximum":10000},"feeRecipient":{"$ref":"#/components/schemas/EvmAddress"}},"required":["name","mintFeeBps","burnFeeBps","transferFeeBps","feeRecipient"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","enum":["external-transaction-fee"]},"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"feeToken":{"$ref":"#/components/schemas/EvmAddress"},"feeRecipient":{"$ref":"#/components/schemas/EvmAddress"},"mintFee":{"type":"string","pattern":"^[0-9]+$"},"burnFee":{"type":"string","pattern":"^[0-9]+$"},"transferFee":{"type":"string","pattern":"^[0-9]+$"}},"required":["name","feeToken","feeRecipient","mintFee","burnFee","transferFee"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","enum":["conversion-minter"]},"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"converters":{"type":"array","items":{"$ref":"#/components/schemas/EvmAddress"}}},"required":["name"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","enum":["aum-fee"]},"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"feeBps":{"type":"integer","minimum":0,"maximum":10000},"feeRecipient":{"$ref":"#/components/schemas/EvmAddress"}},"required":["name","feeBps","feeRecipient"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","enum":["voting-power"]},"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]}},"required":["name"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","enum":["transaction-fee-accounting"]},"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"mintFeeBps":{"type":"integer","minimum":0,"maximum":10000},"burnFeeBps":{"type":"integer","minimum":0,"maximum":10000},"transferFeeBps":{"type":"integer","minimum":0,"maximum":10000},"feeRecipient":{"$ref":"#/components/schemas/EvmAddress"}},"required":["name","mintFeeBps","burnFeeBps","transferFeeBps","feeRecipient"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","enum":["hold"]},"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]}},"required":["name"],"additionalProperties":false}]}}},"required":true},"x-dalp-auth":"session-or-api-key"},"get":{"tags":["Token features"],"operationId":"v2/token/features/list","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"sort","in":"query","schema":{"type":"string"},"required":false},{"name":"page","in":"query","schema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":200},"offset":{"type":"integer","minimum":0}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"filter","in":"query","schema":{"type":"object","properties":{"name":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"name","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true}],"responses":{"200":{"description":"One page of features attached to the selected token. Each row is one feature type with its indexed configuration snapshot.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"name":{"type":"string","enum":["historical-balances"]},"featureAddress":{"$ref":"#/components/schemas/EvmAddress"},"attachedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"config":{"anyOf":[{"type":"object","properties":{"enabledAt":{"type":"string"},"initialTotalSupply":{"anyOf":[{"type":"string"},{"type":"number"}]}},"required":["enabledAt","initialTotalSupply"],"additionalProperties":false},{"type":"null"}]}},"required":["name","featureAddress","attachedAt","config"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","enum":["maturity-redemption"]},"featureAddress":{"$ref":"#/components/schemas/EvmAddress"},"attachedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"config":{"anyOf":[{"type":"object","properties":{"maturityDate":{"type":"string"},"faceValue":{"anyOf":[{"type":"string"},{"type":"number"}]},"denominationAsset":{"$ref":"#/components/schemas/EvmAddress"},"treasury":{"$ref":"#/components/schemas/EvmAddress"},"isMatured":{"type":"boolean"},"maturedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"totalRedeemed":{"anyOf":[{"type":"string"},{"type":"number"}]}},"required":["maturityDate","faceValue","denominationAsset","treasury","isMatured","maturedAt","totalRedeemed"],"additionalProperties":false},{"type":"null"}]}},"required":["name","featureAddress","attachedAt","config"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","enum":["fixed-treasury-yield"]},"featureAddress":{"$ref":"#/components/schemas/EvmAddress"},"attachedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"config":{"anyOf":[{"type":"object","properties":{"startDate":{"type":"string"},"endDate":{"type":"string"},"rate":{"type":"number"},"interval":{"type":"string"},"denominationAsset":{"$ref":"#/components/schemas/EvmAddress"},"treasury":{"$ref":"#/components/schemas/EvmAddress"},"totalYield":{"anyOf":[{"type":"string"},{"type":"number"}]},"totalClaimed":{"anyOf":[{"type":"string"},{"type":"number"}]},"totalUnclaimedYield":{"anyOf":[{"type":"string"},{"type":"number"}]},"currentPeriod":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}-period-\\d+$"},"startDate":{"type":"string"},"endDate":{"type":"string"},"totalClaimed":{"anyOf":[{"type":"string"},{"type":"number"}]},"totalUnclaimedYield":{"anyOf":[{"type":"string"},{"type":"number"}]},"totalYield":{"anyOf":[{"type":"string"},{"type":"number"}]},"completed":{"type":"boolean"}},"required":["id","startDate","endDate","totalClaimed","totalUnclaimedYield","totalYield","completed"],"additionalProperties":false},{"type":"null"}]},"nextPeriod":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}-period-\\d+$"},"startDate":{"type":"string"},"endDate":{"type":"string"},"totalClaimed":{"anyOf":[{"type":"string"},{"type":"number"}]},"totalUnclaimedYield":{"anyOf":[{"type":"string"},{"type":"number"}]},"totalYield":{"anyOf":[{"type":"string"},{"type":"number"}]},"completed":{"type":"boolean"}},"required":["id","startDate","endDate","totalClaimed","totalUnclaimedYield","totalYield","completed"],"additionalProperties":false},{"type":"null"}]},"periods":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}-period-\\d+$"},"startDate":{"type":"string"},"endDate":{"type":"string"},"totalClaimed":{"anyOf":[{"type":"string"},{"type":"number"}]},"totalUnclaimedYield":{"anyOf":[{"type":"string"},{"type":"number"}]},"totalYield":{"anyOf":[{"type":"string"},{"type":"number"}]},"completed":{"type":"boolean"}},"required":["id","startDate","endDate","totalClaimed","totalUnclaimedYield","totalYield","completed"],"additionalProperties":false}}},"required":["startDate","endDate","rate","interval","denominationAsset","treasury","totalYield","totalClaimed","totalUnclaimedYield","currentPeriod","nextPeriod","periods"],"additionalProperties":false},{"type":"null"}]}},"required":["name","featureAddress","attachedAt","config"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","enum":["dividend-yield"]},"featureAddress":{"$ref":"#/components/schemas/EvmAddress"},"attachedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"config":{"anyOf":[{"type":"object","properties":{"denominationAsset":{"$ref":"#/components/schemas/EvmAddress"},"treasury":{"$ref":"#/components/schemas/EvmAddress"},"defaultClaimDeadlineDays":{"type":"integer"},"totalClaimed":{"anyOf":[{"type":"string"},{"type":"number"}]}},"required":["denominationAsset","treasury","defaultClaimDeadlineDays","totalClaimed"],"additionalProperties":false},{"type":"null"}]}},"required":["name","featureAddress","attachedAt","config"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","enum":["interest-yield"]},"featureAddress":{"$ref":"#/components/schemas/EvmAddress"},"attachedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"config":{"anyOf":[{"type":"object","properties":{"denominationAsset":{"$ref":"#/components/schemas/EvmAddress"},"treasury":{"$ref":"#/components/schemas/EvmAddress"},"annualRateBps":{"type":"integer","minimum":0,"maximum":10000},"startDate":{"type":"string"},"globalIndex":{"anyOf":[{"type":"string"},{"type":"number"}]},"daycountConvention":{"type":"string"},"totalClaimed":{"anyOf":[{"type":"string"},{"type":"number"}]}},"required":["denominationAsset","treasury","annualRateBps","globalIndex","daycountConvention","totalClaimed"],"additionalProperties":false},{"type":"null"}]}},"required":["name","featureAddress","attachedAt","config"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","enum":["voting-power"]},"featureAddress":{"$ref":"#/components/schemas/EvmAddress"},"attachedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"config":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}]}},"required":["name","featureAddress","attachedAt","config"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","enum":["aum-fee"]},"featureAddress":{"$ref":"#/components/schemas/EvmAddress"},"attachedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"config":{"anyOf":[{"type":"object","properties":{"feeBps":{"type":"integer","minimum":0,"maximum":10000},"feeRecipient":{"$ref":"#/components/schemas/EvmAddress"},"isFrozen":{"type":"boolean"},"lastCollectionTime":{"type":"string"},"totalCollected":{"anyOf":[{"type":"string"},{"type":"number"}]}},"required":["feeBps","feeRecipient","isFrozen","lastCollectionTime","totalCollected"],"additionalProperties":false},{"type":"null"}]}},"required":["name","featureAddress","attachedAt","config"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","enum":["transaction-fee"]},"featureAddress":{"$ref":"#/components/schemas/EvmAddress"},"attachedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"config":{"anyOf":[{"type":"object","properties":{"mintFeeBps":{"type":"integer","minimum":0,"maximum":10000},"burnFeeBps":{"type":"integer","minimum":0,"maximum":10000},"transferFeeBps":{"type":"integer","minimum":0,"maximum":10000},"feeRecipient":{"$ref":"#/components/schemas/EvmAddress"},"isFrozen":{"type":"boolean"},"totalFeesCollected":{"anyOf":[{"type":"string"},{"type":"number"}]}},"required":["mintFeeBps","burnFeeBps","transferFeeBps","feeRecipient","isFrozen","totalFeesCollected"],"additionalProperties":false},{"type":"null"}]}},"required":["name","featureAddress","attachedAt","config"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","enum":["transaction-fee-accounting"]},"featureAddress":{"$ref":"#/components/schemas/EvmAddress"},"attachedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"config":{"anyOf":[{"type":"object","properties":{"mintFeeBps":{"type":"integer","minimum":0,"maximum":10000},"burnFeeBps":{"type":"integer","minimum":0,"maximum":10000},"transferFeeBps":{"type":"integer","minimum":0,"maximum":10000},"feeRecipient":{"$ref":"#/components/schemas/EvmAddress"},"isFrozen":{"type":"boolean"},"totalAccruedFees":{"anyOf":[{"type":"string"},{"type":"number"}]},"totalReconciledFees":{"anyOf":[{"type":"string"},{"type":"number"}]}},"required":["mintFeeBps","burnFeeBps","transferFeeBps","feeRecipient","isFrozen","totalAccruedFees","totalReconciledFees"],"additionalProperties":false},{"type":"null"}]}},"required":["name","featureAddress","attachedAt","config"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","enum":["external-transaction-fee"]},"featureAddress":{"$ref":"#/components/schemas/EvmAddress"},"attachedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"config":{"anyOf":[{"type":"object","properties":{"feeToken":{"$ref":"#/components/schemas/EvmAddress"},"mintFee":{"anyOf":[{"type":"string"},{"type":"number"}]},"burnFee":{"anyOf":[{"type":"string"},{"type":"number"}]},"transferFee":{"anyOf":[{"type":"string"},{"type":"number"}]},"feeRecipient":{"$ref":"#/components/schemas/EvmAddress"},"isFrozen":{"type":"boolean"},"totalFeesCollected":{"anyOf":[{"type":"string"},{"type":"number"}]}},"required":["feeToken","mintFee","burnFee","transferFee","feeRecipient","isFrozen","totalFeesCollected"],"additionalProperties":false},{"type":"null"}]}},"required":["name","featureAddress","attachedAt","config"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","enum":["conversion"]},"featureAddress":{"$ref":"#/components/schemas/EvmAddress"},"attachedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"config":{"anyOf":[{"type":"object","properties":{"targetToken":{"$ref":"#/components/schemas/EvmAddress"},"conversionMinter":{"$ref":"#/components/schemas/EvmAddress"},"denominationAsset":{"$ref":"#/components/schemas/EvmAddress"},"discountBps":{"type":"integer","minimum":0,"maximum":9999},"partialAllowed":{"type":"boolean"},"debtMethod":{"type":"string","enum":["burn","lock","mark-converted"]}},"required":["targetToken","conversionMinter","denominationAsset","discountBps","partialAllowed"],"additionalProperties":false},{"type":"null"}]}},"required":["name","featureAddress","attachedAt","config"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","enum":["conversion-minter"]},"featureAddress":{"$ref":"#/components/schemas/EvmAddress"},"attachedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"config":{"anyOf":[{"type":"object","properties":{"authorizedConverters":{"type":"array","items":{"$ref":"#/components/schemas/EvmAddress"}},"totalIssuances":{"type":"integer"},"totalAmountMinted":{"anyOf":[{"type":"string"},{"type":"number"}]}},"required":["authorizedConverters","totalIssuances","totalAmountMinted"],"additionalProperties":false},{"type":"null"}]}},"required":["name","featureAddress","attachedAt","config"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","enum":["permit"]},"featureAddress":{"$ref":"#/components/schemas/EvmAddress"},"attachedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"config":{"anyOf":[{"type":"object","properties":{"typeId":{"type":"string","enum":["permit"]},"featureFactory":{"type":"object","properties":{"typeId":{"type":"string"},"name":{"type":"string"}},"required":["typeId","name"],"additionalProperties":false},"attachedAt":{"type":"string"}},"required":["typeId","featureFactory","attachedAt"],"additionalProperties":false},{"type":"null"}]}},"required":["name","featureAddress","attachedAt","config"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","enum":["hold"]},"featureAddress":{"$ref":"#/components/schemas/EvmAddress"},"attachedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"config":{"anyOf":[{"type":"object","properties":{"reservers":{"type":"array","items":{"type":"object","properties":{"reserver":{"$ref":"#/components/schemas/EvmAddress"},"holdLifetimeSeconds":{"type":"integer","minimum":0}},"required":["reserver","holdLifetimeSeconds"],"additionalProperties":false}}},"required":["reservers"],"additionalProperties":false},{"type":"null"}]}},"required":["name","featureAddress","attachedAt","config"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","enum":["distribution-waterfall"]},"featureAddress":{"$ref":"#/components/schemas/EvmAddress"},"attachedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"config":{"anyOf":[{"type":"object","properties":{"denominationAsset":{"$ref":"#/components/schemas/EvmAddress"},"classes":{"type":"array","items":{"type":"object","properties":{"role":{"type":"string"},"token":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"contributionBasis":{"anyOf":[{"type":"string"},{"type":"number"}]},"ordinaryRank":{"type":"integer","minimum":0},"returnedCapital":{"anyOf":[{"type":"string"},{"type":"number"}]},"available":{"anyOf":[{"type":"string"},{"type":"number"}]}},"required":["role","token","contributionBasis","ordinaryRank","returnedCapital","available"],"additionalProperties":false}},"priorityRows":{"type":"array","items":{"type":"object","properties":{"determinationKind":{"$ref":"#/components/schemas/EthereumHashEncoded"},"ranks":{"type":"array","items":{"type":"integer","minimum":0}}},"required":["determinationKind","ranks"],"additionalProperties":false}},"distributionCount":{"type":"integer","minimum":0}},"required":["denominationAsset","classes","priorityRows","distributionCount"],"additionalProperties":false},{"type":"null"}]}},"required":["name","featureAddress","attachedAt","config"],"additionalProperties":false}]}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0},"facets":{"type":"object","additionalProperties":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"count":{"type":"integer","minimum":0}},"required":["value","count"],"additionalProperties":false}}}},"required":["total"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"},"first":{"type":"string"},"prev":{"anyOf":[{"type":"string"},{"type":"null"}]},"next":{"anyOf":[{"type":"string"},{"type":"null"}]},"last":{"type":"string"}},"required":["self","first","prev","next","last"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"name":"aum-fee","featureAddress":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","attachedAt":"2026-03-04T09:12:41.000Z","config":{"feeBps":200,"feeRecipient":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30","isFrozen":false,"lastCollectionTime":"2026-03-04T09:12:41.000Z","totalCollected":"1250.50"}}],"meta":{"total":1},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/features","first":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/features","prev":null,"next":null,"last":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/features"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","TOKEN_ACCESS_INTERFACE_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"TOKEN_ACCESS_INTERFACE_UNSUPPORTED","status":422,"message":"The token exposes neither ERC-3643 nor the supported SMART access-control interface.","data":{"id":"DALP-12025","why":"The platform reads the indexed token interface before it resolves roles; this token reports neither interface, so no role check can run. `data.tokenAddress` names the token.","fix":"Use a token that implements ERC-3643 or the supported SMART access-control interface, or correct the indexed token interface metadata, then retry.","retryable":false,"category":"domain","tokenAddress":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of features currently attached to the selected token. Each row names the feature and includes its indexed configuration snapshot, the deployed feature address, and the attach time. The token is identified by the `assetId` path segment, which must be a contract address. The list is indexed and idempotent. Filter or sort by name. A token holds at most one instance of each feature type, so a default page usually contains the full set. Use a row to choose a later feature read or write. This read serves the EVM family only: a Canton-scoped request is refused with `OperationFamilyUnsupportedError` (422) naming the operation, before any EVM repository runs.","summary":"List token features","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/features/{name}":{"delete":{"tags":["Token features"],"operationId":"v2/token/features/detach","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"name","in":"path","schema":{"type":"string","enum":["fixed-treasury-yield","dividend-yield","interest-yield","maturity-redemption","permit","transaction-fee","external-transaction-fee","conversion-minter","aum-fee","voting-power","transaction-fee-accounting","historical-balances","conversion","hold"]},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled token after the feature write completed within the wait window. data is the indexed token. meta.txHashes are the submitted transactions. links.self is the token URL.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenRecord"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","tokenFactory":"0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0","complianceContract":"0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9","identityRegistry":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","type":"bond","createdAt":"2026-03-04T09:12:41.000Z","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"basePrice":"100.00","basePriceCurrencyCode":"EUR","totalSupply":"2500000.00","totalSupplyExact":"2500000000000000000000000","extensions":["ACCESS_MANAGED","BOND","CAPPED","REDEEMABLE"],"implementsERC3643":true,"smartInterface":2,"implementsSMART":true,"pausable":{"paused":false},"collateral":null,"capped":{"cap":"5000000.00","capExact":"5000000000000000000000000"},"createdBy":{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"},"redeemable":{"redeemedAmount":"0","redeemedAmountExact":"0"},"yield":null,"bond":{"faceValue":"100.00","faceValueExact":"100000000000000000000","isMatured":false,"maturityDate":"2029-03-04T00:00:00.000Z","totalRedeemed":"0","totalRedeemedExact":"0","denominationAsset":{"id":"0x5FbDB2315678afecb367f032d93F642f64180aa3","symbol":"EURC","decimals":6}},"fund":null,"complianceModuleConfigs":[],"stats":{"balancesCount":12,"totalValueInBaseCurrency":"250000000.00","totalBurned":"0","totalBurnedExact":"0"}},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"]},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CUSTODY_ACCOUNT_SELECTION_INVALID","GOVERNANCE_DETACH_BLOCKED","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DETACH_BLOCKED_BY_DEPENDENTS","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Detaches the named feature from the selected token. The path name must match an attached feature. Conversion features with a pending interest backlog, or a closed conversion window, return 409. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement. After settlement, list the token features to confirm the feature is gone.","summary":"Detach a token feature","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"name":{"type":"string","enum":["fixed-treasury-yield"]},"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]}},"required":["name"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","enum":["dividend-yield"]},"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]}},"required":["name"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","enum":["interest-yield"]},"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]}},"required":["name"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","enum":["maturity-redemption"]},"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]}},"required":["name"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","enum":["permit"]},"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]}},"required":["name"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","enum":["transaction-fee"]},"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]}},"required":["name"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","enum":["external-transaction-fee"]},"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]}},"required":["name"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","enum":["conversion-minter"]},"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]}},"required":["name"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","enum":["aum-fee"]},"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]}},"required":["name"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","enum":["voting-power"]},"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]}},"required":["name"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","enum":["transaction-fee-accounting"]},"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]}},"required":["name"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","enum":["hold"]},"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]}},"required":["name"],"additionalProperties":false}]}}},"required":true},"x-dalp-auth":"session-or-api-key"},"put":{"tags":["Token features"],"operationId":"v2/token/features/rotate","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"name","in":"path","schema":{"type":"string","enum":["fixed-treasury-yield","dividend-yield","interest-yield","maturity-redemption","permit","transaction-fee","external-transaction-fee","conversion-minter","aum-fee","voting-power","transaction-fee-accounting","historical-balances","conversion","hold"]},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled token after the feature write completed within the wait window. data is the indexed token. meta.txHashes are the submitted transactions. links.self is the token URL.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenRecord"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","tokenFactory":"0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0","complianceContract":"0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9","identityRegistry":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","type":"bond","createdAt":"2026-03-04T09:12:41.000Z","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"basePrice":"100.00","basePriceCurrencyCode":"EUR","totalSupply":"2500000.00","totalSupplyExact":"2500000000000000000000000","extensions":["ACCESS_MANAGED","BOND","CAPPED","REDEEMABLE"],"implementsERC3643":true,"smartInterface":2,"implementsSMART":true,"pausable":{"paused":false},"collateral":null,"capped":{"cap":"5000000.00","capExact":"5000000000000000000000000"},"createdBy":{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"},"redeemable":{"redeemedAmount":"0","redeemedAmountExact":"0"},"yield":null,"bond":{"faceValue":"100.00","faceValueExact":"100000000000000000000","isMatured":false,"maturityDate":"2029-03-04T00:00:00.000Z","totalRedeemed":"0","totalRedeemedExact":"0","denominationAsset":{"id":"0x5FbDB2315678afecb367f032d93F642f64180aa3","symbol":"EURC","decimals":6}},"fund":null,"complianceModuleConfigs":[],"stats":{"balancesCount":12,"totalValueInBaseCurrency":"250000000.00","totalBurned":"0","totalBurnedExact":"0"}},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"]},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CUSTODY_ACCOUNT_SELECTION_INVALID","GOVERNANCE_DETACH_BLOCKED","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_CREATE_DENOMINATION_ASSET_NOT_ERC20","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","ERC20_METADATA_PROBE_UNAVAILABLE","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.erc20_metadata.PROBE_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Replaces the named feature instance with a new deployment that uses the supplied configuration. The path name must match the body name. Conversion features with a pending interest backlog, or a closed conversion window, return 409. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement. After settlement, list the token features to read the new feature address.","summary":"Rotate a token feature","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"name":{"type":"string","enum":["fixed-treasury-yield"]},"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"denominationAsset":{"$ref":"#/components/schemas/EvmAddress"},"basisPerUnit":{"type":"string","pattern":"^[0-9]+$"},"treasury":{"$ref":"#/components/schemas/EvmAddress"},"startDate":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2}))?$"}]},"endDate":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2}))?$"}]},"rate":{"type":"integer","minimum":1,"maximum":10000,"description":"Yield rate in basis points of the basis per unit, read according to `rateBasis`: per year when `rateBasis` is `annual`, otherwise paid every payment interval."},"rateBasis":{"$ref":"#/components/schemas/FixedYieldRateBasis"},"interval":{"type":"string","enum":["HOURLY","DAILY","WEEKLY","MONTHLY","QUARTERLY","SEMI_ANNUAL","YEARLY"]}},"required":["name","denominationAsset","basisPerUnit","treasury","startDate","endDate","rate","interval"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","enum":["dividend-yield"]},"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"denominationAsset":{"$ref":"#/components/schemas/EvmAddress"},"treasury":{"$ref":"#/components/schemas/EvmAddress"},"defaultClaimDeadlineDays":{"type":"integer"}},"required":["name","denominationAsset","treasury","defaultClaimDeadlineDays"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","enum":["interest-yield"]},"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"denominationAsset":{"$ref":"#/components/schemas/EvmAddress"},"treasury":{"$ref":"#/components/schemas/EvmAddress"},"annualRateBps":{"type":"integer","minimum":1,"maximum":10000},"startDate":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2}))?$"}]},"daycountConvention":{"type":"string","enum":["continuous","act-360"]}},"required":["name","denominationAsset","treasury","annualRateBps"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","enum":["maturity-redemption"]},"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"maturityDate":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2}))?$"}]},"denominationAsset":{"$ref":"#/components/schemas/EvmAddress"},"treasury":{"$ref":"#/components/schemas/EvmAddress"},"faceValue":{"type":"string","pattern":"^[0-9]+$"}},"required":["name","maturityDate","denominationAsset","treasury","faceValue"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","enum":["permit"]},"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]}},"required":["name"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","enum":["transaction-fee"]},"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"mintFeeBps":{"type":"integer","minimum":0,"maximum":10000},"burnFeeBps":{"type":"integer","minimum":0,"maximum":10000},"transferFeeBps":{"type":"integer","minimum":0,"maximum":10000},"feeRecipient":{"$ref":"#/components/schemas/EvmAddress"}},"required":["name","mintFeeBps","burnFeeBps","transferFeeBps","feeRecipient"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","enum":["external-transaction-fee"]},"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"feeToken":{"$ref":"#/components/schemas/EvmAddress"},"feeRecipient":{"$ref":"#/components/schemas/EvmAddress"},"mintFee":{"type":"string","pattern":"^[0-9]+$"},"burnFee":{"type":"string","pattern":"^[0-9]+$"},"transferFee":{"type":"string","pattern":"^[0-9]+$"}},"required":["name","feeToken","feeRecipient","mintFee","burnFee","transferFee"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","enum":["conversion-minter"]},"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"converters":{"type":"array","items":{"$ref":"#/components/schemas/EvmAddress"}}},"required":["name"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","enum":["aum-fee"]},"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"feeBps":{"type":"integer","minimum":0,"maximum":10000},"feeRecipient":{"$ref":"#/components/schemas/EvmAddress"}},"required":["name","feeBps","feeRecipient"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","enum":["voting-power"]},"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]}},"required":["name"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","enum":["transaction-fee-accounting"]},"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"mintFeeBps":{"type":"integer","minimum":0,"maximum":10000},"burnFeeBps":{"type":"integer","minimum":0,"maximum":10000},"transferFeeBps":{"type":"integer","minimum":0,"maximum":10000},"feeRecipient":{"$ref":"#/components/schemas/EvmAddress"}},"required":["name","mintFeeBps","burnFeeBps","transferFeeBps","feeRecipient"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","enum":["hold"]},"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]}},"required":["name"],"additionalProperties":false}]}}},"required":true},"x-dalp-auth":"session-or-api-key"},"patch":{"tags":["Token features"],"operationId":"v2/token/features/update","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"name","in":"path","schema":{"type":"string","enum":["transaction-fee","transaction-fee-accounting","aum-fee","external-transaction-fee","fixed-treasury-yield","maturity-redemption","interest-yield","conversion-minter"]},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled token after the feature write completed within the wait window. data is the indexed token. meta.txHashes are the submitted transactions. links.self is the token URL.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenRecord"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","tokenFactory":"0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0","complianceContract":"0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9","identityRegistry":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","type":"bond","createdAt":"2026-03-04T09:12:41.000Z","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"basePrice":"100.00","basePriceCurrencyCode":"EUR","totalSupply":"2500000.00","totalSupplyExact":"2500000000000000000000000","extensions":["ACCESS_MANAGED","BOND","CAPPED","REDEEMABLE"],"implementsERC3643":true,"smartInterface":2,"implementsSMART":true,"pausable":{"paused":false},"collateral":null,"capped":{"cap":"5000000.00","capExact":"5000000000000000000000000"},"createdBy":{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"},"redeemable":{"redeemedAmount":"0","redeemedAmountExact":"0"},"yield":null,"bond":{"faceValue":"100.00","faceValueExact":"100000000000000000000","isMatured":false,"maturityDate":"2029-03-04T00:00:00.000Z","totalRedeemed":"0","totalRedeemedExact":"0","denominationAsset":{"id":"0x5FbDB2315678afecb367f032d93F642f64180aa3","symbol":"EURC","decimals":6}},"fund":null,"complianceModuleConfigs":[],"stats":{"balancesCount":12,"totalValueInBaseCurrency":"250000000.00","totalBurned":"0","totalBurnedExact":"0"}},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"]},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","TOKEN_FEATURES_NO_YIELD_AVAILABLE_CLAIM_FIRST_PERIOD_NOT_COMPLETED_YET","TOKEN_FEATURES_NO_YIELD_AVAILABLE_FOR_HOLDER","TOKEN_FEATURES_YIELD_FULLY_CONSUMED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","TREASURY_WALLET_MISMATCH","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_ADDON_FACTORY_NOT_FOUND_INDEXER","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CUSTODY_ACCOUNT_SELECTION_INVALID","MATURITY_INSUFFICIENT_ALLOWANCE","MATURITY_NOT_MATURED","MATURITY_REDEMPTION_UNAVAILABLE","MATURITY_TREASURY_WALLET_MISMATCH","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS","TOKEN_FEE_RATES_FROZEN"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","FINANCIAL_YIELD_OPERATION_REJECTED","MATURITY_STATE_NOT_INDEXED","MATURITY_TREASURY_UNCLASSIFIED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_FIXED_TREASURY_YIELD_FEATURE_STATE_NOT_YET_INDEXED_INDEXER_PROCESSED_INITIA","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Changes the settings of one attached feature. The path name must match the body name, and the body carries only the settings that change. When several settings change, the platform submits one chained request that applies them in a fixed order: fee token, then rates or amounts, then recipient. The chain is not atomic: if a later step fails, earlier steps stay applied and the transaction status names the step that failed. Frozen rates cannot change. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement. After settlement, list the token features to read the new settings.","summary":"Update a token feature's settings","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"name":{"type":"string","enum":["transaction-fee"]},"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"rates":{"type":"object","properties":{"mintFeeBps":{"type":"integer","minimum":0,"maximum":10000},"burnFeeBps":{"type":"integer","minimum":0,"maximum":10000},"transferFeeBps":{"type":"integer","minimum":0,"maximum":10000}},"required":["mintFeeBps","burnFeeBps","transferFeeBps"],"additionalProperties":false},"feeRecipient":{"$ref":"#/components/schemas/EvmAddress"}},"required":["name"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","enum":["transaction-fee-accounting"]},"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"rates":{"type":"object","properties":{"mintFeeBps":{"type":"integer","minimum":0,"maximum":10000},"burnFeeBps":{"type":"integer","minimum":0,"maximum":10000},"transferFeeBps":{"type":"integer","minimum":0,"maximum":10000}},"required":["mintFeeBps","burnFeeBps","transferFeeBps"],"additionalProperties":false},"feeRecipient":{"$ref":"#/components/schemas/EvmAddress"}},"required":["name"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","enum":["aum-fee"]},"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"feeBps":{"type":"integer","minimum":0,"maximum":10000},"feeRecipient":{"$ref":"#/components/schemas/EvmAddress"}},"required":["name"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","enum":["external-transaction-fee"]},"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"feeToken":{"$ref":"#/components/schemas/EvmAddress"},"amounts":{"type":"object","properties":{"mintFee":{"type":"string","pattern":"^[0-9]+$"},"burnFee":{"type":"string","pattern":"^[0-9]+$"},"transferFee":{"type":"string","pattern":"^[0-9]+$"}},"required":["mintFee","burnFee","transferFee"],"additionalProperties":false},"feeRecipient":{"$ref":"#/components/schemas/EvmAddress"}},"required":["name"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","enum":["fixed-treasury-yield"]},"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"treasury":{"$ref":"#/components/schemas/EvmAddress"}},"required":["name","treasury"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","enum":["maturity-redemption"]},"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"treasury":{"$ref":"#/components/schemas/EvmAddress"}},"required":["name","treasury"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","enum":["interest-yield"]},"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"annualRateBps":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"integer","minimum":1,"maximum":20000}]}},"required":["name","annualRateBps"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","enum":["conversion-minter"]},"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"start":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"number","minimum":0},{"type":"string"}]},"end":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"number","minimum":0},{"type":"string"}]}},"required":["name","start","end"],"additionalProperties":false}]}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/maturations":{"post":{"tags":["Token lifecycle"],"operationId":"v2/token/mature","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous mutation result (HTTP 200). The write settled within the request wait window. `data` is the token an EVM write moved, or the Canton operation a Canton write submitted.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenRecord"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","tokenFactory":"0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0","complianceContract":"0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9","identityRegistry":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","type":"bond","createdAt":"2026-03-04T09:12:41.000Z","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"basePrice":"100.00","basePriceCurrencyCode":"EUR","totalSupply":"2500000.00","totalSupplyExact":"2500000000000000000000000","extensions":["ACCESS_MANAGED","BOND","CAPPED","REDEEMABLE"],"implementsERC3643":true,"smartInterface":2,"implementsSMART":true,"pausable":{"paused":false},"collateral":null,"capped":{"cap":"5000000.00","capExact":"5000000000000000000000000"},"createdBy":{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"},"redeemable":{"redeemedAmount":"0","redeemedAmountExact":"0"},"yield":null,"bond":{"faceValue":"100.00","faceValueExact":"100000000000000000000","isMatured":false,"maturityDate":"2029-03-04T00:00:00.000Z","totalRedeemed":"0","totalRedeemedExact":"0","denominationAsset":{"id":"0x5FbDB2315678afecb367f032d93F642f64180aa3","symbol":"EURC","decimals":6}},"fund":null,"complianceModuleConfigs":[],"stats":{"balancesCount":12,"totalValueInBaseCurrency":"250000000.00","totalBurned":"0","totalBurnedExact":"0"}},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"]},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_TYPE_TEMPLATE_NOT_FOUND","CONTRACT_ERROR","NOT_FOUND","PRICE_RESOLVER_ADDON_NOT_INSTALLED","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"ASSET_TYPE_TEMPLATE_NOT_FOUND","status":404,"message":"Asset type template not found.","data":{"id":"DALP-0091","why":"The platform searched for the asset type template by the supplied ID and found no record owned by your organization or available as a system template.","fix":"Confirm the ID matches an existing template owned by your organization or a published system template. Re-fetch the list of asset type templates to verify the ID before retrying.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","DURABLE_EXECUTION_ENGINE_CALL_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_MUTATION_INSUFFICIENT_BALANCE","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","ORGANIZATION_SUBMISSION_SIGNER_CLAIM_PURPOSE_MISSING","STRICT_COMPLIANCE_PARAMS_INVALID","SYSTEM_IDENTITY_CLAIM_ISSUE","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_CHAIN_UNAVAILABLE","TOKEN_CLAIM_ISSUE_FAILED","TOKEN_COMPLIANCE_MODULE_BINDING_UNRESOLVED","TOKEN_CREATE_AMBIGUOUS_INTEREST_PROVIDER","TOKEN_CREATE_ASSET_FAMILY_DEPRECATED","TOKEN_CREATE_DUPLICATE","TOKEN_CREATE_RECOVERY_FAILED","TOKEN_FUNDING_PAUSE_FAILED","TOKEN_LIFECYCLE_VALIDATION_FAILED","TOKEN_OPERATION_INPUT_INVALID","TOKEN_PRICE_DENOMINATION_UNUSABLE","TOKEN_PRICE_FEED_FACTORY_MISSING","TOKEN_PRICE_FEED_SIGNER_MISSING","TOKEN_PRICE_INPUT_INVALID","TOKEN_PRICE_UPDATE_FAILED","TOKEN_QUEUE_WRITE_REFUSED","TOKEN_WORKFLOW_FAILED","TOKEN_WRITE_OUTCOME_UNKNOWN","TOKEN_WRITE_RECEIPT_INCOMPLETE","TOKEN_WRITE_REVERTED","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_ACCESS_SYNC_RESULT_UNAVAILABLE","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_WRITE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.identity.CLAIM_ISSUE_DEPENDENCY_FAILED","dapi.identity.CLAIM_TOPIC_READ_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Marks a legacy bond as matured so holders can redeem the selected token in the active organization. The token must already be eligible to mature. The platform checks the indexed token first, then submits a live chain transaction. By default the platform queues the transaction and answers under status 202. Prefer: wait=<seconds> waits for settlement. A Canton body runs `MaturityConfig_Mature` against the `MaturityConfig` contract named by `maturityConfigContractId`.","summary":"Mature a legacy bond token","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]}},"additionalProperties":false}}},"required":false},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/redemptions":{"post":{"tags":["Token lifecycle"],"operationId":"v2/token/redeem","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous mutation result (HTTP 200). The write settled within the request wait window. `data` is the resulting token, `meta.txHashes` lists submitted transactions, and `links.self` is the token URL.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenRecord"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","tokenFactory":"0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0","complianceContract":"0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9","identityRegistry":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","type":"bond","createdAt":"2026-03-04T09:12:41.000Z","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"basePrice":"100.00","basePriceCurrencyCode":"EUR","totalSupply":"2500000.00","totalSupplyExact":"2500000000000000000000000","extensions":["ACCESS_MANAGED","BOND","CAPPED","REDEEMABLE"],"implementsERC3643":true,"smartInterface":2,"implementsSMART":true,"pausable":{"paused":false},"collateral":null,"capped":{"cap":"5000000.00","capExact":"5000000000000000000000000"},"createdBy":{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"},"redeemable":{"redeemedAmount":"0","redeemedAmountExact":"0"},"yield":null,"bond":{"faceValue":"100.00","faceValueExact":"100000000000000000000","isMatured":false,"maturityDate":"2029-03-04T00:00:00.000Z","totalRedeemed":"0","totalRedeemedExact":"0","denominationAsset":{"id":"0x5FbDB2315678afecb367f032d93F642f64180aa3","symbol":"EURC","decimals":6}},"fund":null,"complianceModuleConfigs":[],"stats":{"balancesCount":12,"totalValueInBaseCurrency":"250000000.00","totalBurned":"0","totalBurnedExact":"0"}},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"]},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","TOKEN_LIFECYCLE_CUSTODIAN_REQUIRED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_TYPE_TEMPLATE_NOT_FOUND","CONTRACT_ERROR","NOT_FOUND","PRICE_RESOLVER_ADDON_NOT_INSTALLED","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"ASSET_TYPE_TEMPLATE_NOT_FOUND","status":404,"message":"Asset type template not found.","data":{"id":"DALP-0091","why":"The platform searched for the asset type template by the supplied ID and found no record owned by your organization or available as a system template.","fix":"Confirm the ID matches an existing template owned by your organization or a published system template. Re-fetch the list of asset type templates to verify the ID before retrying.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","DURABLE_EXECUTION_ENGINE_CALL_CONFLICT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_MUTATION_INSUFFICIENT_BALANCE","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","ORGANIZATION_SUBMISSION_SIGNER_CLAIM_PURPOSE_MISSING","STRICT_COMPLIANCE_PARAMS_INVALID","SYSTEM_IDENTITY_CLAIM_ISSUE","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_CHAIN_UNAVAILABLE","TOKEN_CLAIM_ISSUE_FAILED","TOKEN_COMPLIANCE_MODULE_BINDING_UNRESOLVED","TOKEN_CREATE_AMBIGUOUS_INTEREST_PROVIDER","TOKEN_CREATE_ASSET_FAMILY_DEPRECATED","TOKEN_CREATE_DUPLICATE","TOKEN_CREATE_RECOVERY_FAILED","TOKEN_FUNDING_PAUSE_FAILED","TOKEN_LIFECYCLE_VALIDATION_FAILED","TOKEN_OPERATION_INPUT_INVALID","TOKEN_PRICE_DENOMINATION_UNUSABLE","TOKEN_PRICE_FEED_FACTORY_MISSING","TOKEN_PRICE_FEED_SIGNER_MISSING","TOKEN_PRICE_INPUT_INVALID","TOKEN_PRICE_UPDATE_FAILED","TOKEN_QUEUE_WRITE_REFUSED","TOKEN_WORKFLOW_FAILED","TOKEN_WRITE_OUTCOME_UNKNOWN","TOKEN_WRITE_RECEIPT_INCOMPLETE","TOKEN_WRITE_REVERTED","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_ACCESS_SYNC_RESULT_UNAVAILABLE","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_WRITE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.identity.CLAIM_ISSUE_DEPENDENCY_FAILED","dapi.identity.CLAIM_TOPIC_READ_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Redeems units of the selected token against the denomination asset for the named holder, or for the caller when `owner` is omitted. Send `amount` or set `redeemAll` to true. The platform checks the indexed token first, then submits a live chain transaction. By default the platform queues the transaction and answers under status 202. Prefer: wait=<seconds> waits for settlement. Redemption requires a custodian when the token is configured that way.","summary":"Redeem tokens","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"owner":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"amount":{"type":"string","pattern":"^[0-9]+$"},"redeemAll":{"anyOf":[{"type":"boolean"},{"type":"null"}]}},"additionalProperties":false}}},"required":false},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/features/fixed-treasury-yield/claims":{"post":{"tags":["Yield and distributions"],"operationId":"v2/token/claimYield","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous mutation result (HTTP 200). The write settled within the request wait window. `data` is the token an EVM write moved, or the Canton operation a Canton write submitted.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenRecord"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","tokenFactory":"0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0","complianceContract":"0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9","identityRegistry":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","type":"bond","createdAt":"2026-03-04T09:12:41.000Z","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"basePrice":"100.00","basePriceCurrencyCode":"EUR","totalSupply":"2500000.00","totalSupplyExact":"2500000000000000000000000","extensions":["ACCESS_MANAGED","BOND","CAPPED","REDEEMABLE"],"implementsERC3643":true,"smartInterface":2,"implementsSMART":true,"pausable":{"paused":false},"collateral":null,"capped":{"cap":"5000000.00","capExact":"5000000000000000000000000"},"createdBy":{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"},"redeemable":{"redeemedAmount":"0","redeemedAmountExact":"0"},"yield":null,"bond":{"faceValue":"100.00","faceValueExact":"100000000000000000000","isMatured":false,"maturityDate":"2029-03-04T00:00:00.000Z","totalRedeemed":"0","totalRedeemedExact":"0","denominationAsset":{"id":"0x5FbDB2315678afecb367f032d93F642f64180aa3","symbol":"EURC","decimals":6}},"fund":null,"complianceModuleConfigs":[],"stats":{"balancesCount":12,"totalValueInBaseCurrency":"250000000.00","totalBurned":"0","totalBurnedExact":"0"}},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"]},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","TOKEN_FEATURES_NO_YIELD_AVAILABLE_CLAIM_FIRST_PERIOD_NOT_COMPLETED_YET","TOKEN_FEATURES_NO_YIELD_AVAILABLE_FOR_HOLDER","TOKEN_FEATURES_YIELD_FULLY_CONSUMED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","TREASURY_WALLET_MISMATCH","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_ADDON_FACTORY_NOT_FOUND_INDEXER","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_FIXED_TREASURY_YIELD_FEATURE_STATE_NOT_YET_INDEXED_INDEXER_PROCESSED_INITIA","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Claims completed coupon periods for the caller on the attached fixed-treasury-yield feature. Periods that have not closed are not paid. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement. After settlement, claim again if more completed periods remain. A Canton body runs `TreasuryYieldDistribution_Claim` against the `TreasuryYieldDistribution` contract named by `treasuryDistributionContractId`.","summary":"Claim accrued fixed-treasury yield","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]}},"additionalProperties":false}}},"required":false},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/features/fixed-treasury-yield/top-ups":{"post":{"tags":["Yield and distributions"],"operationId":"v2/token/topUpYieldTreasury","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled token after the feature write completed within the wait window. data is the indexed token. meta.txHashes are the submitted transactions. links.self is the token URL.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenRecord"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","tokenFactory":"0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0","complianceContract":"0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9","identityRegistry":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","type":"bond","createdAt":"2026-03-04T09:12:41.000Z","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"basePrice":"100.00","basePriceCurrencyCode":"EUR","totalSupply":"2500000.00","totalSupplyExact":"2500000000000000000000000","extensions":["ACCESS_MANAGED","BOND","CAPPED","REDEEMABLE"],"implementsERC3643":true,"smartInterface":2,"implementsSMART":true,"pausable":{"paused":false},"collateral":null,"capped":{"cap":"5000000.00","capExact":"5000000000000000000000000"},"createdBy":{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"},"redeemable":{"redeemedAmount":"0","redeemedAmountExact":"0"},"yield":null,"bond":{"faceValue":"100.00","faceValueExact":"100000000000000000000","isMatured":false,"maturityDate":"2029-03-04T00:00:00.000Z","totalRedeemed":"0","totalRedeemedExact":"0","denominationAsset":{"id":"0x5FbDB2315678afecb367f032d93F642f64180aa3","symbol":"EURC","decimals":6}},"fund":null,"complianceModuleConfigs":[],"stats":{"balancesCount":12,"totalValueInBaseCurrency":"250000000.00","totalBurned":"0","totalBurnedExact":"0"}},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"]},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","TOKEN_FEATURES_NO_YIELD_AVAILABLE_CLAIM_FIRST_PERIOD_NOT_COMPLETED_YET","TOKEN_FEATURES_NO_YIELD_AVAILABLE_FOR_HOLDER","TOKEN_FEATURES_YIELD_FULLY_CONSUMED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","TREASURY_WALLET_MISMATCH","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_ADDON_FACTORY_NOT_FOUND_INDEXER","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_FIXED_TREASURY_YIELD_FEATURE_STATE_NOT_YET_INDEXED_INDEXER_PROCESSED_INITIA","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Transfers denomination assets into the treasury that funds coupon payments on the attached fixed-treasury-yield feature. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement. After settlement, holders can claim completed periods.","summary":"Top up the fixed-treasury-yield treasury","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"amount":{"type":"string","pattern":"^[0-9]+$","description":"Amount in base units of the denomination asset, as a decimal integer string. For 400,000 of an asset with 18 decimals, send `400000000000000000000000`."}},"required":["amount"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/features/maturity-redemption/top-ups":{"post":{"tags":["Token features"],"operationId":"v2/token/topUpMaturityTreasury","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled token after the feature write completed within the wait window. data is the indexed token. meta.txHashes are the submitted transactions. links.self is the token URL.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenRecord"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","tokenFactory":"0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0","complianceContract":"0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9","identityRegistry":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","type":"bond","createdAt":"2026-03-04T09:12:41.000Z","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"basePrice":"100.00","basePriceCurrencyCode":"EUR","totalSupply":"2500000.00","totalSupplyExact":"2500000000000000000000000","extensions":["ACCESS_MANAGED","BOND","CAPPED","REDEEMABLE"],"implementsERC3643":true,"smartInterface":2,"implementsSMART":true,"pausable":{"paused":false},"collateral":null,"capped":{"cap":"5000000.00","capExact":"5000000000000000000000000"},"createdBy":{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"},"redeemable":{"redeemedAmount":"0","redeemedAmountExact":"0"},"yield":null,"bond":{"faceValue":"100.00","faceValueExact":"100000000000000000000","isMatured":false,"maturityDate":"2029-03-04T00:00:00.000Z","totalRedeemed":"0","totalRedeemedExact":"0","denominationAsset":{"id":"0x5FbDB2315678afecb367f032d93F642f64180aa3","symbol":"EURC","decimals":6}},"fund":null,"complianceModuleConfigs":[],"stats":{"balancesCount":12,"totalValueInBaseCurrency":"250000000.00","totalBurned":"0","totalBurnedExact":"0"}},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"]},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CUSTODY_ACCOUNT_SELECTION_INVALID","MATURITY_INSUFFICIENT_ALLOWANCE","MATURITY_NOT_MATURED","MATURITY_REDEMPTION_UNAVAILABLE","MATURITY_TREASURY_WALLET_MISMATCH","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","MATURITY_STATE_NOT_INDEXED","MATURITY_TREASURY_UNCLASSIFIED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Transfers denomination assets into the treasury that pays matured redemptions. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement. After settlement, holders can redeem when the token is matured.","summary":"Top up the maturity-redemption treasury","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"amount":{"type":"string","pattern":"^[0-9]+$","description":"Amount in base units of the denomination asset, as a decimal integer string. For 400,000 of an asset with 18 decimals, send `400000000000000000000000`."}},"required":["amount"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/features/fixed-treasury-yield/treasury-allowance":{"post":{"tags":["Yield and distributions"],"operationId":"v2/token/approveYieldTreasuryAllowance","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled token after the feature write completed within the wait window. data is the indexed token. meta.txHashes are the submitted transactions. links.self is the token URL.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenRecord"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","tokenFactory":"0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0","complianceContract":"0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9","identityRegistry":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","type":"bond","createdAt":"2026-03-04T09:12:41.000Z","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"basePrice":"100.00","basePriceCurrencyCode":"EUR","totalSupply":"2500000.00","totalSupplyExact":"2500000000000000000000000","extensions":["ACCESS_MANAGED","BOND","CAPPED","REDEEMABLE"],"implementsERC3643":true,"smartInterface":2,"implementsSMART":true,"pausable":{"paused":false},"collateral":null,"capped":{"cap":"5000000.00","capExact":"5000000000000000000000000"},"createdBy":{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"},"redeemable":{"redeemedAmount":"0","redeemedAmountExact":"0"},"yield":null,"bond":{"faceValue":"100.00","faceValueExact":"100000000000000000000","isMatured":false,"maturityDate":"2029-03-04T00:00:00.000Z","totalRedeemed":"0","totalRedeemedExact":"0","denominationAsset":{"id":"0x5FbDB2315678afecb367f032d93F642f64180aa3","symbol":"EURC","decimals":6}},"fund":null,"complianceModuleConfigs":[],"stats":{"balancesCount":12,"totalValueInBaseCurrency":"250000000.00","totalBurned":"0","totalBurnedExact":"0"}},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"]},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","TOKEN_FEATURES_NO_YIELD_AVAILABLE_CLAIM_FIRST_PERIOD_NOT_COMPLETED_YET","TOKEN_FEATURES_NO_YIELD_AVAILABLE_FOR_HOLDER","TOKEN_FEATURES_YIELD_FULLY_CONSUMED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","TREASURY_WALLET_MISMATCH","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_ADDON_FACTORY_NOT_FOUND_INDEXER","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_FIXED_TREASURY_YIELD_FEATURE_STATE_NOT_YET_INDEXED_INDEXER_PROCESSED_INITIA","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Approves the attached fixed-treasury-yield feature to spend denomination assets from the treasury. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement. Do this before holders claim if the treasury is an ordinary wallet.","summary":"Approve the fixed-treasury-yield treasury allowance","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"amount":{"type":"string","pattern":"^[0-9]+$","description":"Amount in base units of the denomination asset, as a decimal integer string. For 400,000 of an asset with 18 decimals, send `400000000000000000000000`."}},"required":["amount"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/features/maturity-redemption/treasury-allowance":{"post":{"tags":["Token features"],"operationId":"v2/token/approveMaturityTreasuryAllowance","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled token after the feature write completed within the wait window. data is the indexed token. meta.txHashes are the submitted transactions. links.self is the token URL.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenRecord"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","tokenFactory":"0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0","complianceContract":"0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9","identityRegistry":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","type":"bond","createdAt":"2026-03-04T09:12:41.000Z","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"basePrice":"100.00","basePriceCurrencyCode":"EUR","totalSupply":"2500000.00","totalSupplyExact":"2500000000000000000000000","extensions":["ACCESS_MANAGED","BOND","CAPPED","REDEEMABLE"],"implementsERC3643":true,"smartInterface":2,"implementsSMART":true,"pausable":{"paused":false},"collateral":null,"capped":{"cap":"5000000.00","capExact":"5000000000000000000000000"},"createdBy":{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"},"redeemable":{"redeemedAmount":"0","redeemedAmountExact":"0"},"yield":null,"bond":{"faceValue":"100.00","faceValueExact":"100000000000000000000","isMatured":false,"maturityDate":"2029-03-04T00:00:00.000Z","totalRedeemed":"0","totalRedeemedExact":"0","denominationAsset":{"id":"0x5FbDB2315678afecb367f032d93F642f64180aa3","symbol":"EURC","decimals":6}},"fund":null,"complianceModuleConfigs":[],"stats":{"balancesCount":12,"totalValueInBaseCurrency":"250000000.00","totalBurned":"0","totalBurnedExact":"0"}},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"]},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CUSTODY_ACCOUNT_SELECTION_INVALID","MATURITY_INSUFFICIENT_ALLOWANCE","MATURITY_NOT_MATURED","MATURITY_REDEMPTION_UNAVAILABLE","MATURITY_TREASURY_WALLET_MISMATCH","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","MATURITY_STATE_NOT_INDEXED","MATURITY_TREASURY_UNCLASSIFIED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Approves the attached maturity-redemption feature to spend denomination assets from the treasury. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement. Do this before holders redeem if the treasury is an ordinary wallet.","summary":"Approve the maturity-redemption treasury allowance","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"amount":{"type":"string","pattern":"^[0-9]+$","description":"Amount in base units of the denomination asset, as a decimal integer string. For 400,000 of an asset with 18 decimals, send `400000000000000000000000`."}},"required":["amount"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/features/distribution-waterfall/treasury-allowance":{"post":{"tags":["Token features"],"operationId":"v2/token/approveWaterfallAllowance","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled token after the feature write completed within the wait window. data is the indexed token. meta.txHashes are the submitted transactions. links.self is the token URL.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenRecord"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","tokenFactory":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","complianceContract":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","identityRegistry":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","type":"bond","createdAt":"2026-08-01T09:00:00.000Z","name":"Core holdings","symbol":"ACME25","logoUrl":"https://cdn.example.com/tokens/acme25.png","decimals":18,"basePrice":"100.00","basePriceCurrencyCode":"USD","totalSupply":"1250000.5","totalSupplyExact":"1250000500000000000000000","extensions":["ACCESS_MANAGED"],"implementsERC3643":true,"smartInterface":2,"implementsSMART":true,"identity":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","account":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","contractName":"USD Coin"},"isContract":false,"registered":{"isRegistered":true,"country":"US"},"claims":[{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","name":"Core holdings","signature":"string claim","revoked":false,"issuer":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","account":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}},"values":[{"key":"BASE_CURRENCY","value":"EUR"}],"isTrusted":true}]},"pausable":{"paused":false},"collateral":{"collateral":0,"collateralExact":"1","expiryTimestamp":0},"capped":{"cap":"5000000.00","capExact":"5000000000000000000000000"},"createdBy":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"},"redeemable":{"redeemedAmount":"0","redeemedAmountExact":"0"},"yield":{"schedule":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","denominationAsset":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","symbol":"ETH","decimals":18}}},"bond":{"faceValue":"1000.00","faceValueExact":"1000000000000000000000","isMatured":false,"maturityDate":"2027-03-15T00:00:00.000Z","totalRedeemed":"125000.00","totalRedeemedExact":"125000000000000000000000","denominationAsset":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","symbol":"ETH","decimals":18}},"fund":{"managementFeeBps":0},"accessControl":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","addonModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"addonRegistryModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"admin":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"auditor":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"claimPolicyManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"claimIssuer":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"complianceManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"custodian":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"emergency":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"feedsManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"fundsManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"gasManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"governance":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"identityManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"identityRegistryModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"organisationIdentityManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"saleAdmin":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"supplyManagement":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"systemManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"systemModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"tokenFactoryModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"tokenFactoryRegistryModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"tokenManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"trustedIssuersMetaRegistryModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"addonManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"tradingVenueOperator":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"assetDesigner":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"roleAdmins":[{"id":"0x5208","role":"0x5208","roleFieldName":"addonManager","adminRole":"0x5208","adminFieldName":"addonManager"}]},"complianceModuleConfigs":[{"id":"0x71c7656ec7ab88b098defb751b7401b5f6d8976f2546bcd3c84621e976d8185a91a922ae77ecec30","complianceModule":{"typeId":"address-block-list"}}],"userPermissions":{"roles":{"admin":true,"custodian":false,"emergency":false,"fundsManager":false,"governance":false,"saleAdmin":false,"supplyManagement":false},"actions":{"burn":false,"grantRole":false,"grantRoleByParticipant":false,"revokeRole":false,"revokeRoleByParticipant":false,"mint":false,"pause":false,"addComplianceModule":false,"approve":false,"forcedRecover":false,"freezeAddress":false,"recoverERC20":false,"recoverTokens":false,"redeem":false,"mature":false,"removeComplianceModule":false,"setCap":false,"setComplianceModuleParams":false,"setYieldSchedule":false,"topUpDenominationAsset":false,"withdrawDenominationAsset":false,"transfer":false,"forcedTransfer":false,"unpause":false,"updateCollateral":false,"freezePartial":false,"unfreezePartial":false,"claimIssue":false,"claimRevoke":false,"setMetadata":false,"removeMetadata":false,"setAumFeeBps":false,"setAumFeeRecipient":false,"approveTransfer":false,"revokeTransferApproval":false,"collectAumFee":false,"freezeAumFeeRate":false,"claimYield":false,"setYieldTreasury":false,"matureEarly":false,"setMaturityTreasury":false,"topUpMaturityTreasury":false,"topUpYieldTreasury":false,"topUpBondDenomination":false,"setTransactionFeeRates":false,"setTransactionFeeRecipient":false,"freezeTransactionFeeRates":false,"setExternalTransactionFees":false,"setExternalTransactionFeeRecipient":false,"setExternalTransactionFeeToken":false,"freezeExternalTransactionFees":false,"setTransactionFeeAccountingRates":false,"setTransactionFeeAccountingRecipient":false,"freezeTransactionFeeAccountingRates":false,"reconcileFees":false,"setFeeExemption":false,"delegate":false,"delegateBySig":false,"permit":false,"publishTrigger":false,"disableTrigger":false,"setConversionWindow":false,"convert":false,"forceConvert":false,"addAuthorizedConverter":false,"removeAuthorizedConverter":false,"addHoldReserver":false,"removeHoldReserver":false,"setPrice":false,"featureAttach":false,"featureDetach":false,"featureRotate":false}},"stats":{"balancesCount":42,"totalValueInBaseCurrency":"125000050.00","totalBurned":"1000.00","totalBurnedExact":"1000000000000000000000"}},"meta":{"txHashes":["0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","DISTRIBUTION_WATERFALL_FEATURE_NOT_FOUND","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"DISTRIBUTION_WATERFALL_FEATURE_NOT_FOUND","status":404,"message":"This token carries no distribution-waterfall feature","data":{"id":"DALP-14005","why":"A waterfall allowance names the feature that pulls the pool as its spender, and this token has no such feature attached, so there is nothing to approve.","fix":"Grant the allowance on the share class that carries the distribution-waterfall feature, or attach the feature to this token first.","retryable":false,"category":"domain"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DISTRIBUTION_WATERFALL_DENOMINATION_UNREADABLE","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Approves the attached distribution-waterfall feature to spend denomination assets from the calling wallet. A coordinated distribution pulls its whole pool from that wallet in one transfer, so grant at least the pool before confirming one. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement.","summary":"Approve the distribution-waterfall allowance","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"amount":{"type":"string","pattern":"^[0-9]+$","description":"Amount in base units of the denomination asset, as a decimal integer string. For 400,000 of an asset with 18 decimals, send `400000000000000000000000`."}},"required":["amount"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/features/maturity-redemption/maturations":{"post":{"tags":["Token features"],"operationId":"v2/token/matureViaFeature","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled token after the feature write completed within the wait window. data is the indexed token. meta.txHashes are the submitted transactions. links.self is the token URL.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenRecord"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","tokenFactory":"0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0","complianceContract":"0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9","identityRegistry":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","type":"bond","createdAt":"2026-03-04T09:12:41.000Z","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"basePrice":"100.00","basePriceCurrencyCode":"EUR","totalSupply":"2500000.00","totalSupplyExact":"2500000000000000000000000","extensions":["ACCESS_MANAGED","BOND","CAPPED","REDEEMABLE"],"implementsERC3643":true,"smartInterface":2,"implementsSMART":true,"pausable":{"paused":false},"collateral":null,"capped":{"cap":"5000000.00","capExact":"5000000000000000000000000"},"createdBy":{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"},"redeemable":{"redeemedAmount":"0","redeemedAmountExact":"0"},"yield":null,"bond":{"faceValue":"100.00","faceValueExact":"100000000000000000000","isMatured":false,"maturityDate":"2029-03-04T00:00:00.000Z","totalRedeemed":"0","totalRedeemedExact":"0","denominationAsset":{"id":"0x5FbDB2315678afecb367f032d93F642f64180aa3","symbol":"EURC","decimals":6}},"fund":null,"complianceModuleConfigs":[],"stats":{"balancesCount":12,"totalValueInBaseCurrency":"250000000.00","totalBurned":"0","totalBurnedExact":"0"}},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"]},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CUSTODY_ACCOUNT_SELECTION_INVALID","MATURITY_INSUFFICIENT_ALLOWANCE","MATURITY_NOT_MATURED","MATURITY_REDEMPTION_UNAVAILABLE","MATURITY_TREASURY_WALLET_MISMATCH","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","MATURITY_STATE_NOT_INDEXED","MATURITY_TREASURY_UNCLASSIFIED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Matures the token through its attached maturity-redemption feature after the scheduled maturity date. After maturity, holders redeem for denomination assets at face value. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement. After settlement, top up the treasury if needed, then holders redeem.","summary":"Mature a token through its maturity-redemption feature","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]}},"additionalProperties":false}}},"required":false},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/features/maturity-redemption/early-maturations":{"post":{"tags":["Token features"],"operationId":"v2/token/matureEarly","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous mutation result (HTTP 200). The write settled within the request wait window. `data` is the token an EVM write moved, or the Canton operation a Canton write submitted.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenRecord"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","tokenFactory":"0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0","complianceContract":"0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9","identityRegistry":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","type":"bond","createdAt":"2026-03-04T09:12:41.000Z","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"basePrice":"100.00","basePriceCurrencyCode":"EUR","totalSupply":"2500000.00","totalSupplyExact":"2500000000000000000000000","extensions":["ACCESS_MANAGED","BOND","CAPPED","REDEEMABLE"],"implementsERC3643":true,"smartInterface":2,"implementsSMART":true,"pausable":{"paused":false},"collateral":null,"capped":{"cap":"5000000.00","capExact":"5000000000000000000000000"},"createdBy":{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"},"redeemable":{"redeemedAmount":"0","redeemedAmountExact":"0"},"yield":null,"bond":{"faceValue":"100.00","faceValueExact":"100000000000000000000","isMatured":false,"maturityDate":"2029-03-04T00:00:00.000Z","totalRedeemed":"0","totalRedeemedExact":"0","denominationAsset":{"id":"0x5FbDB2315678afecb367f032d93F642f64180aa3","symbol":"EURC","decimals":6}},"fund":null,"complianceModuleConfigs":[],"stats":{"balancesCount":12,"totalValueInBaseCurrency":"250000000.00","totalBurned":"0","totalBurnedExact":"0"}},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"]},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CUSTODY_ACCOUNT_SELECTION_INVALID","MATURITY_INSUFFICIENT_ALLOWANCE","MATURITY_NOT_MATURED","MATURITY_REDEMPTION_UNAVAILABLE","MATURITY_TREASURY_WALLET_MISMATCH","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","MATURITY_STATE_NOT_INDEXED","MATURITY_TREASURY_UNCLASSIFIED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Matures the token before the scheduled maturity date through the attached maturity-redemption feature. After early maturity, holders redeem for denomination assets at face value. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement. After settlement, top up the treasury if needed, then holders redeem. A Canton body runs `MaturityConfig_MatureEarly` against the `MaturityConfig` contract named by `maturityConfigContractId`.","summary":"Mature a token early","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]}},"additionalProperties":false}}},"required":false},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/features/maturity-redemption/redemptions":{"post":{"tags":["Token features"],"operationId":"v2/token/redeemViaFeature","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous mutation result (HTTP 200). The write settled within the request wait window. `data` is the token an EVM write moved, or the Canton operation a Canton write submitted.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenRecord"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","tokenFactory":"0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0","complianceContract":"0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9","identityRegistry":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","type":"bond","createdAt":"2026-03-04T09:12:41.000Z","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"basePrice":"100.00","basePriceCurrencyCode":"EUR","totalSupply":"2500000.00","totalSupplyExact":"2500000000000000000000000","extensions":["ACCESS_MANAGED","BOND","CAPPED","REDEEMABLE"],"implementsERC3643":true,"smartInterface":2,"implementsSMART":true,"pausable":{"paused":false},"collateral":null,"capped":{"cap":"5000000.00","capExact":"5000000000000000000000000"},"createdBy":{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"},"redeemable":{"redeemedAmount":"0","redeemedAmountExact":"0"},"yield":null,"bond":{"faceValue":"100.00","faceValueExact":"100000000000000000000","isMatured":false,"maturityDate":"2029-03-04T00:00:00.000Z","totalRedeemed":"0","totalRedeemedExact":"0","denominationAsset":{"id":"0x5FbDB2315678afecb367f032d93F642f64180aa3","symbol":"EURC","decimals":6}},"fund":null,"complianceModuleConfigs":[],"stats":{"balancesCount":12,"totalValueInBaseCurrency":"250000000.00","totalBurned":"0","totalBurnedExact":"0"}},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"]},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CUSTODY_ACCOUNT_SELECTION_INVALID","MATURITY_INSUFFICIENT_ALLOWANCE","MATURITY_NOT_MATURED","MATURITY_REDEMPTION_UNAVAILABLE","MATURITY_TREASURY_WALLET_MISMATCH","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","MATURITY_STATE_NOT_INDEXED","MATURITY_TREASURY_UNCLASSIFIED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Burns matured token units for the caller and pays denomination assets at face value from the attached maturity-redemption treasury. The token must already be matured. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement. A Canton body runs `MaturityConfig_Redeem` against the `MaturityConfig` contract named by `maturityConfigContractId`.","summary":"Redeem a token through its maturity-redemption feature","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"amount":{"type":"string","pattern":"^[0-9]+$","description":"Amount in base units of the token being redeemed, as a decimal integer string. For 5 tokens with 18 decimals, send `5000000000000000000`."}},"required":["amount"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/yield/holder-periods/{holderAddress}":{"get":{"tags":["Yield and distributions"],"operationId":"v2/token/fixedTreasuryYieldHolderPeriods","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"holderAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"name":"sort","in":"query","schema":{"type":"string"},"required":false},{"name":"page","in":"query","schema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":200},"offset":{"type":"integer","minimum":0}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"filter","in":"query","schema":{"type":"object","properties":{"periodNumber":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"amount":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"yieldAmount":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"claimedAtBlock":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"claimedAt":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"periodNumber","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"amount","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"yieldAmount","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"claimedAtBlock","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"claimedAt","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true}],"responses":{"200":{"description":"One page of indexed fixed-treasury-yield claim rows for one holder. Each row is one period claimed in one transaction. Default sort is period number ascending.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"family":{"type":"string","enum":["evm"]},"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"featureAddress":{"$ref":"#/components/schemas/EvmAddress"},"holderAddress":{"$ref":"#/components/schemas/EvmAddress"},"periodNumber":{"type":"integer","minimum":0},"amount":{"anyOf":[{"type":"string"},{"type":"number"}]},"amountExact":{"type":"string","pattern":"^[0-9]+$"},"yieldAmount":{"anyOf":[{"type":"string"},{"type":"number"}]},"yieldAmountExact":{"type":"string","pattern":"^[0-9]+$"},"claimedAtBlock":{"type":"string","pattern":"^[0-9]+$"},"claimedAt":{"type":"string"},"txHash":{"$ref":"#/components/schemas/EthereumHashEncoded"},"logIndex":{"type":"integer","minimum":0}},"required":["family","tokenAddress","featureAddress","holderAddress","periodNumber","amount","amountExact","yieldAmount","yieldAmountExact","claimedAtBlock","claimedAt","txHash","logIndex"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0},"facets":{"type":"object","additionalProperties":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"count":{"type":"integer","minimum":0}},"required":["value","count"],"additionalProperties":false}}}},"required":["total"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"},"first":{"type":"string"},"prev":{"anyOf":[{"type":"string"},{"type":"null"}]},"next":{"anyOf":[{"type":"string"},{"type":"null"}]},"last":{"type":"string"}},"required":["self","first","prev","next","last"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"family":"evm","tokenAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","featureAddress":"0x2279B7A0a67DB372996a5FaB50D91eAA73d2eBe6","holderAddress":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","periodNumber":12,"amount":"25000.00","amountExact":"25000000000000000000000","yieldAmount":"125.00","yieldAmountExact":"125000000000000000000","claimedAtBlock":"21450881","claimedAt":"2026-03-04T09:12:41.000Z","txHash":"0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24","logIndex":4}],"meta":{"total":1},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/yield/holder-periods/0x8ba1f109551bD432803012645Ac136ddd64DBA72?sort=periodNumber&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/yield/holder-periods/0x8ba1f109551bD432803012645Ac136ddd64DBA72?sort=periodNumber&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/yield/holder-periods/0x8ba1f109551bD432803012645Ac136ddd64DBA72?sort=periodNumber&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","TOKEN_LIST_METADATA_KEY_IDENTIFIER_INELIGIBLE","TOKEN_LIST_METADATA_KEY_NOT_BUCKETABLE","TOKEN_LIST_METADATA_KEY_UNKNOWN","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_FEATURES_UNAVAILABLE","TOKEN_READ_DEPENDENCY_FAILED","core.database.QUERY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"core.database.QUERY_FAILED","status":503,"message":"The database is temporarily unavailable","data":{"id":"DALP-12148","why":"The platform could not complete a database query required for this request.","fix":"Retry the request. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of indexed fixed-treasury-yield claim rows for one holder of the selected token. Name the holder in the path. Each row is one period claimed in one transaction. A holder that claimed the same period twice produces two rows. Default sort is period number ascending.","summary":"List holder yield periods","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/features/interest-yield/schedule":{"delete":{"tags":["Yield and distributions"],"operationId":"v2/token/revokeYieldSchedule","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous mutation result (HTTP 200). The operation settled within the request wait window. `data` names the submission id a caller polls and the contract the choice created.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenRecord"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","tokenFactory":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","complianceContract":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","identityRegistry":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","type":"bond","createdAt":"2026-08-01T09:00:00.000Z","name":"Core holdings","symbol":"ACME25","logoUrl":"https://cdn.example.com/tokens/acme25.png","decimals":18,"basePrice":"100.00","basePriceCurrencyCode":"USD","totalSupply":"1250000.5","totalSupplyExact":"1250000500000000000000000","extensions":["ACCESS_MANAGED"],"implementsERC3643":true,"smartInterface":2,"implementsSMART":true,"identity":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","account":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","contractName":"USD Coin"},"isContract":false,"registered":{"isRegistered":true,"country":"US"},"claims":[{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","name":"Core holdings","signature":"string claim","revoked":false,"issuer":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","account":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}},"values":[{"key":"BASE_CURRENCY","value":"EUR"}],"isTrusted":true}]},"pausable":{"paused":false},"collateral":{"collateral":0,"collateralExact":"1","expiryTimestamp":0},"capped":{"cap":"5000000.00","capExact":"5000000000000000000000000"},"createdBy":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"},"redeemable":{"redeemedAmount":"0","redeemedAmountExact":"0"},"yield":{"schedule":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","denominationAsset":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","symbol":"ETH","decimals":18}}},"bond":{"faceValue":"1000.00","faceValueExact":"1000000000000000000000","isMatured":false,"maturityDate":"2027-03-15T00:00:00.000Z","totalRedeemed":"125000.00","totalRedeemedExact":"125000000000000000000000","denominationAsset":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","symbol":"ETH","decimals":18}},"fund":{"managementFeeBps":0},"accessControl":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","addonModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"addonRegistryModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"admin":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"auditor":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"claimPolicyManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"claimIssuer":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"complianceManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"custodian":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"emergency":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"feedsManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"fundsManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"gasManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"governance":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"identityManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"identityRegistryModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"organisationIdentityManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"saleAdmin":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"supplyManagement":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"systemManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"systemModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"tokenFactoryModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"tokenFactoryRegistryModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"tokenManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"trustedIssuersMetaRegistryModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"addonManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"tradingVenueOperator":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"assetDesigner":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"roleAdmins":[{"id":"0x5208","role":"0x5208","roleFieldName":"addonManager","adminRole":"0x5208","adminFieldName":"addonManager"}]},"complianceModuleConfigs":[{"id":"0x71c7656ec7ab88b098defb751b7401b5f6d8976f2546bcd3c84621e976d8185a91a922ae77ecec30","complianceModule":{"typeId":"address-block-list"}}],"userPermissions":{"roles":{"admin":true,"custodian":false,"emergency":false,"fundsManager":false,"governance":false,"saleAdmin":false,"supplyManagement":false},"actions":{"burn":false,"grantRole":false,"grantRoleByParticipant":false,"revokeRole":false,"revokeRoleByParticipant":false,"mint":false,"pause":false,"addComplianceModule":false,"approve":false,"forcedRecover":false,"freezeAddress":false,"recoverERC20":false,"recoverTokens":false,"redeem":false,"mature":false,"removeComplianceModule":false,"setCap":false,"setComplianceModuleParams":false,"setYieldSchedule":false,"topUpDenominationAsset":false,"withdrawDenominationAsset":false,"transfer":false,"forcedTransfer":false,"unpause":false,"updateCollateral":false,"freezePartial":false,"unfreezePartial":false,"claimIssue":false,"claimRevoke":false,"setMetadata":false,"removeMetadata":false,"setAumFeeBps":false,"setAumFeeRecipient":false,"approveTransfer":false,"revokeTransferApproval":false,"collectAumFee":false,"freezeAumFeeRate":false,"claimYield":false,"setYieldTreasury":false,"matureEarly":false,"setMaturityTreasury":false,"topUpMaturityTreasury":false,"topUpYieldTreasury":false,"topUpBondDenomination":false,"setTransactionFeeRates":false,"setTransactionFeeRecipient":false,"freezeTransactionFeeRates":false,"setExternalTransactionFees":false,"setExternalTransactionFeeRecipient":false,"setExternalTransactionFeeToken":false,"freezeExternalTransactionFees":false,"setTransactionFeeAccountingRates":false,"setTransactionFeeAccountingRecipient":false,"freezeTransactionFeeAccountingRates":false,"reconcileFees":false,"setFeeExemption":false,"delegate":false,"delegateBySig":false,"permit":false,"publishTrigger":false,"disableTrigger":false,"setConversionWindow":false,"convert":false,"forceConvert":false,"addAuthorizedConverter":false,"removeAuthorizedConverter":false,"addHoldReserver":false,"removeHoldReserver":false,"setPrice":false,"featureAttach":false,"featureDetach":false,"featureRotate":false}},"stats":{"balancesCount":42,"totalValueInBaseCurrency":"125000050.00","totalBurned":"1000.00","totalBurnedExact":"1000000000000000000000"}},"meta":{"txHashes":["0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Retires the yield schedule by running the Daml choice `YieldSchedule_Revoke` on the `YieldSchedule` config contract the body names. Canton only: an EVM-family body, which carries no `instrumentAdmin`, is refused with DALP-9326. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement.","summary":"Revoke the yield schedule","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"cantonPartyId":{"type":"string","minLength":1,"description":"Canton party identifier.","examples":["Canton::1220abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123"]},"instrumentAdmin":{"type":"string","minLength":1,"description":"Canton party identifier.","examples":["Canton::1220abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123"]},"scheduleContractId":{"type":"string","minLength":1,"description":"Contract id of a Canton contract, as a platform read returned it."}},"required":["cantonPartyId","instrumentAdmin","scheduleContractId"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/features/interest-yield/configuration":{"delete":{"tags":["Yield and distributions"],"operationId":"v2/token/revokeInterestYield","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous mutation result (HTTP 200). The operation settled within the request wait window. `data` names the submission id a caller polls and the contract the choice created.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenRecord"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","tokenFactory":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","complianceContract":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","identityRegistry":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","type":"bond","createdAt":"2026-08-01T09:00:00.000Z","name":"Core holdings","symbol":"ACME25","logoUrl":"https://cdn.example.com/tokens/acme25.png","decimals":18,"basePrice":"100.00","basePriceCurrencyCode":"USD","totalSupply":"1250000.5","totalSupplyExact":"1250000500000000000000000","extensions":["ACCESS_MANAGED"],"implementsERC3643":true,"smartInterface":2,"implementsSMART":true,"identity":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","account":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","contractName":"USD Coin"},"isContract":false,"registered":{"isRegistered":true,"country":"US"},"claims":[{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","name":"Core holdings","signature":"string claim","revoked":false,"issuer":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","account":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}},"values":[{"key":"BASE_CURRENCY","value":"EUR"}],"isTrusted":true}]},"pausable":{"paused":false},"collateral":{"collateral":0,"collateralExact":"1","expiryTimestamp":0},"capped":{"cap":"5000000.00","capExact":"5000000000000000000000000"},"createdBy":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"},"redeemable":{"redeemedAmount":"0","redeemedAmountExact":"0"},"yield":{"schedule":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","denominationAsset":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","symbol":"ETH","decimals":18}}},"bond":{"faceValue":"1000.00","faceValueExact":"1000000000000000000000","isMatured":false,"maturityDate":"2027-03-15T00:00:00.000Z","totalRedeemed":"125000.00","totalRedeemedExact":"125000000000000000000000","denominationAsset":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","symbol":"ETH","decimals":18}},"fund":{"managementFeeBps":0},"accessControl":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","addonModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"addonRegistryModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"admin":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"auditor":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"claimPolicyManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"claimIssuer":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"complianceManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"custodian":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"emergency":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"feedsManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"fundsManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"gasManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"governance":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"identityManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"identityRegistryModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"organisationIdentityManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"saleAdmin":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"supplyManagement":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"systemManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"systemModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"tokenFactoryModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"tokenFactoryRegistryModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"tokenManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"trustedIssuersMetaRegistryModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"addonManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"tradingVenueOperator":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"assetDesigner":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"roleAdmins":[{"id":"0x5208","role":"0x5208","roleFieldName":"addonManager","adminRole":"0x5208","adminFieldName":"addonManager"}]},"complianceModuleConfigs":[{"id":"0x71c7656ec7ab88b098defb751b7401b5f6d8976f2546bcd3c84621e976d8185a91a922ae77ecec30","complianceModule":{"typeId":"address-block-list"}}],"userPermissions":{"roles":{"admin":true,"custodian":false,"emergency":false,"fundsManager":false,"governance":false,"saleAdmin":false,"supplyManagement":false},"actions":{"burn":false,"grantRole":false,"grantRoleByParticipant":false,"revokeRole":false,"revokeRoleByParticipant":false,"mint":false,"pause":false,"addComplianceModule":false,"approve":false,"forcedRecover":false,"freezeAddress":false,"recoverERC20":false,"recoverTokens":false,"redeem":false,"mature":false,"removeComplianceModule":false,"setCap":false,"setComplianceModuleParams":false,"setYieldSchedule":false,"topUpDenominationAsset":false,"withdrawDenominationAsset":false,"transfer":false,"forcedTransfer":false,"unpause":false,"updateCollateral":false,"freezePartial":false,"unfreezePartial":false,"claimIssue":false,"claimRevoke":false,"setMetadata":false,"removeMetadata":false,"setAumFeeBps":false,"setAumFeeRecipient":false,"approveTransfer":false,"revokeTransferApproval":false,"collectAumFee":false,"freezeAumFeeRate":false,"claimYield":false,"setYieldTreasury":false,"matureEarly":false,"setMaturityTreasury":false,"topUpMaturityTreasury":false,"topUpYieldTreasury":false,"topUpBondDenomination":false,"setTransactionFeeRates":false,"setTransactionFeeRecipient":false,"freezeTransactionFeeRates":false,"setExternalTransactionFees":false,"setExternalTransactionFeeRecipient":false,"setExternalTransactionFeeToken":false,"freezeExternalTransactionFees":false,"setTransactionFeeAccountingRates":false,"setTransactionFeeAccountingRecipient":false,"freezeTransactionFeeAccountingRates":false,"reconcileFees":false,"setFeeExemption":false,"delegate":false,"delegateBySig":false,"permit":false,"publishTrigger":false,"disableTrigger":false,"setConversionWindow":false,"convert":false,"forceConvert":false,"addAuthorizedConverter":false,"removeAuthorizedConverter":false,"addHoldReserver":false,"removeHoldReserver":false,"setPrice":false,"featureAttach":false,"featureDetach":false,"featureRotate":false}},"stats":{"balancesCount":42,"totalValueInBaseCurrency":"125000050.00","totalBurned":"1000.00","totalBurnedExact":"1000000000000000000000"}},"meta":{"txHashes":["0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Retires the interest-yield feature by running the Daml choice `InterestYield_Revoke` on the `InterestYield` config contract the body names. Canton only: an EVM-family body, which carries no `instrumentAdmin`, is refused with DALP-9326. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement.","summary":"Revoke the interest-yield feature","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"cantonPartyId":{"type":"string","minLength":1,"description":"Canton party identifier.","examples":["Canton::1220abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123"]},"instrumentAdmin":{"type":"string","minLength":1,"description":"Canton party identifier.","examples":["Canton::1220abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123"]},"interestYieldContractId":{"type":"string","minLength":1,"description":"Contract id of a Canton contract, as a platform read returned it."}},"required":["cantonPartyId","instrumentAdmin","interestYieldContractId"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/features/fixed-treasury-yield/configuration":{"delete":{"tags":["Token features"],"operationId":"v2/token/revokeTreasuryYield","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous mutation result (HTTP 200). The operation settled within the request wait window. `data` names the submission id a caller polls and the contract the choice created.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenRecord"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","tokenFactory":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","complianceContract":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","identityRegistry":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","type":"bond","createdAt":"2026-08-01T09:00:00.000Z","name":"Core holdings","symbol":"ACME25","logoUrl":"https://cdn.example.com/tokens/acme25.png","decimals":18,"basePrice":"100.00","basePriceCurrencyCode":"USD","totalSupply":"1250000.5","totalSupplyExact":"1250000500000000000000000","extensions":["ACCESS_MANAGED"],"implementsERC3643":true,"smartInterface":2,"implementsSMART":true,"identity":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","account":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","contractName":"USD Coin"},"isContract":false,"registered":{"isRegistered":true,"country":"US"},"claims":[{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","name":"Core holdings","signature":"string claim","revoked":false,"issuer":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","account":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}},"values":[{"key":"BASE_CURRENCY","value":"EUR"}],"isTrusted":true}]},"pausable":{"paused":false},"collateral":{"collateral":0,"collateralExact":"1","expiryTimestamp":0},"capped":{"cap":"5000000.00","capExact":"5000000000000000000000000"},"createdBy":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"},"redeemable":{"redeemedAmount":"0","redeemedAmountExact":"0"},"yield":{"schedule":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","denominationAsset":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","symbol":"ETH","decimals":18}}},"bond":{"faceValue":"1000.00","faceValueExact":"1000000000000000000000","isMatured":false,"maturityDate":"2027-03-15T00:00:00.000Z","totalRedeemed":"125000.00","totalRedeemedExact":"125000000000000000000000","denominationAsset":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","symbol":"ETH","decimals":18}},"fund":{"managementFeeBps":0},"accessControl":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","addonModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"addonRegistryModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"admin":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"auditor":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"claimPolicyManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"claimIssuer":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"complianceManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"custodian":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"emergency":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"feedsManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"fundsManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"gasManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"governance":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"identityManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"identityRegistryModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"organisationIdentityManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"saleAdmin":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"supplyManagement":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"systemManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"systemModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"tokenFactoryModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"tokenFactoryRegistryModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"tokenManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"trustedIssuersMetaRegistryModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"addonManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"tradingVenueOperator":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"assetDesigner":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"roleAdmins":[{"id":"0x5208","role":"0x5208","roleFieldName":"addonManager","adminRole":"0x5208","adminFieldName":"addonManager"}]},"complianceModuleConfigs":[{"id":"0x71c7656ec7ab88b098defb751b7401b5f6d8976f2546bcd3c84621e976d8185a91a922ae77ecec30","complianceModule":{"typeId":"address-block-list"}}],"userPermissions":{"roles":{"admin":true,"custodian":false,"emergency":false,"fundsManager":false,"governance":false,"saleAdmin":false,"supplyManagement":false},"actions":{"burn":false,"grantRole":false,"grantRoleByParticipant":false,"revokeRole":false,"revokeRoleByParticipant":false,"mint":false,"pause":false,"addComplianceModule":false,"approve":false,"forcedRecover":false,"freezeAddress":false,"recoverERC20":false,"recoverTokens":false,"redeem":false,"mature":false,"removeComplianceModule":false,"setCap":false,"setComplianceModuleParams":false,"setYieldSchedule":false,"topUpDenominationAsset":false,"withdrawDenominationAsset":false,"transfer":false,"forcedTransfer":false,"unpause":false,"updateCollateral":false,"freezePartial":false,"unfreezePartial":false,"claimIssue":false,"claimRevoke":false,"setMetadata":false,"removeMetadata":false,"setAumFeeBps":false,"setAumFeeRecipient":false,"approveTransfer":false,"revokeTransferApproval":false,"collectAumFee":false,"freezeAumFeeRate":false,"claimYield":false,"setYieldTreasury":false,"matureEarly":false,"setMaturityTreasury":false,"topUpMaturityTreasury":false,"topUpYieldTreasury":false,"topUpBondDenomination":false,"setTransactionFeeRates":false,"setTransactionFeeRecipient":false,"freezeTransactionFeeRates":false,"setExternalTransactionFees":false,"setExternalTransactionFeeRecipient":false,"setExternalTransactionFeeToken":false,"freezeExternalTransactionFees":false,"setTransactionFeeAccountingRates":false,"setTransactionFeeAccountingRecipient":false,"freezeTransactionFeeAccountingRates":false,"reconcileFees":false,"setFeeExemption":false,"delegate":false,"delegateBySig":false,"permit":false,"publishTrigger":false,"disableTrigger":false,"setConversionWindow":false,"convert":false,"forceConvert":false,"addAuthorizedConverter":false,"removeAuthorizedConverter":false,"addHoldReserver":false,"removeHoldReserver":false,"setPrice":false,"featureAttach":false,"featureDetach":false,"featureRotate":false}},"stats":{"balancesCount":42,"totalValueInBaseCurrency":"125000050.00","totalBurned":"1000.00","totalBurnedExact":"1000000000000000000000"}},"meta":{"txHashes":["0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Retires the fixed-treasury-yield feature by running the Daml choice `FixedTreasuryYield_Revoke` on the `FixedTreasuryYield` config contract the body names. Canton only: an EVM-family body, which carries no `instrumentAdmin`, is refused with DALP-9326. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement.","summary":"Revoke the fixed-treasury-yield feature","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"cantonPartyId":{"type":"string","minLength":1,"description":"Canton party identifier.","examples":["Canton::1220abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123"]},"instrumentAdmin":{"type":"string","minLength":1,"description":"Canton party identifier.","examples":["Canton::1220abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123"]},"fixedTreasuryYieldContractId":{"type":"string","minLength":1,"description":"Contract id of a Canton contract, as a platform read returned it."}},"required":["cantonPartyId","instrumentAdmin","fixedTreasuryYieldContractId"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/features/fixed-treasury-yield/distributions":{"delete":{"tags":["Token features"],"operationId":"v2/token/revokeTreasuryDistribution","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous mutation result (HTTP 200). The operation settled within the request wait window. `data` names the submission id a caller polls and the contract the choice created.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenRecord"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","tokenFactory":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","complianceContract":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","identityRegistry":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","type":"bond","createdAt":"2026-08-01T09:00:00.000Z","name":"Core holdings","symbol":"ACME25","logoUrl":"https://cdn.example.com/tokens/acme25.png","decimals":18,"basePrice":"100.00","basePriceCurrencyCode":"USD","totalSupply":"1250000.5","totalSupplyExact":"1250000500000000000000000","extensions":["ACCESS_MANAGED"],"implementsERC3643":true,"smartInterface":2,"implementsSMART":true,"identity":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","account":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","contractName":"USD Coin"},"isContract":false,"registered":{"isRegistered":true,"country":"US"},"claims":[{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","name":"Core holdings","signature":"string claim","revoked":false,"issuer":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","account":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}},"values":[{"key":"BASE_CURRENCY","value":"EUR"}],"isTrusted":true}]},"pausable":{"paused":false},"collateral":{"collateral":0,"collateralExact":"1","expiryTimestamp":0},"capped":{"cap":"5000000.00","capExact":"5000000000000000000000000"},"createdBy":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"},"redeemable":{"redeemedAmount":"0","redeemedAmountExact":"0"},"yield":{"schedule":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","denominationAsset":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","symbol":"ETH","decimals":18}}},"bond":{"faceValue":"1000.00","faceValueExact":"1000000000000000000000","isMatured":false,"maturityDate":"2027-03-15T00:00:00.000Z","totalRedeemed":"125000.00","totalRedeemedExact":"125000000000000000000000","denominationAsset":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","symbol":"ETH","decimals":18}},"fund":{"managementFeeBps":0},"accessControl":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","addonModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"addonRegistryModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"admin":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"auditor":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"claimPolicyManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"claimIssuer":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"complianceManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"custodian":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"emergency":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"feedsManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"fundsManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"gasManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"governance":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"identityManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"identityRegistryModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"organisationIdentityManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"saleAdmin":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"supplyManagement":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"systemManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"systemModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"tokenFactoryModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"tokenFactoryRegistryModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"tokenManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"trustedIssuersMetaRegistryModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"addonManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"tradingVenueOperator":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"assetDesigner":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"roleAdmins":[{"id":"0x5208","role":"0x5208","roleFieldName":"addonManager","adminRole":"0x5208","adminFieldName":"addonManager"}]},"complianceModuleConfigs":[{"id":"0x71c7656ec7ab88b098defb751b7401b5f6d8976f2546bcd3c84621e976d8185a91a922ae77ecec30","complianceModule":{"typeId":"address-block-list"}}],"userPermissions":{"roles":{"admin":true,"custodian":false,"emergency":false,"fundsManager":false,"governance":false,"saleAdmin":false,"supplyManagement":false},"actions":{"burn":false,"grantRole":false,"grantRoleByParticipant":false,"revokeRole":false,"revokeRoleByParticipant":false,"mint":false,"pause":false,"addComplianceModule":false,"approve":false,"forcedRecover":false,"freezeAddress":false,"recoverERC20":false,"recoverTokens":false,"redeem":false,"mature":false,"removeComplianceModule":false,"setCap":false,"setComplianceModuleParams":false,"setYieldSchedule":false,"topUpDenominationAsset":false,"withdrawDenominationAsset":false,"transfer":false,"forcedTransfer":false,"unpause":false,"updateCollateral":false,"freezePartial":false,"unfreezePartial":false,"claimIssue":false,"claimRevoke":false,"setMetadata":false,"removeMetadata":false,"setAumFeeBps":false,"setAumFeeRecipient":false,"approveTransfer":false,"revokeTransferApproval":false,"collectAumFee":false,"freezeAumFeeRate":false,"claimYield":false,"setYieldTreasury":false,"matureEarly":false,"setMaturityTreasury":false,"topUpMaturityTreasury":false,"topUpYieldTreasury":false,"topUpBondDenomination":false,"setTransactionFeeRates":false,"setTransactionFeeRecipient":false,"freezeTransactionFeeRates":false,"setExternalTransactionFees":false,"setExternalTransactionFeeRecipient":false,"setExternalTransactionFeeToken":false,"freezeExternalTransactionFees":false,"setTransactionFeeAccountingRates":false,"setTransactionFeeAccountingRecipient":false,"freezeTransactionFeeAccountingRates":false,"reconcileFees":false,"setFeeExemption":false,"delegate":false,"delegateBySig":false,"permit":false,"publishTrigger":false,"disableTrigger":false,"setConversionWindow":false,"convert":false,"forceConvert":false,"addAuthorizedConverter":false,"removeAuthorizedConverter":false,"addHoldReserver":false,"removeHoldReserver":false,"setPrice":false,"featureAttach":false,"featureDetach":false,"featureRotate":false}},"stats":{"balancesCount":42,"totalValueInBaseCurrency":"125000050.00","totalBurned":"1000.00","totalBurnedExact":"1000000000000000000000"}},"meta":{"txHashes":["0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Retires one treasury distribution by running the Daml choice `TreasuryYieldDistribution_Revoke` on the `TreasuryYieldDistribution` distribution contract the body names. Canton only: an EVM-family body, which carries no `instrumentAdmin`, is refused with DALP-9326. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement.","summary":"Revoke a treasury distribution","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"cantonPartyId":{"type":"string","minLength":1,"description":"Canton party identifier.","examples":["Canton::1220abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123"]},"instrumentAdmin":{"type":"string","minLength":1,"description":"Canton party identifier.","examples":["Canton::1220abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123"]},"treasuryDistributionContractId":{"type":"string","minLength":1,"description":"Contract id of a Canton contract, as a platform read returned it."}},"required":["cantonPartyId","instrumentAdmin","treasuryDistributionContractId"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/features/maturity-redemption/configuration":{"delete":{"tags":["Token features"],"operationId":"v2/token/revokeMaturity","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous mutation result (HTTP 200). The operation settled within the request wait window. `data` names the submission id a caller polls and the contract the choice created.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenRecord"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","tokenFactory":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","complianceContract":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","identityRegistry":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","type":"bond","createdAt":"2026-08-01T09:00:00.000Z","name":"Core holdings","symbol":"ACME25","logoUrl":"https://cdn.example.com/tokens/acme25.png","decimals":18,"basePrice":"100.00","basePriceCurrencyCode":"USD","totalSupply":"1250000.5","totalSupplyExact":"1250000500000000000000000","extensions":["ACCESS_MANAGED"],"implementsERC3643":true,"smartInterface":2,"implementsSMART":true,"identity":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","account":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","contractName":"USD Coin"},"isContract":false,"registered":{"isRegistered":true,"country":"US"},"claims":[{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","name":"Core holdings","signature":"string claim","revoked":false,"issuer":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","account":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}},"values":[{"key":"BASE_CURRENCY","value":"EUR"}],"isTrusted":true}]},"pausable":{"paused":false},"collateral":{"collateral":0,"collateralExact":"1","expiryTimestamp":0},"capped":{"cap":"5000000.00","capExact":"5000000000000000000000000"},"createdBy":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"},"redeemable":{"redeemedAmount":"0","redeemedAmountExact":"0"},"yield":{"schedule":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","denominationAsset":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","symbol":"ETH","decimals":18}}},"bond":{"faceValue":"1000.00","faceValueExact":"1000000000000000000000","isMatured":false,"maturityDate":"2027-03-15T00:00:00.000Z","totalRedeemed":"125000.00","totalRedeemedExact":"125000000000000000000000","denominationAsset":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","symbol":"ETH","decimals":18}},"fund":{"managementFeeBps":0},"accessControl":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","addonModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"addonRegistryModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"admin":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"auditor":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"claimPolicyManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"claimIssuer":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"complianceManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"custodian":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"emergency":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"feedsManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"fundsManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"gasManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"governance":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"identityManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"identityRegistryModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"organisationIdentityManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"saleAdmin":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"supplyManagement":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"systemManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"systemModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"tokenFactoryModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"tokenFactoryRegistryModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"tokenManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"trustedIssuersMetaRegistryModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"addonManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"tradingVenueOperator":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"assetDesigner":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"roleAdmins":[{"id":"0x5208","role":"0x5208","roleFieldName":"addonManager","adminRole":"0x5208","adminFieldName":"addonManager"}]},"complianceModuleConfigs":[{"id":"0x71c7656ec7ab88b098defb751b7401b5f6d8976f2546bcd3c84621e976d8185a91a922ae77ecec30","complianceModule":{"typeId":"address-block-list"}}],"userPermissions":{"roles":{"admin":true,"custodian":false,"emergency":false,"fundsManager":false,"governance":false,"saleAdmin":false,"supplyManagement":false},"actions":{"burn":false,"grantRole":false,"grantRoleByParticipant":false,"revokeRole":false,"revokeRoleByParticipant":false,"mint":false,"pause":false,"addComplianceModule":false,"approve":false,"forcedRecover":false,"freezeAddress":false,"recoverERC20":false,"recoverTokens":false,"redeem":false,"mature":false,"removeComplianceModule":false,"setCap":false,"setComplianceModuleParams":false,"setYieldSchedule":false,"topUpDenominationAsset":false,"withdrawDenominationAsset":false,"transfer":false,"forcedTransfer":false,"unpause":false,"updateCollateral":false,"freezePartial":false,"unfreezePartial":false,"claimIssue":false,"claimRevoke":false,"setMetadata":false,"removeMetadata":false,"setAumFeeBps":false,"setAumFeeRecipient":false,"approveTransfer":false,"revokeTransferApproval":false,"collectAumFee":false,"freezeAumFeeRate":false,"claimYield":false,"setYieldTreasury":false,"matureEarly":false,"setMaturityTreasury":false,"topUpMaturityTreasury":false,"topUpYieldTreasury":false,"topUpBondDenomination":false,"setTransactionFeeRates":false,"setTransactionFeeRecipient":false,"freezeTransactionFeeRates":false,"setExternalTransactionFees":false,"setExternalTransactionFeeRecipient":false,"setExternalTransactionFeeToken":false,"freezeExternalTransactionFees":false,"setTransactionFeeAccountingRates":false,"setTransactionFeeAccountingRecipient":false,"freezeTransactionFeeAccountingRates":false,"reconcileFees":false,"setFeeExemption":false,"delegate":false,"delegateBySig":false,"permit":false,"publishTrigger":false,"disableTrigger":false,"setConversionWindow":false,"convert":false,"forceConvert":false,"addAuthorizedConverter":false,"removeAuthorizedConverter":false,"addHoldReserver":false,"removeHoldReserver":false,"setPrice":false,"featureAttach":false,"featureDetach":false,"featureRotate":false}},"stats":{"balancesCount":42,"totalValueInBaseCurrency":"125000050.00","totalBurned":"1000.00","totalBurnedExact":"1000000000000000000000"}},"meta":{"txHashes":["0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Retires the maturity capability by running the Daml choice `MaturityConfig_Revoke` on the `MaturityConfig` config contract the body names. Canton only: an EVM-family body, which carries no `instrumentAdmin`, is refused with DALP-9326. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement.","summary":"Revoke the maturity capability","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"cantonPartyId":{"type":"string","minLength":1,"description":"Canton party identifier.","examples":["Canton::1220abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123"]},"instrumentAdmin":{"type":"string","minLength":1,"description":"Canton party identifier.","examples":["Canton::1220abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123"]},"maturityConfigContractId":{"type":"string","minLength":1,"description":"Contract id of a Canton contract, as a platform read returned it."}},"required":["cantonPartyId","instrumentAdmin","maturityConfigContractId"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/features/conversion-minter/configuration":{"delete":{"tags":["Token features"],"operationId":"v2/token/revokeConversion","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous mutation result (HTTP 200). The operation settled within the request wait window. `data` names the submission id a caller polls and the contract the choice created.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenRecord"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","tokenFactory":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","complianceContract":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","identityRegistry":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","type":"bond","createdAt":"2026-08-01T09:00:00.000Z","name":"Core holdings","symbol":"ACME25","logoUrl":"https://cdn.example.com/tokens/acme25.png","decimals":18,"basePrice":"100.00","basePriceCurrencyCode":"USD","totalSupply":"1250000.5","totalSupplyExact":"1250000500000000000000000","extensions":["ACCESS_MANAGED"],"implementsERC3643":true,"smartInterface":2,"implementsSMART":true,"identity":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","account":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","contractName":"USD Coin"},"isContract":false,"registered":{"isRegistered":true,"country":"US"},"claims":[{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","name":"Core holdings","signature":"string claim","revoked":false,"issuer":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","account":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}},"values":[{"key":"BASE_CURRENCY","value":"EUR"}],"isTrusted":true}]},"pausable":{"paused":false},"collateral":{"collateral":0,"collateralExact":"1","expiryTimestamp":0},"capped":{"cap":"5000000.00","capExact":"5000000000000000000000000"},"createdBy":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"},"redeemable":{"redeemedAmount":"0","redeemedAmountExact":"0"},"yield":{"schedule":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","denominationAsset":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","symbol":"ETH","decimals":18}}},"bond":{"faceValue":"1000.00","faceValueExact":"1000000000000000000000","isMatured":false,"maturityDate":"2027-03-15T00:00:00.000Z","totalRedeemed":"125000.00","totalRedeemedExact":"125000000000000000000000","denominationAsset":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","symbol":"ETH","decimals":18}},"fund":{"managementFeeBps":0},"accessControl":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","addonModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"addonRegistryModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"admin":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"auditor":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"claimPolicyManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"claimIssuer":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"complianceManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"custodian":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"emergency":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"feedsManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"fundsManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"gasManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"governance":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"identityManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"identityRegistryModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"organisationIdentityManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"saleAdmin":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"supplyManagement":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"systemManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"systemModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"tokenFactoryModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"tokenFactoryRegistryModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"tokenManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"trustedIssuersMetaRegistryModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"addonManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"tradingVenueOperator":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"assetDesigner":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"roleAdmins":[{"id":"0x5208","role":"0x5208","roleFieldName":"addonManager","adminRole":"0x5208","adminFieldName":"addonManager"}]},"complianceModuleConfigs":[{"id":"0x71c7656ec7ab88b098defb751b7401b5f6d8976f2546bcd3c84621e976d8185a91a922ae77ecec30","complianceModule":{"typeId":"address-block-list"}}],"userPermissions":{"roles":{"admin":true,"custodian":false,"emergency":false,"fundsManager":false,"governance":false,"saleAdmin":false,"supplyManagement":false},"actions":{"burn":false,"grantRole":false,"grantRoleByParticipant":false,"revokeRole":false,"revokeRoleByParticipant":false,"mint":false,"pause":false,"addComplianceModule":false,"approve":false,"forcedRecover":false,"freezeAddress":false,"recoverERC20":false,"recoverTokens":false,"redeem":false,"mature":false,"removeComplianceModule":false,"setCap":false,"setComplianceModuleParams":false,"setYieldSchedule":false,"topUpDenominationAsset":false,"withdrawDenominationAsset":false,"transfer":false,"forcedTransfer":false,"unpause":false,"updateCollateral":false,"freezePartial":false,"unfreezePartial":false,"claimIssue":false,"claimRevoke":false,"setMetadata":false,"removeMetadata":false,"setAumFeeBps":false,"setAumFeeRecipient":false,"approveTransfer":false,"revokeTransferApproval":false,"collectAumFee":false,"freezeAumFeeRate":false,"claimYield":false,"setYieldTreasury":false,"matureEarly":false,"setMaturityTreasury":false,"topUpMaturityTreasury":false,"topUpYieldTreasury":false,"topUpBondDenomination":false,"setTransactionFeeRates":false,"setTransactionFeeRecipient":false,"freezeTransactionFeeRates":false,"setExternalTransactionFees":false,"setExternalTransactionFeeRecipient":false,"setExternalTransactionFeeToken":false,"freezeExternalTransactionFees":false,"setTransactionFeeAccountingRates":false,"setTransactionFeeAccountingRecipient":false,"freezeTransactionFeeAccountingRates":false,"reconcileFees":false,"setFeeExemption":false,"delegate":false,"delegateBySig":false,"permit":false,"publishTrigger":false,"disableTrigger":false,"setConversionWindow":false,"convert":false,"forceConvert":false,"addAuthorizedConverter":false,"removeAuthorizedConverter":false,"addHoldReserver":false,"removeHoldReserver":false,"setPrice":false,"featureAttach":false,"featureDetach":false,"featureRotate":false}},"stats":{"balancesCount":42,"totalValueInBaseCurrency":"125000050.00","totalBurned":"1000.00","totalBurnedExact":"1000000000000000000000"}},"meta":{"txHashes":["0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Retires the conversion capability by running the Daml choice `ConversionConfig_Revoke` on the `ConversionConfig` config contract the body names. Canton only: an EVM-family body, which carries no `instrumentAdmin`, is refused with DALP-9326. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement.","summary":"Revoke the conversion capability","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"cantonPartyId":{"type":"string","minLength":1,"description":"Canton party identifier.","examples":["Canton::1220abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123"]},"instrumentAdmin":{"type":"string","minLength":1,"description":"Canton party identifier.","examples":["Canton::1220abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123"]},"conversionConfigContractId":{"type":"string","minLength":1,"description":"Contract id of a Canton contract, as a platform read returned it."}},"required":["cantonPartyId","instrumentAdmin","conversionConfigContractId"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/features/transaction-fee/schedule":{"delete":{"tags":["Token features"],"operationId":"v2/token/revokeTransactionFee","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous mutation result (HTTP 200). The operation settled within the request wait window. `data` names the submission id a caller polls and the contract the choice created.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenRecord"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","tokenFactory":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","complianceContract":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","identityRegistry":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","type":"bond","createdAt":"2026-08-01T09:00:00.000Z","name":"Core holdings","symbol":"ACME25","logoUrl":"https://cdn.example.com/tokens/acme25.png","decimals":18,"basePrice":"100.00","basePriceCurrencyCode":"USD","totalSupply":"1250000.5","totalSupplyExact":"1250000500000000000000000","extensions":["ACCESS_MANAGED"],"implementsERC3643":true,"smartInterface":2,"implementsSMART":true,"identity":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","account":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","contractName":"USD Coin"},"isContract":false,"registered":{"isRegistered":true,"country":"US"},"claims":[{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","name":"Core holdings","signature":"string claim","revoked":false,"issuer":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","account":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}},"values":[{"key":"BASE_CURRENCY","value":"EUR"}],"isTrusted":true}]},"pausable":{"paused":false},"collateral":{"collateral":0,"collateralExact":"1","expiryTimestamp":0},"capped":{"cap":"5000000.00","capExact":"5000000000000000000000000"},"createdBy":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"},"redeemable":{"redeemedAmount":"0","redeemedAmountExact":"0"},"yield":{"schedule":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","denominationAsset":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","symbol":"ETH","decimals":18}}},"bond":{"faceValue":"1000.00","faceValueExact":"1000000000000000000000","isMatured":false,"maturityDate":"2027-03-15T00:00:00.000Z","totalRedeemed":"125000.00","totalRedeemedExact":"125000000000000000000000","denominationAsset":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","symbol":"ETH","decimals":18}},"fund":{"managementFeeBps":0},"accessControl":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","addonModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"addonRegistryModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"admin":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"auditor":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"claimPolicyManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"claimIssuer":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"complianceManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"custodian":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"emergency":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"feedsManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"fundsManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"gasManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"governance":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"identityManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"identityRegistryModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"organisationIdentityManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"saleAdmin":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"supplyManagement":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"systemManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"systemModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"tokenFactoryModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"tokenFactoryRegistryModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"tokenManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"trustedIssuersMetaRegistryModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"addonManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"tradingVenueOperator":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"assetDesigner":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"roleAdmins":[{"id":"0x5208","role":"0x5208","roleFieldName":"addonManager","adminRole":"0x5208","adminFieldName":"addonManager"}]},"complianceModuleConfigs":[{"id":"0x71c7656ec7ab88b098defb751b7401b5f6d8976f2546bcd3c84621e976d8185a91a922ae77ecec30","complianceModule":{"typeId":"address-block-list"}}],"userPermissions":{"roles":{"admin":true,"custodian":false,"emergency":false,"fundsManager":false,"governance":false,"saleAdmin":false,"supplyManagement":false},"actions":{"burn":false,"grantRole":false,"grantRoleByParticipant":false,"revokeRole":false,"revokeRoleByParticipant":false,"mint":false,"pause":false,"addComplianceModule":false,"approve":false,"forcedRecover":false,"freezeAddress":false,"recoverERC20":false,"recoverTokens":false,"redeem":false,"mature":false,"removeComplianceModule":false,"setCap":false,"setComplianceModuleParams":false,"setYieldSchedule":false,"topUpDenominationAsset":false,"withdrawDenominationAsset":false,"transfer":false,"forcedTransfer":false,"unpause":false,"updateCollateral":false,"freezePartial":false,"unfreezePartial":false,"claimIssue":false,"claimRevoke":false,"setMetadata":false,"removeMetadata":false,"setAumFeeBps":false,"setAumFeeRecipient":false,"approveTransfer":false,"revokeTransferApproval":false,"collectAumFee":false,"freezeAumFeeRate":false,"claimYield":false,"setYieldTreasury":false,"matureEarly":false,"setMaturityTreasury":false,"topUpMaturityTreasury":false,"topUpYieldTreasury":false,"topUpBondDenomination":false,"setTransactionFeeRates":false,"setTransactionFeeRecipient":false,"freezeTransactionFeeRates":false,"setExternalTransactionFees":false,"setExternalTransactionFeeRecipient":false,"setExternalTransactionFeeToken":false,"freezeExternalTransactionFees":false,"setTransactionFeeAccountingRates":false,"setTransactionFeeAccountingRecipient":false,"freezeTransactionFeeAccountingRates":false,"reconcileFees":false,"setFeeExemption":false,"delegate":false,"delegateBySig":false,"permit":false,"publishTrigger":false,"disableTrigger":false,"setConversionWindow":false,"convert":false,"forceConvert":false,"addAuthorizedConverter":false,"removeAuthorizedConverter":false,"addHoldReserver":false,"removeHoldReserver":false,"setPrice":false,"featureAttach":false,"featureDetach":false,"featureRotate":false}},"stats":{"balancesCount":42,"totalValueInBaseCurrency":"125000050.00","totalBurned":"1000.00","totalBurnedExact":"1000000000000000000000"}},"meta":{"txHashes":["0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Retires the transaction-fee schedule by running the Daml choice `TransactionFee_Revoke` on the `TransactionFee` config contract the body names. Canton only: an EVM-family body, which carries no `instrumentAdmin`, is refused with DALP-9326. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement.","summary":"Revoke the transaction-fee schedule","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"cantonPartyId":{"type":"string","minLength":1,"description":"Canton party identifier.","examples":["Canton::1220abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123"]},"instrumentAdmin":{"type":"string","minLength":1,"description":"Canton party identifier.","examples":["Canton::1220abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123"]},"transactionFeeContractId":{"type":"string","minLength":1,"description":"Contract id of a Canton contract, as a platform read returned it."}},"required":["cantonPartyId","instrumentAdmin","transactionFeeContractId"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/features/external-transaction-fee/schedule":{"delete":{"tags":["Token features"],"operationId":"v2/token/revokeExternalTransactionFee","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous mutation result (HTTP 200). The operation settled within the request wait window. `data` names the submission id a caller polls and the contract the choice created.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenRecord"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","tokenFactory":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","complianceContract":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","identityRegistry":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","type":"bond","createdAt":"2026-08-01T09:00:00.000Z","name":"Core holdings","symbol":"ACME25","logoUrl":"https://cdn.example.com/tokens/acme25.png","decimals":18,"basePrice":"100.00","basePriceCurrencyCode":"USD","totalSupply":"1250000.5","totalSupplyExact":"1250000500000000000000000","extensions":["ACCESS_MANAGED"],"implementsERC3643":true,"smartInterface":2,"implementsSMART":true,"identity":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","account":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","contractName":"USD Coin"},"isContract":false,"registered":{"isRegistered":true,"country":"US"},"claims":[{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","name":"Core holdings","signature":"string claim","revoked":false,"issuer":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","account":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}},"values":[{"key":"BASE_CURRENCY","value":"EUR"}],"isTrusted":true}]},"pausable":{"paused":false},"collateral":{"collateral":0,"collateralExact":"1","expiryTimestamp":0},"capped":{"cap":"5000000.00","capExact":"5000000000000000000000000"},"createdBy":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"},"redeemable":{"redeemedAmount":"0","redeemedAmountExact":"0"},"yield":{"schedule":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","denominationAsset":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","symbol":"ETH","decimals":18}}},"bond":{"faceValue":"1000.00","faceValueExact":"1000000000000000000000","isMatured":false,"maturityDate":"2027-03-15T00:00:00.000Z","totalRedeemed":"125000.00","totalRedeemedExact":"125000000000000000000000","denominationAsset":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","symbol":"ETH","decimals":18}},"fund":{"managementFeeBps":0},"accessControl":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","addonModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"addonRegistryModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"admin":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"auditor":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"claimPolicyManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"claimIssuer":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"complianceManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"custodian":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"emergency":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"feedsManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"fundsManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"gasManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"governance":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"identityManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"identityRegistryModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"organisationIdentityManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"saleAdmin":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"supplyManagement":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"systemManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"systemModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"tokenFactoryModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"tokenFactoryRegistryModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"tokenManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"trustedIssuersMetaRegistryModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"addonManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"tradingVenueOperator":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"assetDesigner":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"roleAdmins":[{"id":"0x5208","role":"0x5208","roleFieldName":"addonManager","adminRole":"0x5208","adminFieldName":"addonManager"}]},"complianceModuleConfigs":[{"id":"0x71c7656ec7ab88b098defb751b7401b5f6d8976f2546bcd3c84621e976d8185a91a922ae77ecec30","complianceModule":{"typeId":"address-block-list"}}],"userPermissions":{"roles":{"admin":true,"custodian":false,"emergency":false,"fundsManager":false,"governance":false,"saleAdmin":false,"supplyManagement":false},"actions":{"burn":false,"grantRole":false,"grantRoleByParticipant":false,"revokeRole":false,"revokeRoleByParticipant":false,"mint":false,"pause":false,"addComplianceModule":false,"approve":false,"forcedRecover":false,"freezeAddress":false,"recoverERC20":false,"recoverTokens":false,"redeem":false,"mature":false,"removeComplianceModule":false,"setCap":false,"setComplianceModuleParams":false,"setYieldSchedule":false,"topUpDenominationAsset":false,"withdrawDenominationAsset":false,"transfer":false,"forcedTransfer":false,"unpause":false,"updateCollateral":false,"freezePartial":false,"unfreezePartial":false,"claimIssue":false,"claimRevoke":false,"setMetadata":false,"removeMetadata":false,"setAumFeeBps":false,"setAumFeeRecipient":false,"approveTransfer":false,"revokeTransferApproval":false,"collectAumFee":false,"freezeAumFeeRate":false,"claimYield":false,"setYieldTreasury":false,"matureEarly":false,"setMaturityTreasury":false,"topUpMaturityTreasury":false,"topUpYieldTreasury":false,"topUpBondDenomination":false,"setTransactionFeeRates":false,"setTransactionFeeRecipient":false,"freezeTransactionFeeRates":false,"setExternalTransactionFees":false,"setExternalTransactionFeeRecipient":false,"setExternalTransactionFeeToken":false,"freezeExternalTransactionFees":false,"setTransactionFeeAccountingRates":false,"setTransactionFeeAccountingRecipient":false,"freezeTransactionFeeAccountingRates":false,"reconcileFees":false,"setFeeExemption":false,"delegate":false,"delegateBySig":false,"permit":false,"publishTrigger":false,"disableTrigger":false,"setConversionWindow":false,"convert":false,"forceConvert":false,"addAuthorizedConverter":false,"removeAuthorizedConverter":false,"addHoldReserver":false,"removeHoldReserver":false,"setPrice":false,"featureAttach":false,"featureDetach":false,"featureRotate":false}},"stats":{"balancesCount":42,"totalValueInBaseCurrency":"125000050.00","totalBurned":"1000.00","totalBurnedExact":"1000000000000000000000"}},"meta":{"txHashes":["0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Retires the external transaction-fee schedule by running the Daml choice `ExternalTransactionFee_Revoke` on the `ExternalTransactionFee` config contract the body names. Canton only: an EVM-family body, which carries no `instrumentAdmin`, is refused with DALP-9326. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement.","summary":"Revoke the external transaction-fee schedule","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"cantonPartyId":{"type":"string","minLength":1,"description":"Canton party identifier.","examples":["Canton::1220abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123"]},"instrumentAdmin":{"type":"string","minLength":1,"description":"Canton party identifier.","examples":["Canton::1220abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123"]},"externalTransactionFeeContractId":{"type":"string","minLength":1,"description":"Contract id of a Canton contract, as a platform read returned it."}},"required":["cantonPartyId","instrumentAdmin","externalTransactionFeeContractId"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/features/voting-power/configuration":{"delete":{"tags":["Token features"],"operationId":"v2/token/revokeVotingPower","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous mutation result (HTTP 200). The operation settled within the request wait window. `data` names the submission id a caller polls and the contract the choice created.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenRecord"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","tokenFactory":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","complianceContract":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","identityRegistry":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","type":"bond","createdAt":"2026-08-01T09:00:00.000Z","name":"Core holdings","symbol":"ACME25","logoUrl":"https://cdn.example.com/tokens/acme25.png","decimals":18,"basePrice":"100.00","basePriceCurrencyCode":"USD","totalSupply":"1250000.5","totalSupplyExact":"1250000500000000000000000","extensions":["ACCESS_MANAGED"],"implementsERC3643":true,"smartInterface":2,"implementsSMART":true,"identity":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","account":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","contractName":"USD Coin"},"isContract":false,"registered":{"isRegistered":true,"country":"US"},"claims":[{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","name":"Core holdings","signature":"string claim","revoked":false,"issuer":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","account":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}},"values":[{"key":"BASE_CURRENCY","value":"EUR"}],"isTrusted":true}]},"pausable":{"paused":false},"collateral":{"collateral":0,"collateralExact":"1","expiryTimestamp":0},"capped":{"cap":"5000000.00","capExact":"5000000000000000000000000"},"createdBy":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"},"redeemable":{"redeemedAmount":"0","redeemedAmountExact":"0"},"yield":{"schedule":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","denominationAsset":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","symbol":"ETH","decimals":18}}},"bond":{"faceValue":"1000.00","faceValueExact":"1000000000000000000000","isMatured":false,"maturityDate":"2027-03-15T00:00:00.000Z","totalRedeemed":"125000.00","totalRedeemedExact":"125000000000000000000000","denominationAsset":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","symbol":"ETH","decimals":18}},"fund":{"managementFeeBps":0},"accessControl":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","addonModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"addonRegistryModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"admin":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"auditor":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"claimPolicyManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"claimIssuer":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"complianceManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"custodian":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"emergency":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"feedsManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"fundsManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"gasManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"governance":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"identityManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"identityRegistryModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"organisationIdentityManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"saleAdmin":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"supplyManagement":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"systemManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"systemModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"tokenFactoryModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"tokenFactoryRegistryModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"tokenManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"trustedIssuersMetaRegistryModule":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"addonManager":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"tradingVenueOperator":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"assetDesigner":[{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","isContract":false}],"roleAdmins":[{"id":"0x5208","role":"0x5208","roleFieldName":"addonManager","adminRole":"0x5208","adminFieldName":"addonManager"}]},"complianceModuleConfigs":[{"id":"0x71c7656ec7ab88b098defb751b7401b5f6d8976f2546bcd3c84621e976d8185a91a922ae77ecec30","complianceModule":{"typeId":"address-block-list"}}],"userPermissions":{"roles":{"admin":true,"custodian":false,"emergency":false,"fundsManager":false,"governance":false,"saleAdmin":false,"supplyManagement":false},"actions":{"burn":false,"grantRole":false,"grantRoleByParticipant":false,"revokeRole":false,"revokeRoleByParticipant":false,"mint":false,"pause":false,"addComplianceModule":false,"approve":false,"forcedRecover":false,"freezeAddress":false,"recoverERC20":false,"recoverTokens":false,"redeem":false,"mature":false,"removeComplianceModule":false,"setCap":false,"setComplianceModuleParams":false,"setYieldSchedule":false,"topUpDenominationAsset":false,"withdrawDenominationAsset":false,"transfer":false,"forcedTransfer":false,"unpause":false,"updateCollateral":false,"freezePartial":false,"unfreezePartial":false,"claimIssue":false,"claimRevoke":false,"setMetadata":false,"removeMetadata":false,"setAumFeeBps":false,"setAumFeeRecipient":false,"approveTransfer":false,"revokeTransferApproval":false,"collectAumFee":false,"freezeAumFeeRate":false,"claimYield":false,"setYieldTreasury":false,"matureEarly":false,"setMaturityTreasury":false,"topUpMaturityTreasury":false,"topUpYieldTreasury":false,"topUpBondDenomination":false,"setTransactionFeeRates":false,"setTransactionFeeRecipient":false,"freezeTransactionFeeRates":false,"setExternalTransactionFees":false,"setExternalTransactionFeeRecipient":false,"setExternalTransactionFeeToken":false,"freezeExternalTransactionFees":false,"setTransactionFeeAccountingRates":false,"setTransactionFeeAccountingRecipient":false,"freezeTransactionFeeAccountingRates":false,"reconcileFees":false,"setFeeExemption":false,"delegate":false,"delegateBySig":false,"permit":false,"publishTrigger":false,"disableTrigger":false,"setConversionWindow":false,"convert":false,"forceConvert":false,"addAuthorizedConverter":false,"removeAuthorizedConverter":false,"addHoldReserver":false,"removeHoldReserver":false,"setPrice":false,"featureAttach":false,"featureDetach":false,"featureRotate":false}},"stats":{"balancesCount":42,"totalValueInBaseCurrency":"125000050.00","totalBurned":"1000.00","totalBurnedExact":"1000000000000000000000"}},"meta":{"txHashes":["0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"],"transactionId":"01934567-89ab-7def-8123-456789abcdef"},"links":{"self":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Retires the voting-power attestation capability by running the Daml choice `VotingPower_Revoke` on the `VotingPower` config contract the body names. Canton only: an EVM-family body, which carries no `instrumentAdmin`, is refused with DALP-9326. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement.","summary":"Revoke the voting-power capability","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"cantonPartyId":{"type":"string","minLength":1,"description":"Canton party identifier.","examples":["Canton::1220abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123"]},"instrumentAdmin":{"type":"string","minLength":1,"description":"Canton party identifier.","examples":["Canton::1220abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123"]},"votingPowerContractId":{"type":"string","minLength":1,"description":"Contract id of a Canton contract, as a platform read returned it."}},"required":["cantonPartyId","instrumentAdmin","votingPowerContractId"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/conversion-feature-probe":{"get":{"tags":["Token features"],"operationId":"v2/token/conversionFeatureProbe","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"converterAddress","in":"query","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true}],"responses":{"200":{"description":"Live probe result. isConversionFeature is true only when converterAddress exposes the conversion-feature type identifier.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"isConversionFeature":{"type":"boolean"}},"required":["isConversionFeature"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"isConversionFeature":true},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/conversion-feature-probe"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","TOKEN_ACCESS_INTERFACE_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"TOKEN_ACCESS_INTERFACE_UNSUPPORTED","status":422,"message":"The token exposes neither ERC-3643 nor the supported SMART access-control interface.","data":{"id":"DALP-12025","why":"The platform reads the indexed token interface before it resolves roles; this token reports neither interface, so no role check can run. `data.tokenAddress` names the token.","fix":"Use a token that implements ERC-3643 or the supported SMART access-control interface, or correct the indexed token interface metadata, then retry.","retryable":false,"category":"domain","tokenAddress":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.CONVERSION_FEATURE_PROBE_READ_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Checks whether converterAddress exposes the conversion-feature contract interface on the live chain. The probe does not attach a feature and does not change state. tokenAddress selects the token context for authorization. A true result means the address can be used as a conversion feature. A false result means the address is not a conversion feature. The read is live and idempotent. This read serves the EVM family only: a Canton-scoped request is refused with `OperationFamilyUnsupportedError` (422) naming the operation, before any EVM repository runs.","summary":"Probe a conversion feature","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/conversion/triggers":{"get":{"tags":["Token features"],"operationId":"v2/token/conversionTriggers","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"sort","in":"query","schema":{"type":"string"},"required":false},{"name":"page","in":"query","schema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":200},"offset":{"type":"integer","minimum":0}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"filter","in":"query","schema":{"type":"object","properties":{"active":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"publishedAt":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"expiresAt":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"active","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"publishedAt","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"expiresAt","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true}],"responses":{"200":{"description":"One page of indexed conversion triggers for the selected token. Use an active trigger identifier when you convert.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"triggerId":{"type":"string"},"denominationAsset":{"$ref":"#/components/schemas/EvmAddress"},"roundPricePerShareWad":{"anyOf":[{"type":"string"},{"type":"number"}]},"roundPricePerShareWadExact":{"type":"string","pattern":"^[0-9]+$"},"effectivePriceWad":{"anyOf":[{"type":"string"},{"type":"number"}]},"effectivePriceWadExact":{"type":"string","pattern":"^[0-9]+$"},"publishedAt":{"type":"string"},"expiresAt":{"type":"string"},"metadataHash":{"anyOf":[{"type":"string"},{"type":"null"}]},"active":{"type":"boolean"},"disabledAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"totalConversions":{"type":"integer","minimum":0},"totalPrincipalConverted":{"anyOf":[{"type":"string"},{"type":"number"}]},"totalPrincipalConvertedExact":{"type":"string","pattern":"^[0-9]+$"}},"required":["triggerId","denominationAsset","roundPricePerShareWad","roundPricePerShareWadExact","effectivePriceWad","effectivePriceWadExact","publishedAt","expiresAt","metadataHash","active","disabledAt","totalConversions","totalPrincipalConverted","totalPrincipalConvertedExact"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0},"facets":{"type":"object","additionalProperties":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"count":{"type":"integer","minimum":0}},"required":["value","count"],"additionalProperties":false}}}},"required":["total"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"},"first":{"type":"string"},"prev":{"anyOf":[{"type":"string"},{"type":"null"}]},"next":{"anyOf":[{"type":"string"},{"type":"null"}]},"last":{"type":"string"}},"required":["self","first","prev","next","last"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"triggerId":"0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","denominationAsset":"0x5FbDB2315678afecb367f032d93F642f64180aa3","roundPricePerShareWad":"1.000000","roundPricePerShareWadExact":"1000000000000000000","effectivePriceWad":"0.975000","effectivePriceWadExact":"975000000000000000","publishedAt":"2026-03-04T09:12:41.000Z","expiresAt":"2026-12-31T00:00:00.000Z","metadataHash":"0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24","active":true,"disabledAt":null,"totalConversions":3,"totalPrincipalConverted":"75000.00","totalPrincipalConvertedExact":"75000000000000000000000"}],"meta":{"total":1},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/conversion/triggers","first":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/conversion/triggers","prev":null,"next":null,"last":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/conversion/triggers"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","TOKEN_ACCESS_INTERFACE_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"TOKEN_ACCESS_INTERFACE_UNSUPPORTED","status":422,"message":"The token exposes neither ERC-3643 nor the supported SMART access-control interface.","data":{"id":"DALP-12025","why":"The platform reads the indexed token interface before it resolves roles; this token reports neither interface, so no role check can run. `data.tokenAddress` names the token.","fix":"Use a token that implements ERC-3643 or the supported SMART access-control interface, or correct the indexed token interface metadata, then retry.","retryable":false,"category":"domain","tokenAddress":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of indexed conversion triggers published on the selected token. Each row includes the trigger identifier, denomination asset, published price, effective price, expiry, and whether the trigger is still active. Default sort is publication time descending. The list is indexed and idempotent. Use an active trigger identifier when you convert or force-convert. This read serves the EVM family only: a Canton-scoped request is refused with `OperationFamilyUnsupportedError` (422) naming the operation, before any EVM repository runs.","summary":"List conversion triggers","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/conversion/records":{"get":{"tags":["Token features"],"operationId":"v2/token/conversionRecords","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"sort","in":"query","schema":{"type":"string"},"required":false},{"name":"page","in":"query","schema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":200},"offset":{"type":"integer","minimum":0}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"filter","in":"query","schema":{"type":"object","properties":{"holder":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"status":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"initiatedAt":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"finalizedAt":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"isForced":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"holder","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"status","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"initiatedAt","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"finalizedAt","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"isForced","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true}],"responses":{"200":{"description":"One page of indexed conversion records for the selected token. Each row is one conversion of principal into the target asset.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"conversionId":{"type":"string"},"triggerId":{"$ref":"#/components/schemas/EthereumHashEncoded"},"holder":{"$ref":"#/components/schemas/EvmAddress"},"principalConverted":{"anyOf":[{"type":"string"},{"type":"number"}]},"principalConvertedExact":{"type":"string","pattern":"^[0-9]+$"},"interestConvertedWad":{"anyOf":[{"type":"string"},{"type":"number"}]},"interestConvertedWadExact":{"type":"string","pattern":"^[0-9]+$"},"targetReceived":{"anyOf":[{"type":"string"},{"type":"number"}]},"targetReceivedExact":{"type":"string","pattern":"^[0-9]+$"},"effectivePriceUsedWad":{"anyOf":[{"type":"string"},{"type":"number"}]},"effectivePriceUsedWadExact":{"type":"string","pattern":"^[0-9]+$"},"status":{"type":"string","enum":["Initiated","Minted"]},"initiatedAt":{"type":"string"},"finalizedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"isForced":{"type":"boolean"},"forcedBy":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"issuedRecipient":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"amountMinted":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"number"}]},{"type":"null"}]},"amountMintedExact":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"issuedAt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["conversionId","triggerId","holder","principalConverted","principalConvertedExact","interestConvertedWad","interestConvertedWadExact","targetReceived","targetReceivedExact","effectivePriceUsedWad","effectivePriceUsedWadExact","status","initiatedAt","finalizedAt","isForced","forcedBy","issuedRecipient","amountMinted","amountMintedExact","issuedAt"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0},"facets":{"type":"object","additionalProperties":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"count":{"type":"integer","minimum":0}},"required":["value","count"],"additionalProperties":false}}}},"required":["total"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"},"first":{"type":"string"},"prev":{"anyOf":[{"type":"string"},{"type":"null"}]},"next":{"anyOf":[{"type":"string"},{"type":"null"}]},"last":{"type":"string"}},"required":["self","first","prev","next","last"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"conversionId":"42","triggerId":"0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","holder":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","principalConverted":"25000.00","principalConvertedExact":"25000000000000000000000","interestConvertedWad":"125.00","interestConvertedWadExact":"125000000000000000000","targetReceived":"24375.00","targetReceivedExact":"24375000000000000000000","effectivePriceUsedWad":"0.975000","effectivePriceUsedWadExact":"975000000000000000","status":"Minted","initiatedAt":"2026-03-04T09:12:41.000Z","finalizedAt":"2026-03-11T16:02:08.000Z","isForced":false,"forcedBy":null,"issuedRecipient":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","amountMinted":"24375.00","amountMintedExact":"24375000000000000000000","issuedAt":"2026-03-11T16:02:08.000Z"}],"meta":{"total":1},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/conversion/records","first":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/conversion/records","prev":null,"next":null,"last":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/conversion/records"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","TOKEN_ACCESS_INTERFACE_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"TOKEN_ACCESS_INTERFACE_UNSUPPORTED","status":422,"message":"The token exposes neither ERC-3643 nor the supported SMART access-control interface.","data":{"id":"DALP-12025","why":"The platform reads the indexed token interface before it resolves roles; this token reports neither interface, so no role check can run. `data.tokenAddress` names the token.","fix":"Use a token that implements ERC-3643 or the supported SMART access-control interface, or correct the indexed token interface metadata, then retry.","retryable":false,"category":"domain","tokenAddress":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of indexed conversion records for the selected token. Each row is one conversion of principal into the target asset, including holder, amounts, status, and whether the conversion was forced. Default sort is initiation time descending. The list is indexed and idempotent. Follow a row to inspect the trigger or the holder's remaining principal. This read serves the EVM family only: a Canton-scoped request is refused with `OperationFamilyUnsupportedError` (422) naming the operation, before any EVM repository runs.","summary":"List conversion records","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/conversion/events":{"get":{"tags":["Token features"],"operationId":"v2/token/conversionTriggerEvents","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"sort","in":"query","schema":{"type":"string"},"required":false},{"name":"page","in":"query","schema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":200},"offset":{"type":"integer","minimum":0}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"filter","in":"query","schema":{"type":"object","properties":{"kind":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"blockTimestamp":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"kind","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"blockTimestamp","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true}],"responses":{"200":{"description":"One page of indexed trigger lifecycle events for the selected token. This is an audit trail, not the current trigger set.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"triggerId":{"$ref":"#/components/schemas/EthereumHashEncoded"},"kind":{"type":"string","enum":["published","disabled","republished"]},"eventIndex":{"type":"integer","minimum":0},"denominationAsset":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"roundPricePerShareWad":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"number"}]},{"type":"null"}]},"roundPricePerShareWadExact":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"expiresAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"metadataHash":{"anyOf":[{"type":"string"},{"type":"null"}]},"blockNumber":{"type":"string","pattern":"^[0-9]+$"},"blockTimestamp":{"type":"string"},"txHash":{"type":"string"},"logIndex":{"type":"integer","minimum":0}},"required":["triggerId","kind","eventIndex","denominationAsset","roundPricePerShareWad","roundPricePerShareWadExact","expiresAt","metadataHash","blockNumber","blockTimestamp","txHash","logIndex"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0},"facets":{"type":"object","additionalProperties":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"count":{"type":"integer","minimum":0}},"required":["value","count"],"additionalProperties":false}}}},"required":["total"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"},"first":{"type":"string"},"prev":{"anyOf":[{"type":"string"},{"type":"null"}]},"next":{"anyOf":[{"type":"string"},{"type":"null"}]},"last":{"type":"string"}},"required":["self","first","prev","next","last"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"triggerId":"0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","kind":"published","eventIndex":0,"denominationAsset":"0x5FbDB2315678afecb367f032d93F642f64180aa3","roundPricePerShareWad":"1.000000","roundPricePerShareWadExact":"1000000000000000000","expiresAt":"2026-12-31T00:00:00.000Z","metadataHash":"0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24","blockNumber":"21450881","blockTimestamp":"2026-03-04T09:12:41.000Z","txHash":"0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24","logIndex":3}],"meta":{"total":1},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/conversion/events","first":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/conversion/events","prev":null,"next":null,"last":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/conversion/events"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","TOKEN_ACCESS_INTERFACE_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"TOKEN_ACCESS_INTERFACE_UNSUPPORTED","status":422,"message":"The token exposes neither ERC-3643 nor the supported SMART access-control interface.","data":{"id":"DALP-12025","why":"The platform reads the indexed token interface before it resolves roles; this token reports neither interface, so no role check can run. `data.tokenAddress` names the token.","fix":"Use a token that implements ERC-3643 or the supported SMART access-control interface, or correct the indexed token interface metadata, then retry.","retryable":false,"category":"domain","tokenAddress":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of indexed trigger lifecycle events for the selected token. Each row is a publish, disable, or republish observation, with the block, transaction, and trigger identifier. Default sort is block time descending. The list is indexed and idempotent. Use it as an audit trail of trigger changes, not as the current trigger set. This read serves the EVM family only: a Canton-scoped request is refused with `OperationFamilyUnsupportedError` (422) naming the operation, before any EVM repository runs.","summary":"List conversion trigger events","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/conversion/holder-state":{"get":{"tags":["Token features"],"operationId":"v2/token/conversionHolderState","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"holderAddress","in":"query","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true}],"responses":{"200":{"description":"Indexed conversion state for one holder. data is null when the token has no attached conversion feature.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"anyOf":[{"type":"object","properties":{"availablePrincipal":{"anyOf":[{"type":"string"},{"type":"number"}]},"totalConverted":{"anyOf":[{"type":"string"},{"type":"number"}]},"featureAddress":{"$ref":"#/components/schemas/EvmAddress"}},"required":["availablePrincipal","totalConverted","featureAddress"],"additionalProperties":false},{"type":"null"}]},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"availablePrincipal":"25000.00","totalConverted":"5000.00","featureAddress":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9"},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/conversion/holder-state"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","TOKEN_ACCESS_INTERFACE_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"TOKEN_ACCESS_INTERFACE_UNSUPPORTED","status":422,"message":"The token exposes neither ERC-3643 nor the supported SMART access-control interface.","data":{"id":"DALP-12025","why":"The platform reads the indexed token interface before it resolves roles; this token reports neither interface, so no role check can run. `data.tokenAddress` names the token.","fix":"Use a token that implements ERC-3643 or the supported SMART access-control interface, or correct the indexed token interface metadata, then retry.","retryable":false,"category":"domain","tokenAddress":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns indexed conversion state for one holder of the selected token, including remaining convertible principal and the amount already converted. The result is null when the token has no attached conversion feature. The read is indexed and idempotent. Use available principal as the input to a later convert or force-convert call. This read serves the EVM family only: a Canton-scoped request is refused with `OperationFamilyUnsupportedError` (422) naming the operation, before any EVM repository runs.","summary":"Read conversion holder state","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/conversion/converts-to":{"get":{"tags":["Token features"],"operationId":"v2/token/convertsTo","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"sort","in":"query","schema":{"type":"string"},"required":false},{"name":"page","in":"query","schema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":200},"offset":{"type":"integer","minimum":0}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"filter","in":"query","schema":{"type":"object","properties":{"isAuthorized":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"authorizedAt":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"isAuthorized","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"authorizedAt","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true}],"responses":{"200":{"description":"One page of tokens the selected token is authorized to convert into. An authorized target is required before a holder can convert.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"targetTokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"conversionFeatureAddress":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"minterFeatureAddress":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"isAuthorized":{"type":"boolean"},"authorizedAt":{"type":"string"},"revokedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"type":"string"}},"required":["targetTokenAddress","conversionFeatureAddress","minterFeatureAddress","isAuthorized","authorizedAt","revokedAt","updatedAt"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0},"facets":{"type":"object","additionalProperties":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"count":{"type":"integer","minimum":0}},"required":["value","count"],"additionalProperties":false}}}},"required":["total"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"},"first":{"type":"string"},"prev":{"anyOf":[{"type":"string"},{"type":"null"}]},"next":{"anyOf":[{"type":"string"},{"type":"null"}]},"last":{"type":"string"}},"required":["self","first","prev","next","last"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"targetTokenAddress":"0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0","conversionFeatureAddress":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","minterFeatureAddress":"0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9","isAuthorized":true,"authorizedAt":"2026-03-04T09:12:41.000Z","revokedAt":null,"updatedAt":"2026-03-04T09:12:41.000Z"}],"meta":{"total":1},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/conversion/converts-to","first":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/conversion/converts-to","prev":null,"next":null,"last":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/conversion/converts-to"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","TOKEN_ACCESS_INTERFACE_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"TOKEN_ACCESS_INTERFACE_UNSUPPORTED","status":422,"message":"The token exposes neither ERC-3643 nor the supported SMART access-control interface.","data":{"id":"DALP-12025","why":"The platform reads the indexed token interface before it resolves roles; this token reports neither interface, so no role check can run. `data.tokenAddress` names the token.","fix":"Use a token that implements ERC-3643 or the supported SMART access-control interface, or correct the indexed token interface metadata, then retry.","retryable":false,"category":"domain","tokenAddress":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of tokens that the selected token is authorized to convert into. Each row includes the target token, the conversion and minter feature addresses when known, and whether the authorization is still active. Default sort is authorization time descending. The list is indexed and idempotent. An authorized target is required before a holder can convert. This read serves the EVM family only: a Canton-scoped request is refused with `OperationFamilyUnsupportedError` (422) naming the operation, before any EVM repository runs.","summary":"List conversion targets","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/conversion/converted-from":{"get":{"tags":["Token features"],"operationId":"v2/token/convertedFrom","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"sort","in":"query","schema":{"type":"string"},"required":false},{"name":"page","in":"query","schema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":200},"offset":{"type":"integer","minimum":0}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"filter","in":"query","schema":{"type":"object","properties":{"isAuthorized":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"authorizedAt":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"isAuthorized","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"authorizedAt","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true}],"responses":{"200":{"description":"One page of tokens authorized to convert into the selected token. Use it to see which assets can mint this token through conversion.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"sourceTokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"conversionFeatureAddress":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"minterFeatureAddress":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"isAuthorized":{"type":"boolean"},"authorizedAt":{"type":"string"},"revokedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"updatedAt":{"type":"string"}},"required":["sourceTokenAddress","conversionFeatureAddress","minterFeatureAddress","isAuthorized","authorizedAt","revokedAt","updatedAt"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0},"facets":{"type":"object","additionalProperties":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"count":{"type":"integer","minimum":0}},"required":["value","count"],"additionalProperties":false}}}},"required":["total"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"},"first":{"type":"string"},"prev":{"anyOf":[{"type":"string"},{"type":"null"}]},"next":{"anyOf":[{"type":"string"},{"type":"null"}]},"last":{"type":"string"}},"required":["self","first","prev","next","last"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"sourceTokenAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","conversionFeatureAddress":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","minterFeatureAddress":"0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9","isAuthorized":true,"authorizedAt":"2026-03-04T09:12:41.000Z","revokedAt":null,"updatedAt":"2026-03-04T09:12:41.000Z"}],"meta":{"total":1},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/conversion/converted-from","first":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/conversion/converted-from","prev":null,"next":null,"last":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/conversion/converted-from"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","TOKEN_ACCESS_INTERFACE_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"TOKEN_ACCESS_INTERFACE_UNSUPPORTED","status":422,"message":"The token exposes neither ERC-3643 nor the supported SMART access-control interface.","data":{"id":"DALP-12025","why":"The platform reads the indexed token interface before it resolves roles; this token reports neither interface, so no role check can run. `data.tokenAddress` names the token.","fix":"Use a token that implements ERC-3643 or the supported SMART access-control interface, or correct the indexed token interface metadata, then retry.","retryable":false,"category":"domain","tokenAddress":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of tokens that are authorized to convert into the selected token. Each row includes the source token, the conversion and minter feature addresses when known, and whether the authorization is still active. Default sort is authorization time descending. The list is indexed and idempotent. Use it to see which assets can mint this token through conversion. This read serves the EVM family only: a Canton-scoped request is refused with `OperationFamilyUnsupportedError` (422) naming the operation, before any EVM repository runs.","summary":"List conversion sources","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/features/conversion-minter/conversions":{"post":{"tags":["Token features"],"operationId":"v2/token/convert","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous mutation result (HTTP 200). The write settled within the request wait window. `data` is the token an EVM write moved, or the Canton operation a Canton write submitted.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenRecord"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","tokenFactory":"0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0","complianceContract":"0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9","identityRegistry":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","type":"bond","createdAt":"2026-03-04T09:12:41.000Z","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"basePrice":"100.00","basePriceCurrencyCode":"EUR","totalSupply":"2500000.00","totalSupplyExact":"2500000000000000000000000","extensions":["ACCESS_MANAGED","BOND","CAPPED","REDEEMABLE"],"implementsERC3643":true,"smartInterface":2,"implementsSMART":true,"pausable":{"paused":false},"collateral":null,"capped":{"cap":"5000000.00","capExact":"5000000000000000000000000"},"createdBy":{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"},"redeemable":{"redeemedAmount":"0","redeemedAmountExact":"0"},"yield":null,"bond":{"faceValue":"100.00","faceValueExact":"100000000000000000000","isMatured":false,"maturityDate":"2029-03-04T00:00:00.000Z","totalRedeemed":"0","totalRedeemedExact":"0","denominationAsset":{"id":"0x5FbDB2315678afecb367f032d93F642f64180aa3","symbol":"EURC","decimals":6}},"fund":null,"complianceModuleConfigs":[],"stats":{"balancesCount":12,"totalValueInBaseCurrency":"250000000.00","totalBurned":"0","totalBurnedExact":"0"}},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"]},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Converts the caller's tokens into the configured target according to the named active trigger. Read the holder's conversion state first to choose principalAmount. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement. After settlement, list conversion records or reread holder state. A Canton body runs `ConversionConfig_Convert` against the `ConversionConfig` contract named by `conversionConfigContractId`.","summary":"Convert tokens","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"principalAmount":{"type":"string","pattern":"^[0-9]+$"},"triggerId":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"required":["principalAmount","triggerId"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/features/conversion-minter/forced-conversions":{"post":{"tags":["Token features"],"operationId":"v2/token/forceConvert","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled token after the feature write completed within the wait window. data is the indexed token. meta.txHashes are the submitted transactions. links.self is the token URL.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenRecord"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","tokenFactory":"0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0","complianceContract":"0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9","identityRegistry":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","type":"bond","createdAt":"2026-03-04T09:12:41.000Z","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"basePrice":"100.00","basePriceCurrencyCode":"EUR","totalSupply":"2500000.00","totalSupplyExact":"2500000000000000000000000","extensions":["ACCESS_MANAGED","BOND","CAPPED","REDEEMABLE"],"implementsERC3643":true,"smartInterface":2,"implementsSMART":true,"pausable":{"paused":false},"collateral":null,"capped":{"cap":"5000000.00","capExact":"5000000000000000000000000"},"createdBy":{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"},"redeemable":{"redeemedAmount":"0","redeemedAmountExact":"0"},"yield":null,"bond":{"faceValue":"100.00","faceValueExact":"100000000000000000000","isMatured":false,"maturityDate":"2029-03-04T00:00:00.000Z","totalRedeemed":"0","totalRedeemedExact":"0","denominationAsset":{"id":"0x5FbDB2315678afecb367f032d93F642f64180aa3","symbol":"EURC","decimals":6}},"fund":null,"complianceModuleConfigs":[],"stats":{"balancesCount":12,"totalValueInBaseCurrency":"250000000.00","totalBurned":"0","totalBurnedExact":"0"}},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"]},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Converts tokens from a named holder without that holder's signature. The caller must be an authorized converter on the attached conversion-minter feature. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement. After settlement, list conversion records to confirm the forced conversion.","summary":"Force-convert tokens","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"holder":{"$ref":"#/components/schemas/EvmAddress"},"principalAmount":{"type":"string","pattern":"^[0-9]+$"},"triggerId":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"required":["holder","principalAmount","triggerId"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/features/conversion-minter/triggers":{"post":{"tags":["Token features"],"operationId":"v2/token/publishTrigger","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled token after the feature write completed within the wait window. data is the indexed token. meta.txHashes are the submitted transactions. links.self is the token URL.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenRecord"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","tokenFactory":"0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0","complianceContract":"0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9","identityRegistry":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","type":"bond","createdAt":"2026-03-04T09:12:41.000Z","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"basePrice":"100.00","basePriceCurrencyCode":"EUR","totalSupply":"2500000.00","totalSupplyExact":"2500000000000000000000000","extensions":["ACCESS_MANAGED","BOND","CAPPED","REDEEMABLE"],"implementsERC3643":true,"smartInterface":2,"implementsSMART":true,"pausable":{"paused":false},"collateral":null,"capped":{"cap":"5000000.00","capExact":"5000000000000000000000000"},"createdBy":{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"},"redeemable":{"redeemedAmount":"0","redeemedAmountExact":"0"},"yield":null,"bond":{"faceValue":"100.00","faceValueExact":"100000000000000000000","isMatured":false,"maturityDate":"2029-03-04T00:00:00.000Z","totalRedeemed":"0","totalRedeemedExact":"0","denominationAsset":{"id":"0x5FbDB2315678afecb367f032d93F642f64180aa3","symbol":"EURC","decimals":6}},"fund":null,"complianceModuleConfigs":[],"stats":{"balancesCount":12,"totalValueInBaseCurrency":"250000000.00","totalBurned":"0","totalBurnedExact":"0"}},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"]},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_CREATE_DENOMINATION_ASSET_NOT_ERC20","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","ERC20_METADATA_PROBE_UNAVAILABLE","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.erc20_metadata.PROBE_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Publishes a conversion trigger on the attached conversion-minter feature. Holders convert against an active trigger. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement. After settlement, list conversion triggers to confirm the trigger is active, then convert or force-convert.","summary":"Publish a conversion trigger","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"triggerId":{"$ref":"#/components/schemas/EthereumHashEncoded"},"denominationAsset":{"$ref":"#/components/schemas/EvmAddress"},"roundPricePerShareWad":{"type":"string","pattern":"^[0-9]+$"},"expiresAt":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"number","minimum":0},{"type":"string"}]},"metadataHash":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"required":["triggerId","denominationAsset","roundPricePerShareWad","metadataHash"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/features/conversion-minter/trigger-disablements":{"post":{"tags":["Token features"],"operationId":"v2/token/disableTrigger","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled token after the feature write completed within the wait window. data is the indexed token. meta.txHashes are the submitted transactions. links.self is the token URL.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenRecord"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","tokenFactory":"0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0","complianceContract":"0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9","identityRegistry":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","type":"bond","createdAt":"2026-03-04T09:12:41.000Z","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"basePrice":"100.00","basePriceCurrencyCode":"EUR","totalSupply":"2500000.00","totalSupplyExact":"2500000000000000000000000","extensions":["ACCESS_MANAGED","BOND","CAPPED","REDEEMABLE"],"implementsERC3643":true,"smartInterface":2,"implementsSMART":true,"pausable":{"paused":false},"collateral":null,"capped":{"cap":"5000000.00","capExact":"5000000000000000000000000"},"createdBy":{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"},"redeemable":{"redeemedAmount":"0","redeemedAmountExact":"0"},"yield":null,"bond":{"faceValue":"100.00","faceValueExact":"100000000000000000000","isMatured":false,"maturityDate":"2029-03-04T00:00:00.000Z","totalRedeemed":"0","totalRedeemedExact":"0","denominationAsset":{"id":"0x5FbDB2315678afecb367f032d93F642f64180aa3","symbol":"EURC","decimals":6}},"fund":null,"complianceModuleConfigs":[],"stats":{"balancesCount":12,"totalValueInBaseCurrency":"250000000.00","totalBurned":"0","totalBurnedExact":"0"}},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"]},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Disables a previously published conversion trigger on the attached conversion-minter feature. Later conversions against that trigger fail. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement. After settlement, list conversion triggers to confirm the trigger is inactive.","summary":"Disable a conversion trigger","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"triggerId":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"required":["triggerId"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/features/conversion-minter/authorized-converters":{"post":{"tags":["Token features"],"operationId":"v2/token/addAuthorizedConverter","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled token after the feature write completed within the wait window. data is the indexed token. meta.txHashes are the submitted transactions. links.self is the token URL.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenRecord"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","tokenFactory":"0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0","complianceContract":"0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9","identityRegistry":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","type":"bond","createdAt":"2026-03-04T09:12:41.000Z","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"basePrice":"100.00","basePriceCurrencyCode":"EUR","totalSupply":"2500000.00","totalSupplyExact":"2500000000000000000000000","extensions":["ACCESS_MANAGED","BOND","CAPPED","REDEEMABLE"],"implementsERC3643":true,"smartInterface":2,"implementsSMART":true,"pausable":{"paused":false},"collateral":null,"capped":{"cap":"5000000.00","capExact":"5000000000000000000000000"},"createdBy":{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"},"redeemable":{"redeemedAmount":"0","redeemedAmountExact":"0"},"yield":null,"bond":{"faceValue":"100.00","faceValueExact":"100000000000000000000","isMatured":false,"maturityDate":"2029-03-04T00:00:00.000Z","totalRedeemed":"0","totalRedeemedExact":"0","denominationAsset":{"id":"0x5FbDB2315678afecb367f032d93F642f64180aa3","symbol":"EURC","decimals":6}},"fund":null,"complianceModuleConfigs":[],"stats":{"balancesCount":12,"totalValueInBaseCurrency":"250000000.00","totalBurned":"0","totalBurnedExact":"0"}},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"]},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Adds an address that may force-convert this token on the attached conversion-minter feature. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement. After settlement, that address can call force-convert.","summary":"Add an authorized converter","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"converter":{"$ref":"#/components/schemas/EvmAddress"}},"required":["converter"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"},"delete":{"tags":["Token features"],"operationId":"v2/token/removeAuthorizedConverter","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled token after the feature write completed within the wait window. data is the indexed token. meta.txHashes are the submitted transactions. links.self is the token URL.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenRecord"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","tokenFactory":"0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0","complianceContract":"0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9","identityRegistry":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","type":"bond","createdAt":"2026-03-04T09:12:41.000Z","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"basePrice":"100.00","basePriceCurrencyCode":"EUR","totalSupply":"2500000.00","totalSupplyExact":"2500000000000000000000000","extensions":["ACCESS_MANAGED","BOND","CAPPED","REDEEMABLE"],"implementsERC3643":true,"smartInterface":2,"implementsSMART":true,"pausable":{"paused":false},"collateral":null,"capped":{"cap":"5000000.00","capExact":"5000000000000000000000000"},"createdBy":{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"},"redeemable":{"redeemedAmount":"0","redeemedAmountExact":"0"},"yield":null,"bond":{"faceValue":"100.00","faceValueExact":"100000000000000000000","isMatured":false,"maturityDate":"2029-03-04T00:00:00.000Z","totalRedeemed":"0","totalRedeemedExact":"0","denominationAsset":{"id":"0x5FbDB2315678afecb367f032d93F642f64180aa3","symbol":"EURC","decimals":6}},"fund":null,"complianceModuleConfigs":[],"stats":{"balancesCount":12,"totalValueInBaseCurrency":"250000000.00","totalBurned":"0","totalBurnedExact":"0"}},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"]},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Removes an address from the authorized-converter set on the attached conversion-minter feature. Later force-convert calls from that address fail. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement.","summary":"Remove an authorized converter","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"converter":{"$ref":"#/components/schemas/EvmAddress"}},"required":["converter"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/aum-fee/accrued-estimate":{"get":{"tags":["Fees and pricing"],"operationId":"v2/token/aumFeeAccruedEstimate","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true}],"responses":{"200":{"description":"Indexed AUM-fee accrual estimate. data is null when the token has no attached AUM-fee feature. Use measuredAt to extrapolate between refetches.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"anyOf":[{"type":"object","properties":{"accruedEstimate":{"$ref":"#/components/schemas/BigDecimal"},"feeBps":{"type":"integer","minimum":0,"maximum":10000},"lastCollectionTime":{"type":"string"},"measuredAt":{"type":"string"},"featureAddress":{"$ref":"#/components/schemas/EvmAddress"}},"required":["accruedEstimate","feeBps","lastCollectionTime","measuredAt","featureAddress"],"additionalProperties":false},{"type":"null"}]},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"accruedEstimate":"125.50","feeBps":200,"lastCollectionTime":"2026-03-04T09:12:41.000Z","measuredAt":"2026-03-11T16:05:12.000Z","featureAddress":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9"},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/aum-fee/accrued-estimate"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","TOKEN_ACCESS_INTERFACE_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"TOKEN_ACCESS_INTERFACE_UNSUPPORTED","status":422,"message":"The token exposes neither ERC-3643 nor the supported SMART access-control interface.","data":{"id":"DALP-12025","why":"The platform reads the indexed token interface before it resolves roles; this token reports neither interface, so no role check can run. `data.tokenAddress` names the token.","fix":"Use a token that implements ERC-3643 or the supported SMART access-control interface, or correct the indexed token interface metadata, then retry.","retryable":false,"category":"domain","tokenAddress":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the indexed assets-under-management fee accrual estimate for the selected token. The result is null when the token has no attached AUM-fee feature. The estimate is computed from the indexed accumulator, not a live chain read, and is not a collection. The read is idempotent. Use measuredAt to extrapolate between refetches, then collect fees when the estimate is ready. This read serves the EVM family only: a Canton-scoped request is refused with `OperationFamilyUnsupportedError` (422) naming the operation, before any EVM repository runs.","summary":"Estimate accrued AUM fees","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/features/aum-fee/collections":{"post":{"tags":["Fees and pricing"],"operationId":"v2/token/collectAumFee","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous mutation result (HTTP 200). The write settled within the request wait window. `data` is the token an EVM write moved, or the Canton operation a Canton write submitted.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenRecord"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","tokenFactory":"0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0","complianceContract":"0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9","identityRegistry":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","type":"bond","createdAt":"2026-03-04T09:12:41.000Z","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"basePrice":"100.00","basePriceCurrencyCode":"EUR","totalSupply":"2500000.00","totalSupplyExact":"2500000000000000000000000","extensions":["ACCESS_MANAGED","BOND","CAPPED","REDEEMABLE"],"implementsERC3643":true,"smartInterface":2,"implementsSMART":true,"pausable":{"paused":false},"collateral":null,"capped":{"cap":"5000000.00","capExact":"5000000000000000000000000"},"createdBy":{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"},"redeemable":{"redeemedAmount":"0","redeemedAmountExact":"0"},"yield":null,"bond":{"faceValue":"100.00","faceValueExact":"100000000000000000000","isMatured":false,"maturityDate":"2029-03-04T00:00:00.000Z","totalRedeemed":"0","totalRedeemedExact":"0","denominationAsset":{"id":"0x5FbDB2315678afecb367f032d93F642f64180aa3","symbol":"EURC","decimals":6}},"fund":null,"complianceModuleConfigs":[],"stats":{"balancesCount":12,"totalValueInBaseCurrency":"250000000.00","totalBurned":"0","totalBurnedExact":"0"}},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"]},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Collects AUM fees accrued since the last collection on the attached AUM-fee feature and pays them to the configured recipient. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement. Read the accrued-fee estimate first to decide whether a collection is due. A Canton body runs `AumFee_Collect` against the attached `AumFee` contract named by `aumFeeContractId`.","summary":"Collect accrued AUM fees","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]}},"additionalProperties":false}}},"required":false},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/features/aum-fee/rate-freezes":{"post":{"tags":["Fees and pricing"],"operationId":"v2/token/freezeAumFeeRate","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous mutation result (HTTP 200). The write settled within the request wait window. `data` is the token an EVM write moved, or the Canton operation a Canton write submitted.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenRecord"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","tokenFactory":"0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0","complianceContract":"0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9","identityRegistry":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","type":"bond","createdAt":"2026-03-04T09:12:41.000Z","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"basePrice":"100.00","basePriceCurrencyCode":"EUR","totalSupply":"2500000.00","totalSupplyExact":"2500000000000000000000000","extensions":["ACCESS_MANAGED","BOND","CAPPED","REDEEMABLE"],"implementsERC3643":true,"smartInterface":2,"implementsSMART":true,"pausable":{"paused":false},"collateral":null,"capped":{"cap":"5000000.00","capExact":"5000000000000000000000000"},"createdBy":{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"},"redeemable":{"redeemedAmount":"0","redeemedAmountExact":"0"},"yield":null,"bond":{"faceValue":"100.00","faceValueExact":"100000000000000000000","isMatured":false,"maturityDate":"2029-03-04T00:00:00.000Z","totalRedeemed":"0","totalRedeemedExact":"0","denominationAsset":{"id":"0x5FbDB2315678afecb367f032d93F642f64180aa3","symbol":"EURC","decimals":6}},"fund":null,"complianceModuleConfigs":[],"stats":{"balancesCount":12,"totalValueInBaseCurrency":"250000000.00","totalBurned":"0","totalBurnedExact":"0"}},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"]},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Permanently freezes the AUM fee rate on the attached AUM-fee feature so later rate changes fail. This cannot be undone. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement. After settlement, only the recipient and collection operations remain available. On Canton the attached `AumFee` capability is retired by `AumFee_Revoke`, which no rate can undo.","summary":"Freeze the AUM fee rate","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]}},"additionalProperties":false}}},"required":false},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/features/transaction-fee/rate-freezes":{"post":{"tags":["Fees and pricing"],"operationId":"v2/token/freezeTransactionFeeRates","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled token after the feature write completed within the wait window. data is the indexed token. meta.txHashes are the submitted transactions. links.self is the token URL.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenRecord"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","tokenFactory":"0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0","complianceContract":"0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9","identityRegistry":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","type":"bond","createdAt":"2026-03-04T09:12:41.000Z","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"basePrice":"100.00","basePriceCurrencyCode":"EUR","totalSupply":"2500000.00","totalSupplyExact":"2500000000000000000000000","extensions":["ACCESS_MANAGED","BOND","CAPPED","REDEEMABLE"],"implementsERC3643":true,"smartInterface":2,"implementsSMART":true,"pausable":{"paused":false},"collateral":null,"capped":{"cap":"5000000.00","capExact":"5000000000000000000000000"},"createdBy":{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"},"redeemable":{"redeemedAmount":"0","redeemedAmountExact":"0"},"yield":null,"bond":{"faceValue":"100.00","faceValueExact":"100000000000000000000","isMatured":false,"maturityDate":"2029-03-04T00:00:00.000Z","totalRedeemed":"0","totalRedeemedExact":"0","denominationAsset":{"id":"0x5FbDB2315678afecb367f032d93F642f64180aa3","symbol":"EURC","decimals":6}},"fund":null,"complianceModuleConfigs":[],"stats":{"balancesCount":12,"totalValueInBaseCurrency":"250000000.00","totalBurned":"0","totalBurnedExact":"0"}},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"]},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS","TOKEN_FEE_RATES_FROZEN"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Permanently freezes mint, burn, and transfer fee rates on the attached transaction-fee feature so later rate changes fail. This cannot be undone. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement.","summary":"Freeze transaction-fee rates","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]}},"additionalProperties":false}}},"required":false},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/features/external-transaction-fee/rate-freezes":{"post":{"tags":["Fees and pricing"],"operationId":"v2/token/freezeExternalTransactionFees","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled token after the feature write completed within the wait window. data is the indexed token. meta.txHashes are the submitted transactions. links.self is the token URL.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenRecord"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","tokenFactory":"0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0","complianceContract":"0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9","identityRegistry":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","type":"bond","createdAt":"2026-03-04T09:12:41.000Z","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"basePrice":"100.00","basePriceCurrencyCode":"EUR","totalSupply":"2500000.00","totalSupplyExact":"2500000000000000000000000","extensions":["ACCESS_MANAGED","BOND","CAPPED","REDEEMABLE"],"implementsERC3643":true,"smartInterface":2,"implementsSMART":true,"pausable":{"paused":false},"collateral":null,"capped":{"cap":"5000000.00","capExact":"5000000000000000000000000"},"createdBy":{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"},"redeemable":{"redeemedAmount":"0","redeemedAmountExact":"0"},"yield":null,"bond":{"faceValue":"100.00","faceValueExact":"100000000000000000000","isMatured":false,"maturityDate":"2029-03-04T00:00:00.000Z","totalRedeemed":"0","totalRedeemedExact":"0","denominationAsset":{"id":"0x5FbDB2315678afecb367f032d93F642f64180aa3","symbol":"EURC","decimals":6}},"fund":null,"complianceModuleConfigs":[],"stats":{"balancesCount":12,"totalValueInBaseCurrency":"250000000.00","totalBurned":"0","totalBurnedExact":"0"}},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"]},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Permanently freezes external transaction-fee amounts on the attached feature so later amount changes fail. This cannot be undone. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement.","summary":"Freeze external transaction fees","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]}},"additionalProperties":false}}},"required":false},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/features/transaction-fee-accounting/reconciliations":{"post":{"tags":["Fees and pricing"],"operationId":"v2/token/reconcileFees","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous mutation result (HTTP 200). The write settled within the request wait window. `data` is the token an EVM write moved, or the Canton operation a Canton write submitted.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenRecord"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","tokenFactory":"0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0","complianceContract":"0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9","identityRegistry":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","type":"bond","createdAt":"2026-03-04T09:12:41.000Z","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"basePrice":"100.00","basePriceCurrencyCode":"EUR","totalSupply":"2500000.00","totalSupplyExact":"2500000000000000000000000","extensions":["ACCESS_MANAGED","BOND","CAPPED","REDEEMABLE"],"implementsERC3643":true,"smartInterface":2,"implementsSMART":true,"pausable":{"paused":false},"collateral":null,"capped":{"cap":"5000000.00","capExact":"5000000000000000000000000"},"createdBy":{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"},"redeemable":{"redeemedAmount":"0","redeemedAmountExact":"0"},"yield":null,"bond":{"faceValue":"100.00","faceValueExact":"100000000000000000000","isMatured":false,"maturityDate":"2029-03-04T00:00:00.000Z","totalRedeemed":"0","totalRedeemedExact":"0","denominationAsset":{"id":"0x5FbDB2315678afecb367f032d93F642f64180aa3","symbol":"EURC","decimals":6}},"fund":null,"complianceModuleConfigs":[],"stats":{"balancesCount":12,"totalValueInBaseCurrency":"250000000.00","totalBurned":"0","totalBurnedExact":"0"}},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"]},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","INPUT_VALIDATION_FAILED","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"INPUT_VALIDATION_FAILED","status":422,"message":"Input validation failed","data":{"id":"DALP-0080","why":"The request body or parameters did not match the API contract.","fix":"Check the request fields against the API documentation and retry with valid values.","retryable":false,"category":"client","errors":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Settles accrued transaction-fee accounting against collected fees on the attached transaction-fee-accounting feature and pays the recipient. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement. A Canton body runs `FeeAccounting_Record` against the `FeeAccounting` contract named by `feeAccountingContractId`.","summary":"Reconcile accrued transaction fees","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]}},"additionalProperties":false}}},"required":false},"x-dalp-auth":"session-or-api-key"},"get":{"tags":["Fees and pricing"],"operationId":"v2/token/feeReconciliations","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"sort","in":"query","schema":{"type":"string"},"required":false},{"name":"page","in":"query","schema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":200},"offset":{"type":"integer","minimum":0}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"filter","in":"query","schema":{"type":"object","properties":{"periodEnd":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"blockNumber":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"caller":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"recipient":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"amount":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"periodEnd","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"blockNumber","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"caller","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"recipient","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"amount","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true}],"responses":{"200":{"description":"One page of indexed fee-accounting reconciliations. Each row is a settled transfer of accrued fees for one period. Default sort is period end descending.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"family":{"type":"string","enum":["evm"]},"id":{"type":"string"},"caller":{"$ref":"#/components/schemas/EvmAddress"},"recipient":{"$ref":"#/components/schemas/EvmAddress"},"periodEnd":{"type":"string"},"amount":{"$ref":"#/components/schemas/BigDecimal"},"amountExact":{"type":"string","pattern":"^[0-9]+$"},"blockNumber":{"type":"string","pattern":"^[0-9]+$"},"blockTimestamp":{"type":"string"},"txHash":{"$ref":"#/components/schemas/EthereumHashEncoded"},"logIndex":{"type":"integer","minimum":0}},"required":["family","id","caller","recipient","periodEnd","amount","amountExact","blockNumber","blockTimestamp","txHash","logIndex"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0},"facets":{"type":"object","additionalProperties":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"count":{"type":"integer","minimum":0}},"required":["value","count"],"additionalProperties":false}}}},"required":["total"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"},"first":{"type":"string"},"prev":{"anyOf":[{"type":"string"},{"type":"null"}]},"next":{"anyOf":[{"type":"string"},{"type":"null"}]},"last":{"type":"string"}},"required":["self","first","prev","next","last"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"family":"evm","id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F-21450881-7","caller":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30","recipient":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30","periodEnd":"2026-03-11T16:02:08.000Z","amount":"37.50","amountExact":"37500000000000000000","blockNumber":"21450881","blockTimestamp":"2026-03-11T16:02:08.000Z","txHash":"0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24","logIndex":7}],"meta":{"total":1},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/features/transaction-fee-accounting/reconciliations?sort=-periodEnd&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/features/transaction-fee-accounting/reconciliations?sort=-periodEnd&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/features/transaction-fee-accounting/reconciliations?sort=-periodEnd&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","TOKEN_LIST_METADATA_KEY_IDENTIFIER_INELIGIBLE","TOKEN_LIST_METADATA_KEY_NOT_BUCKETABLE","TOKEN_LIST_METADATA_KEY_UNKNOWN","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_FEATURES_UNAVAILABLE","TOKEN_READ_DEPENDENCY_FAILED","core.database.QUERY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"core.database.QUERY_FAILED","status":503,"message":"The database is temporarily unavailable","data":{"id":"DALP-12148","why":"The platform could not complete a database query required for this request.","fix":"Retry the request. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of indexed fee-accounting reconciliation records for the selected token. Each row is a settled transfer of accrued fees to a recipient for one period. Page and filter with the shared collection parameters. Default sort is period end descending.","summary":"List fee reconciliations","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/features/transaction-fee-accounting/rate-freezes":{"post":{"tags":["Fees and pricing"],"operationId":"v2/token/freezeTransactionFeeAccountingRates","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled token after the feature write completed within the wait window. data is the indexed token. meta.txHashes are the submitted transactions. links.self is the token URL.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenRecord"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","tokenFactory":"0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0","complianceContract":"0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9","identityRegistry":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","type":"bond","createdAt":"2026-03-04T09:12:41.000Z","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"basePrice":"100.00","basePriceCurrencyCode":"EUR","totalSupply":"2500000.00","totalSupplyExact":"2500000000000000000000000","extensions":["ACCESS_MANAGED","BOND","CAPPED","REDEEMABLE"],"implementsERC3643":true,"smartInterface":2,"implementsSMART":true,"pausable":{"paused":false},"collateral":null,"capped":{"cap":"5000000.00","capExact":"5000000000000000000000000"},"createdBy":{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"},"redeemable":{"redeemedAmount":"0","redeemedAmountExact":"0"},"yield":null,"bond":{"faceValue":"100.00","faceValueExact":"100000000000000000000","isMatured":false,"maturityDate":"2029-03-04T00:00:00.000Z","totalRedeemed":"0","totalRedeemedExact":"0","denominationAsset":{"id":"0x5FbDB2315678afecb367f032d93F642f64180aa3","symbol":"EURC","decimals":6}},"fund":null,"complianceModuleConfigs":[],"stats":{"balancesCount":12,"totalValueInBaseCurrency":"250000000.00","totalBurned":"0","totalBurnedExact":"0"}},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"]},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","INPUT_VALIDATION_FAILED","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"INPUT_VALIDATION_FAILED","status":422,"message":"Input validation failed","data":{"id":"DALP-0080","why":"The request body or parameters did not match the API contract.","fix":"Check the request fields against the API documentation and retry with valid values.","retryable":false,"category":"client","errors":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Permanently freezes mint, burn, and transfer accounting rates on the attached transaction-fee-accounting feature so later rate changes fail. This cannot be undone. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement.","summary":"Freeze transaction-fee-accounting rates","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]}},"additionalProperties":false}}},"required":false},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/features/transaction-fee-accounting/exemptions":{"put":{"tags":["Fees and pricing"],"operationId":"v2/token/setFeeExemption","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled token after the feature write completed within the wait window. data is the indexed token. meta.txHashes are the submitted transactions. links.self is the token URL.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenRecord"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","tokenFactory":"0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0","complianceContract":"0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9","identityRegistry":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","type":"bond","createdAt":"2026-03-04T09:12:41.000Z","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"basePrice":"100.00","basePriceCurrencyCode":"EUR","totalSupply":"2500000.00","totalSupplyExact":"2500000000000000000000000","extensions":["ACCESS_MANAGED","BOND","CAPPED","REDEEMABLE"],"implementsERC3643":true,"smartInterface":2,"implementsSMART":true,"pausable":{"paused":false},"collateral":null,"capped":{"cap":"5000000.00","capExact":"5000000000000000000000000"},"createdBy":{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"},"redeemable":{"redeemedAmount":"0","redeemedAmountExact":"0"},"yield":null,"bond":{"faceValue":"100.00","faceValueExact":"100000000000000000000","isMatured":false,"maturityDate":"2029-03-04T00:00:00.000Z","totalRedeemed":"0","totalRedeemedExact":"0","denominationAsset":{"id":"0x5FbDB2315678afecb367f032d93F642f64180aa3","symbol":"EURC","decimals":6}},"fund":null,"complianceModuleConfigs":[],"stats":{"balancesCount":12,"totalValueInBaseCurrency":"250000000.00","totalBurned":"0","totalBurnedExact":"0"}},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"]},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","INPUT_VALIDATION_FAILED","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"INPUT_VALIDATION_FAILED","status":422,"message":"Input validation failed","data":{"id":"DALP-0080","why":"The request body or parameters did not match the API contract.","fix":"Check the request fields against the API documentation and retry with valid values.","retryable":false,"category":"client","errors":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Marks an address as exempt or not exempt from transaction-fee accounting on the attached feature. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement. After settlement, exempt addresses no longer accrue accounting fees.","summary":"Set a transaction-fee exemption","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"account":{"$ref":"#/components/schemas/EvmAddress"},"exempt":{"type":"boolean"}},"required":["account","exempt"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"},"get":{"tags":["Fees and pricing"],"operationId":"v2/token/feeExemptions","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"sort","in":"query","schema":{"type":"string"},"required":false},{"name":"page","in":"query","schema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":200},"offset":{"type":"integer","minimum":0}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"filter","in":"query","schema":{"type":"object","properties":{"account":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"isExempt":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"updatedAt":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"updatedAtBlock":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"account","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"isExempt","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"updatedAt","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"updatedAtBlock","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true}],"responses":{"200":{"description":"One page of indexed fee-accounting exemptions. Each row is an account that is exempt, or no longer exempt. Default sort is last update descending.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"family":{"type":"string","enum":["evm"]},"account":{"$ref":"#/components/schemas/EvmAddress"},"isExempt":{"type":"boolean"},"updatedAt":{"type":"string"},"updatedAtBlock":{"type":"string","pattern":"^[0-9]+$"}},"required":["family","account","isExempt","updatedAt","updatedAtBlock"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0},"facets":{"type":"object","additionalProperties":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"count":{"type":"integer","minimum":0}},"required":["value","count"],"additionalProperties":false}}}},"required":["total"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"},"first":{"type":"string"},"prev":{"anyOf":[{"type":"string"},{"type":"null"}]},"next":{"anyOf":[{"type":"string"},{"type":"null"}]},"last":{"type":"string"}},"required":["self","first","prev","next","last"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"family":"evm","account":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30","isExempt":true,"updatedAt":"2026-03-11T16:02:08.000Z","updatedAtBlock":"21450881"}],"meta":{"total":1},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/features/transaction-fee-accounting/exemptions?sort=-updatedAt&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/features/transaction-fee-accounting/exemptions?sort=-updatedAt&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/features/transaction-fee-accounting/exemptions?sort=-updatedAt&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","TOKEN_LIST_METADATA_KEY_IDENTIFIER_INELIGIBLE","TOKEN_LIST_METADATA_KEY_NOT_BUCKETABLE","TOKEN_LIST_METADATA_KEY_UNKNOWN","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_FEATURES_UNAVAILABLE","TOKEN_READ_DEPENDENCY_FAILED","core.database.QUERY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"core.database.QUERY_FAILED","status":503,"message":"The database is temporarily unavailable","data":{"id":"DALP-12148","why":"The platform could not complete a database query required for this request.","fix":"Retry the request. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of indexed fee-accounting exemptions for the selected token. Each row is an account that is exempt, or no longer exempt, from transaction-fee accounting. Page and filter with the shared collection parameters. Default sort is last update descending.","summary":"List fee exemptions","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/features/transaction-fee/collections":{"get":{"tags":["Fees and pricing"],"operationId":"v2/token/transactionFeeCollections","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"sort","in":"query","schema":{"type":"string"},"required":false},{"name":"page","in":"query","schema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":200},"offset":{"type":"integer","minimum":0}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"filter","in":"query","schema":{"type":"object","properties":{"collectedAt":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"blockNumber":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"operationType":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"counterpartyAddress":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"feeAmount":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"collectedAt","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"blockNumber","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"operationType","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"counterpartyAddress","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"feeAmount","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true}],"responses":{"200":{"description":"One page of transaction-fee collection events. Default sort is collected time descending. The list is indexed.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"family":{"type":"string","enum":["evm"]},"id":{"type":"string"},"counterpartyAddress":{"$ref":"#/components/schemas/EvmAddress"},"operationType":{"type":"string","enum":["mint","burn","transfer","redeem"]},"feeAmount":{"$ref":"#/components/schemas/BigDecimal"},"feeAmountExact":{"type":"string","pattern":"^[0-9]+$"},"blockNumber":{"type":"string","pattern":"^[0-9]+$"},"blockTimestamp":{"type":"string"},"txHash":{"$ref":"#/components/schemas/EthereumHashEncoded"},"logIndex":{"type":"integer","minimum":0}},"required":["family","id","counterpartyAddress","operationType","feeAmount","feeAmountExact","blockNumber","blockTimestamp","txHash","logIndex"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0},"facets":{"type":"object","additionalProperties":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"count":{"type":"integer","minimum":0}},"required":["value","count"],"additionalProperties":false}}}},"required":["total"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"},"first":{"type":"string"},"prev":{"anyOf":[{"type":"string"},{"type":"null"}]},"next":{"anyOf":[{"type":"string"},{"type":"null"}]},"last":{"type":"string"}},"required":["self","first","prev","next","last"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"family":"evm","id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F-21450881-5","counterpartyAddress":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","operationType":"transfer","feeAmount":"12.50","feeAmountExact":"12500000000000000000","blockNumber":"21450881","blockTimestamp":"2026-03-04T09:12:41.000Z","txHash":"0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24","logIndex":5}],"meta":{"total":1},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/features/transaction-fee/collections?sort=-collectedAt&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/features/transaction-fee/collections?sort=-collectedAt&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/features/transaction-fee/collections?sort=-collectedAt&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","TOKEN_LIST_METADATA_KEY_IDENTIFIER_INELIGIBLE","TOKEN_LIST_METADATA_KEY_NOT_BUCKETABLE","TOKEN_LIST_METADATA_KEY_UNKNOWN","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_FEATURES_UNAVAILABLE","TOKEN_READ_DEPENDENCY_FAILED","core.database.QUERY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"core.database.QUERY_FAILED","status":503,"message":"The database is temporarily unavailable","data":{"id":"DALP-12148","why":"The platform could not complete a database query required for this request.","fix":"Retry the request. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of transaction-fee collection events for the selected token. Each row is a fee collected on a mint, burn, transfer, or redeem. Results come from the index. Page, filter, and sort with the shared collection parameters. Default sort is collected time descending. Repeat the same query to refresh the page.","summary":"List transaction-fee collections","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/features/transaction-fee-accounting/accrual-events":{"get":{"tags":["Fees and pricing"],"operationId":"v2/token/feeAccrualEvents","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"sort","in":"query","schema":{"type":"string"},"required":false},{"name":"page","in":"query","schema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":200},"offset":{"type":"integer","minimum":0}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"filter","in":"query","schema":{"type":"object","properties":{"accruedAt":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"blockNumber":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"operationType":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"payer":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"fromAddress":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"toAddress":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"operationAmount":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"feeAmount":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"accruedAt","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"blockNumber","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"operationType","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"payer","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"fromAddress","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"toAddress","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"operationAmount","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"feeAmount","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true}],"responses":{"200":{"description":"One page of indexed fee-accrual events. Default sort is accrual time descending. `unknown` appears only when the contract emits an unrecognised operation type.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"family":{"type":"string","enum":["evm"]},"id":{"type":"string"},"payer":{"$ref":"#/components/schemas/EvmAddress"},"fromAddress":{"$ref":"#/components/schemas/EvmAddress"},"toAddress":{"$ref":"#/components/schemas/EvmAddress"},"operationType":{"type":"string","enum":["mint","burn","transfer","redeem","unknown"]},"operationAmount":{"$ref":"#/components/schemas/BigDecimal"},"operationAmountExact":{"type":"string","pattern":"^[0-9]+$"},"feeBps":{"type":"integer","minimum":0},"feeAmount":{"$ref":"#/components/schemas/BigDecimal"},"feeAmountExact":{"type":"string","pattern":"^[0-9]+$"},"blockNumber":{"type":"string","pattern":"^[0-9]+$"},"blockTimestamp":{"type":"string"},"eventTimestamp":{"type":"string"},"txHash":{"$ref":"#/components/schemas/EthereumHashEncoded"},"logIndex":{"type":"integer","minimum":0}},"required":["family","id","payer","fromAddress","toAddress","operationType","operationAmount","operationAmountExact","feeBps","feeAmount","feeAmountExact","blockNumber","blockTimestamp","eventTimestamp","txHash","logIndex"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0},"facets":{"type":"object","additionalProperties":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"count":{"type":"integer","minimum":0}},"required":["value","count"],"additionalProperties":false}}}},"required":["total"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"},"first":{"type":"string"},"prev":{"anyOf":[{"type":"string"},{"type":"null"}]},"next":{"anyOf":[{"type":"string"},{"type":"null"}]},"last":{"type":"string"}},"required":["self","first","prev","next","last"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"family":"evm","id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F-21450881-6","payer":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","fromAddress":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30","toAddress":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","operationType":"transfer","operationAmount":"25000.00","operationAmountExact":"25000000000000000000000","feeBps":50,"feeAmount":"12.50","feeAmountExact":"12500000000000000000","blockNumber":"21450881","blockTimestamp":"2026-03-04T09:12:41.000Z","eventTimestamp":"2026-03-04T09:12:41.000Z","txHash":"0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24","logIndex":6}],"meta":{"total":1},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/features/transaction-fee-accounting/accrual-events?sort=-accruedAt&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/features/transaction-fee-accounting/accrual-events?sort=-accruedAt&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/features/transaction-fee-accounting/accrual-events?sort=-accruedAt&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","TOKEN_LIST_METADATA_KEY_IDENTIFIER_INELIGIBLE","TOKEN_LIST_METADATA_KEY_NOT_BUCKETABLE","TOKEN_LIST_METADATA_KEY_UNKNOWN","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_FEATURES_UNAVAILABLE","TOKEN_READ_DEPENDENCY_FAILED","core.database.QUERY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"core.database.QUERY_FAILED","status":503,"message":"The database is temporarily unavailable","data":{"id":"DALP-12148","why":"The platform could not complete a database query required for this request.","fix":"Retry the request. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of indexed transaction-fee accounting accrual events for the selected token. Each row is a fee that accrued on a mint, burn, transfer, or redeem, including the operation amount and fee in basis points. Page and filter with the shared collection parameters. Default sort is accrual time descending.","summary":"List fee-accrual events","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/aum-fee/collection-events":{"get":{"tags":["Fees and pricing"],"operationId":"v2/token/aumFeeEvents","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"sort","in":"query","schema":{"type":"string"},"required":false},{"name":"page","in":"query","schema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":200},"offset":{"type":"integer","minimum":0}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"filter","in":"query","schema":{"type":"object","properties":{"collectedAt":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"blockNumber":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"collector":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"recipient":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"feeAmount":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"collectedAt","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"blockNumber","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"collector","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"recipient","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"feeAmount","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true}],"responses":{"200":{"description":"One page of indexed assets-under-management fee collection events. Default sort is collected time descending.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"family":{"type":"string","enum":["evm"]},"id":{"type":"string"},"collector":{"$ref":"#/components/schemas/EvmAddress"},"recipient":{"$ref":"#/components/schemas/EvmAddress"},"feeAmount":{"$ref":"#/components/schemas/BigDecimal"},"feeAmountExact":{"type":"string","pattern":"^[0-9]+$"},"eventTimestamp":{"type":"string"},"blockNumber":{"type":"string","pattern":"^[0-9]+$"},"blockTimestamp":{"type":"string"},"txHash":{"$ref":"#/components/schemas/EthereumHashEncoded"},"logIndex":{"type":"integer","minimum":0}},"required":["family","id","collector","recipient","feeAmount","feeAmountExact","eventTimestamp","blockNumber","blockTimestamp","txHash","logIndex"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0},"facets":{"type":"object","additionalProperties":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"count":{"type":"integer","minimum":0}},"required":["value","count"],"additionalProperties":false}}}},"required":["total"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"},"first":{"type":"string"},"prev":{"anyOf":[{"type":"string"},{"type":"null"}]},"next":{"anyOf":[{"type":"string"},{"type":"null"}]},"last":{"type":"string"}},"required":["self","first","prev","next","last"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"family":"evm","id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F-21450881-9","collector":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30","recipient":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30","feeAmount":"125.00","feeAmountExact":"125000000000000000000","eventTimestamp":"2026-03-04T09:12:41.000Z","blockNumber":"21450881","blockTimestamp":"2026-03-04T09:12:41.000Z","txHash":"0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24","logIndex":9}],"meta":{"total":1},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/aum-fee/collection-events?sort=-collectedAt&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/aum-fee/collection-events?sort=-collectedAt&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/aum-fee/collection-events?sort=-collectedAt&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","TOKEN_LIST_METADATA_KEY_IDENTIFIER_INELIGIBLE","TOKEN_LIST_METADATA_KEY_NOT_BUCKETABLE","TOKEN_LIST_METADATA_KEY_UNKNOWN","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_FEATURES_UNAVAILABLE","TOKEN_READ_DEPENDENCY_FAILED","core.database.QUERY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"core.database.QUERY_FAILED","status":503,"message":"The database is temporarily unavailable","data":{"id":"DALP-12148","why":"The platform could not complete a database query required for this request.","fix":"Retry the request. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of indexed assets-under-management fee collection events for the selected token. Each row is a collected AUM fee with collector, recipient, and amounts. Page and filter with the shared collection parameters. Default sort is collected time descending.","summary":"List AUM-fee collection events","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/features/permit/permits":{"post":{"tags":["Token features"],"operationId":"v2/token/permit","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled token after the feature write completed within the wait window. data is the indexed token. meta.txHashes are the submitted transactions. links.self is the token URL.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenRecord"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","tokenFactory":"0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0","complianceContract":"0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9","identityRegistry":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","type":"bond","createdAt":"2026-03-04T09:12:41.000Z","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"basePrice":"100.00","basePriceCurrencyCode":"EUR","totalSupply":"2500000.00","totalSupplyExact":"2500000000000000000000000","extensions":["ACCESS_MANAGED","BOND","CAPPED","REDEEMABLE"],"implementsERC3643":true,"smartInterface":2,"implementsSMART":true,"pausable":{"paused":false},"collateral":null,"capped":{"cap":"5000000.00","capExact":"5000000000000000000000000"},"createdBy":{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"},"redeemable":{"redeemedAmount":"0","redeemedAmountExact":"0"},"yield":null,"bond":{"faceValue":"100.00","faceValueExact":"100000000000000000000","isMatured":false,"maturityDate":"2029-03-04T00:00:00.000Z","totalRedeemed":"0","totalRedeemedExact":"0","denominationAsset":{"id":"0x5FbDB2315678afecb367f032d93F642f64180aa3","symbol":"EURC","decimals":6}},"fund":null,"complianceModuleConfigs":[],"stats":{"balancesCount":12,"totalValueInBaseCurrency":"250000000.00","totalBurned":"0","totalBurnedExact":"0"}},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"]},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND","TOKEN_PERMIT_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS","TOKEN_PERMIT_ALREADY_RELAYED","TOKEN_PERMIT_NONCE_CONFLICT","TOKEN_PERMIT_NOT_RELAYABLE","TOKEN_PERMIT_WALLET_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_PERMIT_DEADLINE_EXPIRED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","TOKEN_PERMIT_FEATURE_UNAVAILABLE","TOKEN_PERMIT_PERSISTENCE_FAILED","TOKEN_PERMIT_SIGNING_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Relays a previously signed EIP-2612 permit on the attached permit feature so the spender allowance is set on-chain. Supply a stored permit identifier, an ECDSA v/r/s tuple, or a packed signature. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement. Sign and store a permit first when you do not already have a signature.","summary":"Relay a signed permit","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"owner":{"$ref":"#/components/schemas/EvmAddress"},"spender":{"$ref":"#/components/schemas/EvmAddress"},"value":{"anyOf":[{"type":"string","maxLength":1024,"pattern":"^\\s*-?\\d+\\s*$"},{"type":"integer"}]},"deadline":{"anyOf":[{"type":"string","maxLength":1024,"pattern":"^\\s*-?\\d+\\s*$"},{"type":"integer"}]},"v":{"type":"number","enum":[27,28]},"r":{"$ref":"#/components/schemas/EthereumHashEncoded"},"s":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"required":["owner","spender","value","deadline","v","r","s"],"additionalProperties":false},{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"owner":{"$ref":"#/components/schemas/EvmAddress"},"spender":{"$ref":"#/components/schemas/EvmAddress"},"value":{"anyOf":[{"type":"string","maxLength":1024,"pattern":"^\\s*-?\\d+\\s*$"},{"type":"integer"}]},"deadline":{"anyOf":[{"type":"string","maxLength":1024,"pattern":"^\\s*-?\\d+\\s*$"},{"type":"integer"}]},"signature":{"type":"string","minLength":2,"description":"A valid Ethereum hex string starting with 0x","examples":["0x5208"]}},"required":["owner","spender","value","deadline","signature"],"additionalProperties":false},{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"signedPermitId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"}},"required":["signedPermitId"],"additionalProperties":false}]}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/features/permit/signatures":{"post":{"tags":["Token features"],"operationId":"v2/token/signPermit","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Stored EIP-2612 permit ready to relay. This write does not submit an on-chain permit transaction. Send data.id to the relay route.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"owner":{"$ref":"#/components/schemas/EvmAddress"},"spender":{"$ref":"#/components/schemas/EvmAddress"},"value":{"type":"string"},"deadline":{"type":"string"},"nonce":{"type":"string"},"signatureKind":{"type":"string","enum":["ecdsa","bytes"]},"status":{"type":"string","enum":["pending","relayed","expired"]},"createdAt":{"type":"string"}},"required":["id","tokenAddress","owner","spender","value","deadline","nonce","signatureKind","status","createdAt"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"c4e8d1a0-2b3c-4d5e-8f90-1a2b3c4d5e6f","tokenAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","owner":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30","spender":"0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC","value":"10000000000000000000000","deadline":"1743671561","nonce":"3","signatureKind":"ecdsa","status":"pending","createdAt":"2026-03-04T09:12:41.000Z"},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/features/permit/signatures"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND","TOKEN_PERMIT_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS","TOKEN_PERMIT_ALREADY_RELAYED","TOKEN_PERMIT_NONCE_CONFLICT","TOKEN_PERMIT_NOT_RELAYABLE","TOKEN_PERMIT_WALLET_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_PERMIT_DEADLINE_EXPIRED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","TOKEN_PERMIT_FEATURE_UNAVAILABLE","TOKEN_PERMIT_PERSISTENCE_FAILED","TOKEN_PERMIT_SIGNING_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Signs an EIP-2612 permit for the selected token and stores it for later relay. The write returns the stored permit, including its identifier and status. It does not submit an on-chain permit transaction and does not wait for a queue. Use the relay route with the returned identifier to set the spender allowance on-chain.","summary":"Sign and store a permit","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"externalMessageAuthorization":{"type":"object","properties":{"signature":{"$ref":"#/components/schemas/EthereumHexEncoded"}},"required":["signature"],"additionalProperties":false},"spender":{"$ref":"#/components/schemas/EvmAddress"},"value":{"anyOf":[{"type":"string","maxLength":1024,"pattern":"^\\s*-?\\d+\\s*$"},{"type":"integer"}]},"deadline":{"anyOf":[{"type":"string","maxLength":1024,"pattern":"^\\s*-?\\d+\\s*$"},{"type":"integer"}]}},"required":["spender","value","deadline"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"},"get":{"tags":["Tokens"],"operationId":"v2/token/signedPermits","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"sort","in":"query","schema":{"type":"string"},"required":false},{"name":"page","in":"query","schema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":200},"offset":{"type":"integer","minimum":0}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"filter","in":"query","schema":{"type":"object","properties":{"nonce":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"createdAt":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"owner":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"status":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"nonce","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"createdAt","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"owner","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"status","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true}],"responses":{"200":{"description":"One page of stored permit signatures. Default sort is nonce ascending. The list is indexed and does not relay a permit.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"family":{"type":"string","enum":["evm"]},"id":{"type":"string","minLength":1},"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"owner":{"$ref":"#/components/schemas/EvmAddress"},"spender":{"$ref":"#/components/schemas/EvmAddress"},"value":{"type":"string","pattern":"^[0-9]+$"},"deadline":{"type":"string"},"nonce":{"type":"string","pattern":"^[0-9]+$"},"signatureKind":{"type":"string","enum":["ecdsa","bytes"]},"status":{"type":"string","enum":["pending","relayed","expired"]},"relayable":{"type":"boolean"},"relayedTxHash":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"type":"string"}},"required":["family","id","tokenAddress","owner","spender","value","deadline","nonce","signatureKind","status","relayable","relayedTxHash","createdAt"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0},"facets":{"type":"object","additionalProperties":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"count":{"type":"integer","minimum":0}},"required":["value","count"],"additionalProperties":false}}}},"required":["total"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"},"first":{"type":"string"},"prev":{"anyOf":[{"type":"string"},{"type":"null"}]},"next":{"anyOf":[{"type":"string"},{"type":"null"}]},"last":{"type":"string"}},"required":["self","first","prev","next","last"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"family":"evm","id":"c4e8d1a0-2b3c-4d5e-8f90-1a2b3c4d5e6f","tokenAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","owner":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30","spender":"0x3C44CdDdB6a900fa2b585dd299e03d12FA4293BC","value":"10000000000000000000000","deadline":"1743671561","nonce":"3","signatureKind":"ecdsa","status":"pending","relayable":true,"relayedTxHash":null,"createdAt":"2026-03-04T09:12:41.000Z"}],"meta":{"total":1},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/features/permit/signatures?sort=nonce&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/features/permit/signatures?sort=nonce&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/features/permit/signatures?sort=nonce&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","TOKEN_LIST_METADATA_KEY_IDENTIFIER_INELIGIBLE","TOKEN_LIST_METADATA_KEY_NOT_BUCKETABLE","TOKEN_LIST_METADATA_KEY_UNKNOWN","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_FEATURES_UNAVAILABLE","TOKEN_READ_DEPENDENCY_FAILED","core.database.QUERY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"core.database.QUERY_FAILED","status":503,"message":"The database is temporarily unavailable","data":{"id":"DALP-12148","why":"The platform could not complete a database query required for this request.","fix":"Retry the request. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of pending, relayed, and expired permit signatures visible for the selected token. Page, filter, and sort with the shared collection parameters. Default sort is nonce ascending. `relayable` tells you whether the platform can still submit the signature. The list is indexed and does not relay a permit.","summary":"List signed permits","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/permit-info":{"get":{"tags":["Tokens"],"operationId":"v2/token/permitInfo","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"owner","in":"query","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":false}],"responses":{"200":{"description":"Live permit domain data, wrapped in a single-resource envelope. `data` is null when the token has no permit feature.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"anyOf":[{"type":"object","properties":{"family":{"type":"string","enum":["evm"]},"featureAddress":{"$ref":"#/components/schemas/EvmAddress"},"owner":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"nonce":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"domainSeparator":{"$ref":"#/components/schemas/EthereumHashEncoded"},"permitTypeHash":{"$ref":"#/components/schemas/EthereumHashEncoded"},"tokenName":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["family","featureAddress","owner","nonce","domainSeparator","permitTypeHash","tokenName"],"additionalProperties":false},{"type":"null"}]},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"family":"evm","featureAddress":"0x0165878A594ca255338adfa4d48449f69242Eb8F","owner":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30","nonce":"3","domainSeparator":"0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","permitTypeHash":"0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9","tokenName":"Example Bond"},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/permit-info?owner=0x2546BcD3c84621e976D8185a91A922aE77ECEc30"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","TOKEN_LIST_METADATA_KEY_IDENTIFIER_INELIGIBLE","TOKEN_LIST_METADATA_KEY_NOT_BUCKETABLE","TOKEN_LIST_METADATA_KEY_UNKNOWN","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_PERMIT_READ_REFUSED"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_FEATURES_UNAVAILABLE","TOKEN_READ_DEPENDENCY_FAILED","core.database.QUERY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"core.database.QUERY_FAILED","status":503,"message":"The database is temporarily unavailable","data":{"id":"DALP-12148","why":"The platform could not complete a database query required for this request.","fix":"Retry the request. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Reads the permit feature on the active chain for the selected token. Returns the domain separator, permit type hash, and, when you send `owner`, that owner's current permit nonce. A missing token returns 404. A missing feature returns a null body. Nonce and domain values are live, not indexed. Use the nonce when you build the next permit signature.","summary":"Read permit information","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/permit/replay-history":{"get":{"tags":["Tokens"],"operationId":"v2/token/featurePermitReplayHistory","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"sort","in":"query","schema":{"type":"string"},"required":false},{"name":"page","in":"query","schema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":200},"offset":{"type":"integer","minimum":0}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"filter","in":"query","schema":{"type":"object","properties":{"blockTime":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"owner":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"blockTime","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"owner","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true}],"responses":{"200":{"description":"One page of consumed permit nonces. Default sort is block time descending. Use this before you relay a signed permit.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"family":{"type":"string","enum":["evm"]},"owner":{"$ref":"#/components/schemas/EvmAddress"},"nonce":{"type":"string","pattern":"^[0-9]+$"},"txHash":{"$ref":"#/components/schemas/EthereumHashEncoded"},"blockNumber":{"type":"string","pattern":"^[0-9]+$"},"blockTime":{"type":"string"}},"required":["family","owner","nonce","txHash","blockNumber","blockTime"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0},"facets":{"type":"object","additionalProperties":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"count":{"type":"integer","minimum":0}},"required":["value","count"],"additionalProperties":false}}}},"required":["total"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"},"first":{"type":"string"},"prev":{"anyOf":[{"type":"string"},{"type":"null"}]},"next":{"anyOf":[{"type":"string"},{"type":"null"}]},"last":{"type":"string"}},"required":["self","first","prev","next","last"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"family":"evm","owner":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30","nonce":"2","txHash":"0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24","blockNumber":"21450881","blockTime":"2026-03-04T09:12:41.000Z"}],"meta":{"total":1},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/permit/replay-history?sort=-blockTime&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/permit/replay-history?sort=-blockTime&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/permit/replay-history?sort=-blockTime&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","TOKEN_LIST_METADATA_KEY_IDENTIFIER_INELIGIBLE","TOKEN_LIST_METADATA_KEY_NOT_BUCKETABLE","TOKEN_LIST_METADATA_KEY_UNKNOWN","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_FEATURES_UNAVAILABLE","TOKEN_READ_DEPENDENCY_FAILED","core.database.QUERY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"core.database.QUERY_FAILED","status":503,"message":"The database is temporarily unavailable","data":{"id":"DALP-12148","why":"The platform could not complete a database query required for this request.","fix":"Retry the request. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of indexed permit replay-protection records for the selected token. Each row is a nonce that has already been consumed on chain. Page and sort with the shared collection parameters. Default sort is block time descending. Use this before you relay a signed permit so you do not replay a spent nonce.","summary":"List permit replay history","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/features/voting-power/delegations":{"post":{"tags":["Governance"],"operationId":"v2/token/delegate","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled token after the feature write completed within the wait window. data is the indexed token. meta.txHashes are the submitted transactions. links.self is the token URL.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenRecord"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","tokenFactory":"0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0","complianceContract":"0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9","identityRegistry":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","type":"bond","createdAt":"2026-03-04T09:12:41.000Z","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"basePrice":"100.00","basePriceCurrencyCode":"EUR","totalSupply":"2500000.00","totalSupplyExact":"2500000000000000000000000","extensions":["ACCESS_MANAGED","BOND","CAPPED","REDEEMABLE"],"implementsERC3643":true,"smartInterface":2,"implementsSMART":true,"pausable":{"paused":false},"collateral":null,"capped":{"cap":"5000000.00","capExact":"5000000000000000000000000"},"createdBy":{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"},"redeemable":{"redeemedAmount":"0","redeemedAmountExact":"0"},"yield":null,"bond":{"faceValue":"100.00","faceValueExact":"100000000000000000000","isMatured":false,"maturityDate":"2029-03-04T00:00:00.000Z","totalRedeemed":"0","totalRedeemedExact":"0","denominationAsset":{"id":"0x5FbDB2315678afecb367f032d93F642f64180aa3","symbol":"EURC","decimals":6}},"fund":null,"complianceModuleConfigs":[],"stats":{"balancesCount":12,"totalValueInBaseCurrency":"250000000.00","totalBurned":"0","totalBurnedExact":"0"}},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"]},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","VOTING_OPERATION_REJECTED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Delegates the caller's voting power on the attached voting-power feature to another address. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement. After settlement, later votes use the delegatee's power.","summary":"Delegate voting power","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"delegatee":{"$ref":"#/components/schemas/EvmAddress"}},"required":["delegatee"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/voting-delegations":{"get":{"tags":["Governance"],"operationId":"v2/token/votingDelegations","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"sort","in":"query","schema":{"type":"string"},"required":false},{"name":"page","in":"query","schema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":200},"offset":{"type":"integer","minimum":0}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"filter","in":"query","schema":{"type":"object","properties":{"account":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"delegate":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"isActive":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"delegatedBlockNumber":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"delegatedAt":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"fromDelegate":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"toDelegate":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"account","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"delegate","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"isActive","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"delegatedBlockNumber","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"delegatedAt","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"fromDelegate","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"toDelegate","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true}],"responses":{"200":{"description":"One page of indexed voting-power delegations. Each row is a delegation from one account to another, including whether it is still active. Default sort is delegation time descending.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"family":{"type":"string","enum":["evm"]},"id":{"type":"string"},"delegator":{"$ref":"#/components/schemas/EvmAddress"},"fromDelegate":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"toDelegate":{"$ref":"#/components/schemas/EvmAddress"},"delegatedAt":{"type":"string"},"delegatedBlockNumber":{"type":"string","pattern":"^[0-9]+$"},"delegatedTxHash":{"$ref":"#/components/schemas/EthereumHashEncoded"},"delegatedLogIndex":{"type":"integer","minimum":0},"undelegatedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"undelegatedBlockNumber":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"undelegatedTxHash":{"anyOf":[{"$ref":"#/components/schemas/EthereumHashEncoded"},{"type":"null"}]},"undelegatedLogIndex":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"isActive":{"type":"boolean"}},"required":["family","id","delegator","fromDelegate","toDelegate","delegatedAt","delegatedBlockNumber","delegatedTxHash","delegatedLogIndex","undelegatedAt","undelegatedBlockNumber","undelegatedTxHash","undelegatedLogIndex","isActive"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0},"facets":{"type":"object","additionalProperties":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"count":{"type":"integer","minimum":0}},"required":["value","count"],"additionalProperties":false}}}},"required":["total"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"},"first":{"type":"string"},"prev":{"anyOf":[{"type":"string"},{"type":"null"}]},"next":{"anyOf":[{"type":"string"},{"type":"null"}]},"last":{"type":"string"}},"required":["self","first","prev","next","last"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"family":"evm","id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F-0x8ba1f109551bD432803012645Ac136ddd64DBA72-0x2546BcD3c84621e976D8185a91A922aE77ECEc30","delegator":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","fromDelegate":null,"toDelegate":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30","delegatedAt":"2026-03-04T09:12:41.000Z","delegatedBlockNumber":"21450881","delegatedTxHash":"0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24","delegatedLogIndex":2,"undelegatedAt":null,"undelegatedBlockNumber":null,"undelegatedTxHash":null,"undelegatedLogIndex":null,"isActive":true}],"meta":{"total":1},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/voting-delegations?sort=-delegatedAt&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/voting-delegations?sort=-delegatedAt&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/voting-delegations?sort=-delegatedAt&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","TOKEN_LIST_METADATA_KEY_IDENTIFIER_INELIGIBLE","TOKEN_LIST_METADATA_KEY_NOT_BUCKETABLE","TOKEN_LIST_METADATA_KEY_UNKNOWN","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_FEATURES_UNAVAILABLE","TOKEN_READ_DEPENDENCY_FAILED","core.database.QUERY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"core.database.QUERY_FAILED","status":503,"message":"The database is temporarily unavailable","data":{"id":"DALP-12148","why":"The platform could not complete a database query required for this request.","fix":"Retry the request. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of indexed voting-power delegation history for the selected token. Each row is a delegation from one account to another, including whether it is still active. Page and filter with the shared collection parameters. Default sort is delegation time descending. The token must have voting power attached.","summary":"List voting delegations","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/voting-power/distribution":{"get":{"tags":["Governance"],"operationId":"v2/token/votingPowerDistribution","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"topN","in":"query","schema":{"type":"integer","minimum":1,"maximum":200},"required":false}],"responses":{"200":{"description":"Current indexed voting-power distribution. The top `topN` holders appear individually; remaining votes go into `other`.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"family":{"type":"string","enum":["evm"]},"total":{"type":"integer","minimum":0},"topN":{"type":"integer","minimum":0},"totalVotes":{"$ref":"#/components/schemas/BigDecimal"},"totalVotesExact":{"type":"string","pattern":"^[0-9]+$"},"holders":{"type":"array","items":{"type":"object","properties":{"account":{"$ref":"#/components/schemas/EvmAddress"},"votes":{"$ref":"#/components/schemas/BigDecimal"},"votesExact":{"type":"string","pattern":"^[0-9]+$"}},"required":["account","votes","votesExact"],"additionalProperties":false}},"other":{"type":"object","properties":{"holders":{"type":"integer","minimum":0},"votes":{"$ref":"#/components/schemas/BigDecimal"},"votesExact":{"type":"string","pattern":"^[0-9]+$"}},"required":["holders","votes","votesExact"],"additionalProperties":false}},"required":["family","total","topN","totalVotes","totalVotesExact","holders","other"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"family":"evm","total":12,"topN":50,"totalVotes":"2500000.00","totalVotesExact":"2500000000000000000000000","holders":[{"account":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","votes":"25000.00","votesExact":"25000000000000000000000"}],"other":{"holders":11,"votes":"2475000.00","votesExact":"2475000000000000000000000"}},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/voting-power/distribution?topN=50"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","TOKEN_LIST_METADATA_KEY_IDENTIFIER_INELIGIBLE","TOKEN_LIST_METADATA_KEY_NOT_BUCKETABLE","TOKEN_LIST_METADATA_KEY_UNKNOWN","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_FEATURES_UNAVAILABLE","TOKEN_READ_DEPENDENCY_FAILED","core.database.QUERY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"core.database.QUERY_FAILED","status":503,"message":"The database is temporarily unavailable","data":{"id":"DALP-12148","why":"The platform could not complete a database query required for this request.","fix":"Retry the request. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the current indexed voting-power distribution for the selected token. The top `topN` holders appear individually; remaining votes go into `other`. The token must have voting power attached. Use snapshot weights when you need votes at a past block.","summary":"Read voting-power distribution","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/voting-power/snapshot-weights":{"get":{"tags":["Governance"],"operationId":"v2/token/votingPowerSnapshotWeights","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"sort","in":"query","schema":{"type":"string"},"required":false},{"name":"page","in":"query","schema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":200},"offset":{"type":"integer","minimum":0}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"filter","in":"query","schema":{"type":"object","properties":{"account":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"account","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"block","in":"query","schema":{"anyOf":[{"type":"string","maxLength":1024,"pattern":"^\\s*-?\\d+\\s*$"},{"type":"integer"}]},"required":true}],"responses":{"200":{"description":"One page of indexed voting-power weights at the requested block. Filter `account` only with `eq`. Default sort is exact votes descending.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"family":{"type":"string","enum":["evm"]},"account":{"$ref":"#/components/schemas/EvmAddress"},"votes":{"$ref":"#/components/schemas/BigDecimal"},"votesExact":{"type":"string","pattern":"^[0-9]+$"},"asOfBlockNumber":{"type":"string","pattern":"^[0-9]+$"},"asOfBlockTimestamp":{"type":"string"},"asOfTxHash":{"$ref":"#/components/schemas/EthereumHashEncoded"},"asOfLogIndex":{"type":"integer","minimum":0}},"required":["family","account","votes","votesExact","asOfBlockNumber","asOfBlockTimestamp","asOfTxHash","asOfLogIndex"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0},"facets":{"type":"object","additionalProperties":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"count":{"type":"integer","minimum":0}},"required":["value","count"],"additionalProperties":false}}}},"required":["total"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"},"first":{"type":"string"},"prev":{"anyOf":[{"type":"string"},{"type":"null"}]},"next":{"anyOf":[{"type":"string"},{"type":"null"}]},"last":{"type":"string"}},"required":["self","first","prev","next","last"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"family":"evm","account":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","votes":"25000.00","votesExact":"25000000000000000000000","asOfBlockNumber":"21450881","asOfBlockTimestamp":"2026-03-04T09:12:41.000Z","asOfTxHash":"0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24","asOfLogIndex":2}],"meta":{"total":1},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/voting-power/snapshot-weights?block=21450881&sort=-votesExact&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/voting-power/snapshot-weights?block=21450881&sort=-votesExact&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/voting-power/snapshot-weights?block=21450881&sort=-votesExact&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","TOKEN_LIST_METADATA_KEY_IDENTIFIER_INELIGIBLE","TOKEN_LIST_METADATA_KEY_NOT_BUCKETABLE","TOKEN_LIST_METADATA_KEY_UNKNOWN","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_FEATURES_UNAVAILABLE","TOKEN_READ_DEPENDENCY_FAILED","core.database.QUERY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"core.database.QUERY_FAILED","status":503,"message":"The database is temporarily unavailable","data":{"id":"DALP-12148","why":"The platform could not complete a database query required for this request.","fix":"Retry the request. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of indexed voting-power weights at the requested `block` for the selected token. Filter `account` only with `eq`. Default sort is exact votes descending. The token must have voting power attached. Use this when you need the electorate at a past block.","summary":"List voting snapshot weights","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/features/dividend-yield/denomination-eligibility":{"get":{"tags":["Yield and distributions"],"operationId":"v2/token/dividendDenominationEligibility","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true}],"responses":{"200":{"description":"Payout eligibility on the denomination asset for the instrument's holders, treasury, and venue fee accounts. Advisory: the denomination asset's compliance modules remain the authorization layer.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"featureAddress":{"$ref":"#/components/schemas/EvmAddress"},"denominationAsset":{"$ref":"#/components/schemas/EvmAddress"},"complianceContract":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"status":{"type":"string","enum":["clear","ineligible","indeterminate"]},"retryable":{"type":"boolean"},"checkedCount":{"type":"integer","minimum":0},"ineligibleCount":{"type":"integer","minimum":0},"indeterminateCount":{"type":"integer","minimum":0},"holdersTruncated":{"type":"boolean"},"parties":{"type":"array","items":{"type":"object","properties":{"address":{"$ref":"#/components/schemas/EvmAddress"},"role":{"type":"string","enum":["holder","treasury","venue-fee-account"]},"status":{"type":"string","enum":["eligible","ineligible","indeterminate"]},"reason":{"type":"string"}},"required":["address","role","status","reason"],"additionalProperties":false}}},"required":["tokenAddress","featureAddress","denominationAsset","complianceContract","status","retryable","checkedCount","ineligibleCount","indeterminateCount","holdersTruncated","parties"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"tokenAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","featureAddress":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","denominationAsset":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30","complianceContract":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","status":"ineligible","retryable":false,"checkedCount":3,"ineligibleCount":1,"indeterminateCount":0,"holdersTruncated":false,"parties":[{"address":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30","role":"treasury","status":"eligible","reason":""},{"address":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","role":"holder","status":"eligible","reason":""},{"address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","role":"holder","status":"ineligible","reason":"Receiver country not allowed"}]},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/features/dividend-yield/denomination-eligibility"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","TOKEN_ACCESS_INTERFACE_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"TOKEN_ACCESS_INTERFACE_UNSUPPORTED","status":422,"message":"The token exposes neither ERC-3643 nor the supported SMART access-control interface.","data":{"id":"DALP-12025","why":"The platform reads the indexed token interface before it resolves roles; this token reports neither interface, so no role check can run. `data.tokenAddress` names the token.","fix":"Use a token that implements ERC-3643 or the supported SMART access-control interface, or correct the indexed token interface metadata, then retry.","retryable":false,"category":"domain","tokenAddress":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","FINANCIAL_YIELD_OPERATION_REJECTED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Evaluates the denomination asset's own compliance against the instrument's holders, the paying treasury, and any venue fee account, and names every party that could not receive the payout. Read this before you declare a dividend: a declared dividend can be cancelled only until its record-date snapshot is recorded, and without the preflight an ineligible party only surfaces at claim time. The caller must hold the role that may declare a payout, because the response carries per-holder regulatory status. The verdict is advisory. The denomination asset's compliance modules remain the authorization layer, and a party whose chain answer could not be read is reported as indeterminate with retryable true rather than blocking the declaration.","summary":"Preflight denomination-asset payout eligibility","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/features/dividend-yield/dividends":{"post":{"tags":["Yield and distributions"],"operationId":"v2/token/declareDividend","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous mutation result (HTTP 200). The write settled within the request wait window. `data` is the token an EVM write moved, or the Canton operation a Canton write submitted.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenRecord"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","tokenFactory":"0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0","complianceContract":"0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9","identityRegistry":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","type":"bond","createdAt":"2026-03-04T09:12:41.000Z","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"basePrice":"100.00","basePriceCurrencyCode":"EUR","totalSupply":"2500000.00","totalSupplyExact":"2500000000000000000000000","extensions":["ACCESS_MANAGED","BOND","CAPPED","REDEEMABLE"],"implementsERC3643":true,"smartInterface":2,"implementsSMART":true,"pausable":{"paused":false},"collateral":null,"capped":{"cap":"5000000.00","capExact":"5000000000000000000000000"},"createdBy":{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"},"redeemable":{"redeemedAmount":"0","redeemedAmountExact":"0"},"yield":null,"bond":{"faceValue":"100.00","faceValueExact":"100000000000000000000","isMatured":false,"maturityDate":"2029-03-04T00:00:00.000Z","totalRedeemed":"0","totalRedeemedExact":"0","denominationAsset":{"id":"0x5FbDB2315678afecb367f032d93F642f64180aa3","symbol":"EURC","decimals":6}},"fund":null,"complianceModuleConfigs":[],"stats":{"balancesCount":12,"totalValueInBaseCurrency":"250000000.00","totalBurned":"0","totalBurnedExact":"0"}},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"]},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CORPORATE_ACTION_PAYOUT_INELIGIBLE","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","FINANCIAL_YIELD_OPERATION_REJECTED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Declares a dividend on the attached dividend-yield feature. Holders who owned tokens before the ex-dividend date become eligible at the record date. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement. After settlement, preview the snapshot, fund any denomination shortfall, then confirm the snapshot before holders claim. A Canton body runs `DividendYield_OpenDistribution` against the attached `DividendYield` contract named by `dividendYieldContractId`.","summary":"Declare a dividend","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"amountPerShare":{"type":"string","pattern":"^[0-9]+$"},"exDate":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"number","minimum":0},{"type":"string"}]},"recordDate":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"number","minimum":0},{"type":"string"}]},"paymentDate":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"number","minimum":0},{"type":"string"}]},"claimDeadline":{"anyOf":[{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"number","minimum":0},{"type":"string"}]},{"type":"null"}]},"kind":{"anyOf":[{"$ref":"#/components/schemas/DividendKind"},{"type":"null"}]},"countryCode":{"type":"string","pattern":"^[A-Za-z]{2}$"}},"required":["amountPerShare","exDate","recordDate","paymentDate","countryCode"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"},"get":{"tags":["Yield and distributions"],"operationId":"v2/token/listDividends","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"sort","in":"query","schema":{"type":"string"},"required":false},{"name":"page","in":"query","schema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":200},"offset":{"type":"integer","minimum":0}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"filter","in":"query","schema":{"type":"object","properties":{"dividendId":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"paymentDate":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"status":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"dividendId","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"paymentDate","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"status","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"featureAddress","in":"query","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":false}],"responses":{"200":{"description":"One page of dividends for the selected token's attached dividend-yield feature. Use a row's dividend identifier for snapshot, claim, top-up, or reclaim calls.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"featureAddress":{"$ref":"#/components/schemas/EvmAddress"},"scheduleAddress":{"$ref":"#/components/schemas/EvmAddress"},"denominationAsset":{"type":"object","properties":{"address":{"$ref":"#/components/schemas/EvmAddress"},"symbol":{"anyOf":[{"type":"string"},{"type":"null"}]},"decimals":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]}},"required":["address","symbol","decimals"],"additionalProperties":false},"dividendId":{"type":"string","pattern":"^[0-9]+$"},"amountPerShareExact":{"type":"string","pattern":"^[0-9]+$"},"exDate":{"type":"string"},"recordDate":{"type":"string"},"paymentDate":{"type":"string"},"claimDeadline":{"type":"string"},"kind":{"$ref":"#/components/schemas/DividendKind"},"status":{"type":"string","enum":["declared","recorded","payable","paid","cancelled","unknown"]},"statusCode":{"type":"integer","minimum":0},"merkleRoot":{"anyOf":[{"$ref":"#/components/schemas/EthereumHashEncoded"},{"type":"null"}]},"totalEntitled":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"totalRequiredExact":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"totalClaimedExact":{"type":"string","pattern":"^[0-9]+$"},"outstandingExact":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"declaredAt":{"type":"string"},"recordedAt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["tokenAddress","featureAddress","scheduleAddress","denominationAsset","dividendId","amountPerShareExact","exDate","recordDate","paymentDate","claimDeadline","kind","status","statusCode","merkleRoot","totalEntitled","totalRequiredExact","totalClaimedExact","outstandingExact","declaredAt","recordedAt"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0},"facets":{"type":"object","additionalProperties":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"count":{"type":"integer","minimum":0}},"required":["value","count"],"additionalProperties":false}}}},"required":["total"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"},"first":{"type":"string"},"prev":{"anyOf":[{"type":"string"},{"type":"null"}]},"next":{"anyOf":[{"type":"string"},{"type":"null"}]},"last":{"type":"string"}},"required":["self","first","prev","next","last"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"tokenAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","featureAddress":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","scheduleAddress":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","denominationAsset":{"address":"0x5FbDB2315678afecb367f032d93F642f64180aa3","symbol":"EURC","decimals":6},"dividendId":"1","amountPerShareExact":"50000","exDate":"2026-01-01T00:00:00.000Z","recordDate":"2026-01-02T00:00:00.000Z","paymentDate":"2026-01-03T00:00:00.000Z","claimDeadline":"2026-04-03T00:00:00.000Z","kind":"regular","status":"payable","statusCode":2,"merkleRoot":"0xabcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789","totalEntitled":"128","totalRequiredExact":"2500000000","totalClaimedExact":"1000000000","outstandingExact":"1500000000","declaredAt":"2025-12-15T09:12:41.000Z","recordedAt":"2026-01-02T00:05:00.000Z"}],"meta":{"total":1},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/features/dividend-yield/dividends","first":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/features/dividend-yield/dividends","prev":null,"next":null,"last":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/features/dividend-yield/dividends"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","TOKEN_ACCESS_INTERFACE_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"TOKEN_ACCESS_INTERFACE_UNSUPPORTED","status":422,"message":"The token exposes neither ERC-3643 nor the supported SMART access-control interface.","data":{"id":"DALP-12025","why":"The platform reads the indexed token interface before it resolves roles; this token reports neither interface, so no role check can run. `data.tokenAddress` names the token.","fix":"Use a token that implements ERC-3643 or the supported SMART access-control interface, or correct the indexed token interface metadata, then retry.","retryable":false,"category":"domain","tokenAddress":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","FINANCIAL_YIELD_OPERATION_REJECTED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of dividends for the selected token's attached dividend-yield feature. Each row includes dates, status, Merkle root, and funding figures. Default sort is payment date descending. The list is indexed and idempotent. Use a row's dividend identifier for snapshot, claim, top-up, or reclaim calls.","summary":"List dividends","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/features/dividend-yield/dividends/{dividendId}/snapshot":{"post":{"tags":["Yield and distributions"],"operationId":"v2/token/recordDividendSnapshot","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"dividendId","in":"path","schema":{"type":"string","pattern":"^[0-9]+$"},"required":true},{"name":"featureAddress","in":"query","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":false},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"HTTP 200 is either a snapshot preview or a settled record. Without confirm true, the body is a preview: stage is preview, no transaction is queued, and ready is true only after indexed holder balances at the record date produce a Merkle root. Echo rootPreview as merkleRoot with totalEntitled and totalRequired on the next call with confirm true. If ready is false, wait for record-date finality and call again without confirm. With confirm true and Prefer: wait, the body is the settled token mutation envelope after recordSnapshot is on-chain; holders can then read their proof and claim. A confirm that is still queued answers 202 instead.","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"stage":{"type":"string","enum":["preview"]},"ready":{"type":"boolean"},"notReadyReason":{"type":"string","enum":["awaiting_finality","not_computed"]},"rootPreview":{"anyOf":[{"$ref":"#/components/schemas/EthereumHashEncoded"},{"type":"null"}]},"totalEntitled":{"type":"string","pattern":"^[0-9]+$"},"holderCount":{"type":"integer","minimum":0},"totalRequired":{"type":"string","pattern":"^[0-9]+$"},"denomBalanceAtRecord":{"type":"string","pattern":"^[0-9]+$"},"shortfall":{"type":"string","pattern":"^[0-9]+$"}},"required":["stage","ready","rootPreview","totalEntitled","holderCount","totalRequired","denomBalanceAtRecord","shortfall"],"additionalProperties":false},{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenRecord"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false}]},"examples":{"example-1":{"value":{"stage":"preview","ready":true,"rootPreview":"0xabcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789","totalEntitled":"128","holderCount":128,"totalRequired":"2500000000","denomBalanceAtRecord":"2500000000","shortfall":"0"}},"example-2":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","tokenFactory":"0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0","complianceContract":"0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9","identityRegistry":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","type":"bond","createdAt":"2026-03-04T09:12:41.000Z","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"basePrice":"100.00","basePriceCurrencyCode":"EUR","totalSupply":"2500000.00","totalSupplyExact":"2500000000000000000000000","extensions":["ACCESS_MANAGED","BOND","CAPPED","REDEEMABLE"],"implementsERC3643":true,"smartInterface":2,"implementsSMART":true,"pausable":{"paused":false},"collateral":null,"capped":{"cap":"5000000.00","capExact":"5000000000000000000000000"},"createdBy":{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"},"redeemable":{"redeemedAmount":"0","redeemedAmountExact":"0"},"yield":null,"bond":{"faceValue":"100.00","faceValueExact":"100000000000000000000","isMatured":false,"maturityDate":"2029-03-04T00:00:00.000Z","totalRedeemed":"0","totalRedeemedExact":"0","denominationAsset":{"id":"0x5FbDB2315678afecb367f032d93F642f64180aa3","symbol":"EURC","decimals":6}},"fund":null,"complianceModuleConfigs":[],"stats":{"balancesCount":12,"totalValueInBaseCurrency":"250000000.00","totalBurned":"0","totalBurnedExact":"0"}},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"]},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","FINANCIAL_YIELD_OPERATION_REJECTED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Without confirm true, returns a snapshot preview and does not queue a transaction. The preview is computed from indexed holder balances at the record date. With confirm true, records the reviewed Merkle root on-chain so holders can later claim. Confirm requires merkleRoot, totalEntitled, and totalRequired from the preview. Prefer: wait=<seconds> waits for settlement of the confirm path. If the preview is not ready, wait and call again without confirm.","summary":"Preview or record a dividend snapshot","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"confirm":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"merkleRoot":{"anyOf":[{"$ref":"#/components/schemas/EthereumHashEncoded"},{"type":"null"}]},"totalEntitled":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"totalRequired":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]}},"additionalProperties":false}}},"required":false},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/features/dividend-yield/dividends/{dividendId}/claims":{"post":{"tags":["Yield and distributions"],"operationId":"v2/token/claimDividend","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"dividendId","in":"path","schema":{"type":"string","pattern":"^[0-9]+$"},"required":true},{"name":"featureAddress","in":"query","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":false},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous mutation result (HTTP 200). The write settled within the request wait window. `data` is the token an EVM write moved, or the Canton operation a Canton write submitted.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenRecord"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","tokenFactory":"0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0","complianceContract":"0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9","identityRegistry":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","type":"bond","createdAt":"2026-03-04T09:12:41.000Z","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"basePrice":"100.00","basePriceCurrencyCode":"EUR","totalSupply":"2500000.00","totalSupplyExact":"2500000000000000000000000","extensions":["ACCESS_MANAGED","BOND","CAPPED","REDEEMABLE"],"implementsERC3643":true,"smartInterface":2,"implementsSMART":true,"pausable":{"paused":false},"collateral":null,"capped":{"cap":"5000000.00","capExact":"5000000000000000000000000"},"createdBy":{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"},"redeemable":{"redeemedAmount":"0","redeemedAmountExact":"0"},"yield":null,"bond":{"faceValue":"100.00","faceValueExact":"100000000000000000000","isMatured":false,"maturityDate":"2029-03-04T00:00:00.000Z","totalRedeemed":"0","totalRedeemedExact":"0","denominationAsset":{"id":"0x5FbDB2315678afecb367f032d93F642f64180aa3","symbol":"EURC","decimals":6}},"fund":null,"complianceModuleConfigs":[],"stats":{"balancesCount":12,"totalValueInBaseCurrency":"250000000.00","totalBurned":"0","totalBurnedExact":"0"}},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"]},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","FINANCIAL_YIELD_OPERATION_REJECTED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Claims the named dividend for the authenticated holder after the snapshot is recorded and the payment date is open. Read the caller's proof first to confirm entitlement. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement. A Canton body runs `YieldDistribution_Claim` against the `YieldDistribution` contract the body names.","summary":"Claim a dividend","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]}},"additionalProperties":false}}},"required":false},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/features/dividend-yield/dividends/{dividendId}/cancel":{"post":{"tags":["Yield and distributions"],"operationId":"v2/token/cancelDividend","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"dividendId","in":"path","schema":{"type":"string","pattern":"^[0-9]+$"},"required":true},{"name":"featureAddress","in":"query","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":false},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous mutation result (HTTP 200). The write settled within the request wait window. `data` is the token an EVM write moved, or the Canton operation a Canton write submitted.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenRecord"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","tokenFactory":"0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0","complianceContract":"0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9","identityRegistry":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","type":"bond","createdAt":"2026-03-04T09:12:41.000Z","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"basePrice":"100.00","basePriceCurrencyCode":"EUR","totalSupply":"2500000.00","totalSupplyExact":"2500000000000000000000000","extensions":["ACCESS_MANAGED","BOND","CAPPED","REDEEMABLE"],"implementsERC3643":true,"smartInterface":2,"implementsSMART":true,"pausable":{"paused":false},"collateral":null,"capped":{"cap":"5000000.00","capExact":"5000000000000000000000000"},"createdBy":{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"},"redeemable":{"redeemedAmount":"0","redeemedAmountExact":"0"},"yield":null,"bond":{"faceValue":"100.00","faceValueExact":"100000000000000000000","isMatured":false,"maturityDate":"2029-03-04T00:00:00.000Z","totalRedeemed":"0","totalRedeemedExact":"0","denominationAsset":{"id":"0x5FbDB2315678afecb367f032d93F642f64180aa3","symbol":"EURC","decimals":6}},"fund":null,"complianceModuleConfigs":[],"stats":{"balancesCount":12,"totalValueInBaseCurrency":"250000000.00","totalBurned":"0","totalBurnedExact":"0"}},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"]},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","FINANCIAL_YIELD_OPERATION_REJECTED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Cancels a declared dividend that has not yet been paid. Later claims against this dividend fail. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement. After settlement, list dividends to confirm the cancelled status. A Canton body runs `DividendYield_Revoke` on the `DividendYield` config contract to retire the feature, or `YieldDistribution_Revoke` on the `YieldDistribution` contract to retire one distribution the body names.","summary":"Cancel a dividend","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]}},"additionalProperties":false}}},"required":false},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/features/dividend-yield/dividends/{dividendId}/top-ups":{"post":{"tags":["Yield and distributions"],"operationId":"v2/token/topUpDividendDenomination","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"dividendId","in":"path","schema":{"type":"string","pattern":"^[0-9]+$"},"required":true},{"name":"featureAddress","in":"query","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":false},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled token after the yield write completed within the wait window. data is the indexed token. meta.txHashes are the submitted transactions.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenRecord"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","tokenFactory":"0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0","complianceContract":"0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9","identityRegistry":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","type":"bond","createdAt":"2026-03-04T09:12:41.000Z","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"basePrice":"100.00","basePriceCurrencyCode":"EUR","totalSupply":"2500000.00","totalSupplyExact":"2500000000000000000000000","extensions":["ACCESS_MANAGED","BOND","CAPPED","REDEEMABLE"],"implementsERC3643":true,"smartInterface":2,"implementsSMART":true,"pausable":{"paused":false},"collateral":null,"capped":{"cap":"5000000.00","capExact":"5000000000000000000000000"},"createdBy":{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"},"redeemable":{"redeemedAmount":"0","redeemedAmountExact":"0"},"yield":null,"bond":{"faceValue":"100.00","faceValueExact":"100000000000000000000","isMatured":false,"maturityDate":"2029-03-04T00:00:00.000Z","totalRedeemed":"0","totalRedeemedExact":"0","denominationAsset":{"id":"0x5FbDB2315678afecb367f032d93F642f64180aa3","symbol":"EURC","decimals":6}},"fund":null,"complianceModuleConfigs":[],"stats":{"balancesCount":12,"totalValueInBaseCurrency":"250000000.00","totalBurned":"0","totalBurnedExact":"0"}},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"]},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","FINANCIAL_YIELD_OPERATION_REJECTED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Transfers denomination assets from the caller to the treasury address that pays dividends on the attached dividend-yield feature. The treasury still has to approve the feature as a spender before holders can claim. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement.","summary":"Top up a dividend denomination","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"amount":{"type":"string","pattern":"^[0-9]+$"}},"required":["amount"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/features/dividend-yield/dividends/{dividendId}/proofs/me":{"get":{"tags":["Yield and distributions"],"operationId":"v2/token/dividendProofMe","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"dividendId","in":"path","schema":{"type":"string","pattern":"^[0-9]+$"},"required":true},{"name":"featureAddress","in":"query","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":false}],"responses":{"200":{"description":"Indexed Merkle proof the authenticated holder uses to claim the named dividend. Call this after the snapshot is recorded and before you claim.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"featureAddress":{"$ref":"#/components/schemas/EvmAddress"},"scheduleAddress":{"$ref":"#/components/schemas/EvmAddress"},"dividendId":{"type":"string","pattern":"^[0-9]+$"},"holder":{"$ref":"#/components/schemas/EvmAddress"},"leafIndex":{"type":"string","pattern":"^[0-9]+$"},"amountExact":{"type":"string","pattern":"^[0-9]+$"},"proof":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"computedAtBlock":{"type":"string","pattern":"^[0-9]+$"},"computedAt":{"type":"string"}},"required":["tokenAddress","featureAddress","scheduleAddress","dividendId","holder","leafIndex","amountExact","proof","computedAtBlock","computedAt"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"tokenAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","featureAddress":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","scheduleAddress":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","dividendId":"1","holder":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","leafIndex":"17","amountExact":"1250000","proof":["0xabcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789"],"computedAtBlock":"21450000","computedAt":"2026-01-02T00:05:00.000Z"},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/features/dividend-yield/dividends/1/proofs/me"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","TOKEN_ACCESS_INTERFACE_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"TOKEN_ACCESS_INTERFACE_UNSUPPORTED","status":422,"message":"The token exposes neither ERC-3643 nor the supported SMART access-control interface.","data":{"id":"DALP-12025","why":"The platform reads the indexed token interface before it resolves roles; this token reports neither interface, so no role check can run. `data.tokenAddress` names the token.","fix":"Use a token that implements ERC-3643 or the supported SMART access-control interface, or correct the indexed token interface metadata, then retry.","retryable":false,"category":"domain","tokenAddress":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","FINANCIAL_YIELD_OPERATION_REJECTED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the authenticated holder's persisted Merkle proof leaf for the named dividend. The proof is what the claim path consumes. The read is indexed and idempotent. Call this after the snapshot is recorded and before you claim.","summary":"Read the caller's dividend proof","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/features/dividend-yield/holder-position":{"get":{"tags":["Yield and distributions"],"operationId":"v2/token/dividendHolderPosition","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true}],"responses":{"200":{"description":"Indexed aggregate dividend-claim state for the authenticated holder on this token's dividend-yield feature.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"featureAddress":{"$ref":"#/components/schemas/EvmAddress"},"scheduleAddress":{"$ref":"#/components/schemas/EvmAddress"},"holder":{"$ref":"#/components/schemas/EvmAddress"},"totalClaimedExact":{"type":"string","pattern":"^[0-9]+$"},"lastClaimedAtBlock":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"lastClaimedAt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["tokenAddress","featureAddress","scheduleAddress","holder","totalClaimedExact","lastClaimedAtBlock","lastClaimedAt"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"tokenAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","featureAddress":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","scheduleAddress":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","holder":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","totalClaimedExact":"125000000","lastClaimedAtBlock":"21450881","lastClaimedAt":"2026-03-04T09:12:41.000Z"},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/features/dividend-yield/holder-position"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","TOKEN_ACCESS_INTERFACE_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"TOKEN_ACCESS_INTERFACE_UNSUPPORTED","status":422,"message":"The token exposes neither ERC-3643 nor the supported SMART access-control interface.","data":{"id":"DALP-12025","why":"The platform reads the indexed token interface before it resolves roles; this token reports neither interface, so no role check can run. `data.tokenAddress` names the token.","fix":"Use a token that implements ERC-3643 or the supported SMART access-control interface, or correct the indexed token interface metadata, then retry.","retryable":false,"category":"domain","tokenAddress":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","FINANCIAL_YIELD_OPERATION_REJECTED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the authenticated holder's aggregate claim state across dividends on this token's attached dividend-yield feature, including total claimed and the last claim time. The read is indexed and idempotent. Use list dividends and the per-dividend proof to inspect a single dividend.","summary":"Read the caller's dividend position","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/features/dividend-yield/issuer-stats":{"get":{"tags":["Yield and distributions"],"operationId":"v2/token/dividendIssuerStats","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true}],"responses":{"200":{"description":"Issuer-level unclaimed and reclaimable dividend totals. stillClaimableExact is inside a deadline. expiredReclaimableExact is past a deadline.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"featureAddress":{"$ref":"#/components/schemas/EvmAddress"},"stillClaimableExact":{"type":"string","pattern":"^[0-9]+$"},"expiredReclaimableExact":{"type":"string","pattern":"^[0-9]+$"},"funding":{"anyOf":[{"$ref":"#/components/schemas/FundingCoverage"},{"type":"null"}]}},"required":["tokenAddress","featureAddress","stillClaimableExact","expiredReclaimableExact","funding"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"tokenAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","featureAddress":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","stillClaimableExact":"800000000","expiredReclaimableExact":"150000000","funding":{"available":"900000000","outstanding":"800000000","projected":"200000000","coverageBps":9000,"status":"at-risk","measuredAt":"2026-03-11T16:02:08.000Z"}},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/features/dividend-yield/issuer-stats"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","TOKEN_ACCESS_INTERFACE_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"TOKEN_ACCESS_INTERFACE_UNSUPPORTED","status":422,"message":"The token exposes neither ERC-3643 nor the supported SMART access-control interface.","data":{"id":"DALP-12025","why":"The platform reads the indexed token interface before it resolves roles; this token reports neither interface, so no role check can run. `data.tokenAddress` names the token.","fix":"Use a token that implements ERC-3643 or the supported SMART access-control interface, or correct the indexed token interface metadata, then retry.","retryable":false,"category":"domain","tokenAddress":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","FINANCIAL_YIELD_OPERATION_REJECTED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns issuer-level unclaimed and reclaimable denomination totals for this token's attached dividend-yield feature. stillClaimableExact is within the claim deadline. expiredReclaimableExact is past the deadline. The caller must hold an issuer role. The read is indexed and idempotent. Use expiredReclaimableExact before you reclaim unclaimed funds.","summary":"Read dividend issuer statistics","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/features/interest-yield/claims":{"post":{"tags":["Yield and distributions"],"operationId":"v2/token/claimInterest","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Synchronous mutation result (HTTP 200). The write settled within the request wait window. `data` is the token an EVM write moved, or the Canton operation a Canton write submitted.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenRecord"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","tokenFactory":"0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0","complianceContract":"0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9","identityRegistry":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","type":"bond","createdAt":"2026-03-04T09:12:41.000Z","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"basePrice":"100.00","basePriceCurrencyCode":"EUR","totalSupply":"2500000.00","totalSupplyExact":"2500000000000000000000000","extensions":["ACCESS_MANAGED","BOND","CAPPED","REDEEMABLE"],"implementsERC3643":true,"smartInterface":2,"implementsSMART":true,"pausable":{"paused":false},"collateral":null,"capped":{"cap":"5000000.00","capExact":"5000000000000000000000000"},"createdBy":{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"},"redeemable":{"redeemedAmount":"0","redeemedAmountExact":"0"},"yield":null,"bond":{"faceValue":"100.00","faceValueExact":"100000000000000000000","isMatured":false,"maturityDate":"2029-03-04T00:00:00.000Z","totalRedeemed":"0","totalRedeemedExact":"0","denominationAsset":{"id":"0x5FbDB2315678afecb367f032d93F642f64180aa3","symbol":"EURC","decimals":6}},"fund":null,"complianceModuleConfigs":[],"stats":{"balancesCount":12,"totalValueInBaseCurrency":"250000000.00","totalBurned":"0","totalBurnedExact":"0"}},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"]},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","FINANCIAL_YIELD_OPERATION_REJECTED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Claims accrued interest for the authenticated holder on the attached interest-yield feature. Read the holder's interest position first to see accruedExact. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement. A Canton body runs `YieldDistribution_Claim` against the `YieldDistribution` contract the body names.","summary":"Claim accrued interest","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]}},"additionalProperties":false}}},"required":false},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/features/interest-yield/top-ups":{"post":{"tags":["Yield and distributions"],"operationId":"v2/token/topUpInterestTreasury","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled token after the yield write completed within the wait window. data is the indexed token. meta.txHashes are the submitted transactions.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenRecord"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","tokenFactory":"0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0","complianceContract":"0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9","identityRegistry":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","type":"bond","createdAt":"2026-03-04T09:12:41.000Z","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"basePrice":"100.00","basePriceCurrencyCode":"EUR","totalSupply":"2500000.00","totalSupplyExact":"2500000000000000000000000","extensions":["ACCESS_MANAGED","BOND","CAPPED","REDEEMABLE"],"implementsERC3643":true,"smartInterface":2,"implementsSMART":true,"pausable":{"paused":false},"collateral":null,"capped":{"cap":"5000000.00","capExact":"5000000000000000000000000"},"createdBy":{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"},"redeemable":{"redeemedAmount":"0","redeemedAmountExact":"0"},"yield":null,"bond":{"faceValue":"100.00","faceValueExact":"100000000000000000000","isMatured":false,"maturityDate":"2029-03-04T00:00:00.000Z","totalRedeemed":"0","totalRedeemedExact":"0","denominationAsset":{"id":"0x5FbDB2315678afecb367f032d93F642f64180aa3","symbol":"EURC","decimals":6}},"fund":null,"complianceModuleConfigs":[],"stats":{"balancesCount":12,"totalValueInBaseCurrency":"250000000.00","totalBurned":"0","totalBurnedExact":"0"}},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"]},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","FINANCIAL_YIELD_OPERATION_REJECTED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Transfers denomination assets from the caller to the treasury address that pays interest on the attached interest-yield feature. The treasury still has to approve the feature as a spender before holders can claim. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement.","summary":"Top up an interest treasury","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"amount":{"type":"string","pattern":"^[0-9]+$"}},"required":["amount"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/features/interest-yield/rate-history":{"get":{"tags":["Yield and distributions"],"operationId":"v2/token/interestRateHistory","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"sort","in":"query","schema":{"type":"string"},"required":false},{"name":"page","in":"query","schema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":200},"offset":{"type":"integer","minimum":0}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"filter","in":"query","schema":{"type":"object","properties":{"updatedAt":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"newRateBps":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"updatedAt","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"newRateBps","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true}],"responses":{"200":{"description":"One page of indexed interest-rate changes for the selected token's attached interest-yield feature.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"scheduleAddress":{"$ref":"#/components/schemas/EvmAddress"},"oldRateBps":{"type":"integer","minimum":0},"newRateBps":{"type":"integer","minimum":0},"globalIndexExact":{"type":"string","pattern":"^[0-9]+$"},"daycountConvention":{"type":"string","enum":["continuous","act-360","unknown"]},"updatedAtBlock":{"type":"string","pattern":"^[0-9]+$"},"updatedAt":{"type":"string"},"txHash":{"$ref":"#/components/schemas/EthereumHashEncoded"},"logIndex":{"type":"integer","minimum":0}},"required":["tokenAddress","scheduleAddress","oldRateBps","newRateBps","globalIndexExact","daycountConvention","updatedAtBlock","updatedAt","txHash","logIndex"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0},"facets":{"type":"object","additionalProperties":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"count":{"type":"integer","minimum":0}},"required":["value","count"],"additionalProperties":false}}}},"required":["total"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"},"first":{"type":"string"},"prev":{"anyOf":[{"type":"string"},{"type":"null"}]},"next":{"anyOf":[{"type":"string"},{"type":"null"}]},"last":{"type":"string"}},"required":["self","first","prev","next","last"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"tokenAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","scheduleAddress":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","oldRateBps":500,"newRateBps":450,"globalIndexExact":"1025000000000000000","daycountConvention":"continuous","updatedAtBlock":"21450881","updatedAt":"2026-03-04T09:12:41.000Z","txHash":"0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24","logIndex":2}],"meta":{"total":1},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/features/interest-yield/rate-history","first":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/features/interest-yield/rate-history","prev":null,"next":null,"last":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/features/interest-yield/rate-history"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","TOKEN_ACCESS_INTERFACE_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"TOKEN_ACCESS_INTERFACE_UNSUPPORTED","status":422,"message":"The token exposes neither ERC-3643 nor the supported SMART access-control interface.","data":{"id":"DALP-12025","why":"The platform reads the indexed token interface before it resolves roles; this token reports neither interface, so no role check can run. `data.tokenAddress` names the token.","fix":"Use a token that implements ERC-3643 or the supported SMART access-control interface, or correct the indexed token interface metadata, then retry.","retryable":false,"category":"domain","tokenAddress":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","FINANCIAL_YIELD_OPERATION_REJECTED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of indexed interest-rate changes for the selected token's attached interest-yield feature. Each row includes the previous rate, the new rate, the global index, and the transaction that applied the change. Default sort is update time descending. The list is indexed and idempotent.","summary":"List interest rate history","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/features/interest-yield/accrual-periods":{"get":{"tags":["Yield and distributions"],"operationId":"v2/token/interestAccrualPeriods","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"sort","in":"query","schema":{"type":"string"},"required":false},{"name":"page","in":"query","schema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":200},"offset":{"type":"integer","minimum":0}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"filter","in":"query","schema":{"type":"object","properties":{"periodStart":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"periodStart","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true}],"responses":{"200":{"description":"One page of per-holder, per-month interest earned on the selected token's interest-yield feature.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"featureAddress":{"$ref":"#/components/schemas/EvmAddress"},"holder":{"$ref":"#/components/schemas/EvmAddress"},"periodStart":{"type":"string"},"periodEnd":{"type":"string"},"earnedExact":{"type":"string","pattern":"^[0-9]+$"}},"required":["tokenAddress","featureAddress","holder","periodStart","periodEnd","earnedExact"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0},"facets":{"type":"object","additionalProperties":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"count":{"type":"integer","minimum":0}},"required":["value","count"],"additionalProperties":false}}}},"required":["total"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"},"first":{"type":"string"},"prev":{"anyOf":[{"type":"string"},{"type":"null"}]},"next":{"anyOf":[{"type":"string"},{"type":"null"}]},"last":{"type":"string"}},"required":["self","first","prev","next","last"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"tokenAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","featureAddress":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","holder":"0x90F79bf6EB2c4f870365E785982E1f101E93b906","periodStart":"2026-10-01T00:00:00.000Z","periodEnd":"2026-11-01T00:00:00.000Z","earnedExact":"5166666"}],"meta":{"total":1},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/features/interest-yield/accrual-periods","first":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/features/interest-yield/accrual-periods","prev":null,"next":null,"last":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/features/interest-yield/accrual-periods"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","TOKEN_ACCESS_INTERFACE_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"TOKEN_ACCESS_INTERFACE_UNSUPPORTED","status":422,"message":"The token exposes neither ERC-3643 nor the supported SMART access-control interface.","data":{"id":"DALP-12025","why":"The platform reads the indexed token interface before it resolves roles; this token reports neither interface, so no role check can run. `data.tokenAddress` names the token.","fix":"Use a token that implements ERC-3643 or the supported SMART access-control interface, or correct the indexed token interface metadata, then retry.","retryable":false,"category":"domain","tokenAddress":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","FINANCIAL_YIELD_OPERATION_REJECTED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of the interest each holder earned per UTC calendar month on the selected token's attached interest-yield feature, for both the continuous and ACT/360 accrual models. Each period counts interest claimed, still unclaimed, and consumed by a conversion; the current month runs to the chain time of the read. Rows sort by month, newest first by default, then by holder. The caller must hold an issuer role. Repeating the request is safe.","summary":"List interest accrual periods","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/features/interest-yield/holder-position":{"get":{"tags":["Yield and distributions"],"operationId":"v2/token/interestHolderPosition","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true}],"responses":{"200":{"description":"Indexed accrued-interest position for the authenticated holder. Use accruedExact to decide whether to claim.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"featureAddress":{"$ref":"#/components/schemas/EvmAddress"},"scheduleAddress":{"$ref":"#/components/schemas/EvmAddress"},"holder":{"$ref":"#/components/schemas/EvmAddress"},"accruedExact":{"type":"string","pattern":"^[0-9]+$"},"userIndexExact":{"type":"string","pattern":"^[0-9]+$"},"totalClaimedExact":{"type":"string","pattern":"^[0-9]+$"},"lastClaimedAtBlock":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"lastClaimedAt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["tokenAddress","featureAddress","scheduleAddress","holder","accruedExact","userIndexExact","totalClaimedExact","lastClaimedAtBlock","lastClaimedAt"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"tokenAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","featureAddress":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","scheduleAddress":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","holder":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","accruedExact":"840000","userIndexExact":"1025000000000000000","totalClaimedExact":"2100000","lastClaimedAtBlock":"21450881","lastClaimedAt":"2026-03-04T09:12:41.000Z"},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/features/interest-yield/holder-position"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","TOKEN_ACCESS_INTERFACE_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"TOKEN_ACCESS_INTERFACE_UNSUPPORTED","status":422,"message":"The token exposes neither ERC-3643 nor the supported SMART access-control interface.","data":{"id":"DALP-12025","why":"The platform reads the indexed token interface before it resolves roles; this token reports neither interface, so no role check can run. `data.tokenAddress` names the token.","fix":"Use a token that implements ERC-3643 or the supported SMART access-control interface, or correct the indexed token interface metadata, then retry.","retryable":false,"category":"domain","tokenAddress":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","FINANCIAL_YIELD_OPERATION_REJECTED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the authenticated holder's accrued interest on this token's attached interest-yield feature, including accruedExact, user index, and total claimed. The read is indexed and idempotent. Use accruedExact to decide whether to claim.","summary":"Read the caller's interest position","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/features/interest-yield/issuer-stats":{"get":{"tags":["Yield and distributions"],"operationId":"v2/token/interestIssuerStats","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true}],"responses":{"200":{"description":"Issuer-level pending interest at a single instant. pendingExact is a point-in-time estimate at asOf, not a settled figure.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"featureAddress":{"$ref":"#/components/schemas/EvmAddress"},"pendingExact":{"type":"string","pattern":"^[0-9]+$"},"asOf":{"type":"string"},"paused":{"type":"boolean"},"funding":{"anyOf":[{"$ref":"#/components/schemas/FundingCoverage"},{"type":"null"}]}},"required":["tokenAddress","featureAddress","pendingExact","asOf","paused","funding"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"tokenAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","featureAddress":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","pendingExact":"12800000","asOf":"2026-03-11T16:02:08.000Z","paused":false,"funding":{"available":"50000000","outstanding":"12800000","projected":"3200000","coverageBps":31250,"status":"covered","measuredAt":"2026-03-11T16:02:08.000Z"}},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/features/interest-yield/issuer-stats"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","TOKEN_ACCESS_INTERFACE_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"TOKEN_ACCESS_INTERFACE_UNSUPPORTED","status":422,"message":"The token exposes neither ERC-3643 nor the supported SMART access-control interface.","data":{"id":"DALP-12025","why":"The platform reads the indexed token interface before it resolves roles; this token reports neither interface, so no role check can run. `data.tokenAddress` names the token.","fix":"Use a token that implements ERC-3643 or the supported SMART access-control interface, or correct the indexed token interface metadata, then retry.","retryable":false,"category":"domain","tokenAddress":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","FINANCIAL_YIELD_OPERATION_REJECTED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns issuer-level pending interest for this token's attached interest-yield feature. pendingExact is a point-in-time estimate at asOf, not a settled figure. paused is true when the schedule is paused. The caller must hold an issuer role. The read is indexed and idempotent. Use pendingExact to decide a treasury top-up.","summary":"Read interest issuer statistics","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/corporate-actions":{"get":{"tags":["Corporate actions"],"operationId":"v2/token/listCorporateActions","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"sort","in":"query","schema":{"type":"string"},"required":false},{"name":"page","in":"query","schema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":200},"offset":{"type":"integer","minimum":0}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"filter","in":"query","schema":{"type":"object","properties":{"type":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"status":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"createdAt":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"type","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"status","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"createdAt","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object","properties":{"eq":{"type":"string"},"ne":{"type":"string"},"iLike":{"type":"string"},"notILike":{"type":"string"},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"between":{"type":"string"},"isEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"isNotEmpty":{"anyOf":[{"type":"boolean"},{"type":"string"}]},"gt":{"anyOf":[{"type":"string"},{"type":"number"}]},"gte":{"anyOf":[{"type":"string"},{"type":"number"}]},"lt":{"anyOf":[{"type":"string"},{"type":"number"}]},"lte":{"anyOf":[{"type":"string"},{"type":"number"}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true}],"responses":{"200":{"description":"One page of Corporate Actions for the selected token. Filter by type or status. Use a row identifier for preview, confirm, or abort. Send `view=summary` or `fields[corporateAction]` to answer each row without its holder book.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1},"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"type":{"type":"string","enum":["cashDividend","bondCoupon","bonusIssue","rightsIssue","capitalDecrease","stockSplit","spinOff","maturityRedemption","distribution","partialRedemption","conversion","buyback","coordinatedDistribution"]},"status":{"type":"string","enum":["drafted","previewed","approved","executing","completed","aborted"]},"terms":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","enum":["cashDividend"]},"paymentKind":{"anyOf":[{"type":"string","enum":["cash","inKind"]},{"type":"null"}]},"numerator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"denominator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"amountPerShare":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"exDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"paymentDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"claimDeadline":{"anyOf":[{"type":"string"},{"type":"null"}]},"countryCode":{"anyOf":[{"type":"string","pattern":"^[A-Za-z]{2}$"},{"type":"null"}]},"kind":{"anyOf":[{"$ref":"#/components/schemas/DividendKind"},{"type":"null"}]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["distribution"]},"paymentKind":{"anyOf":[{"type":"string","enum":["cash","inKind"]},{"type":"null"}]},"numerator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"denominator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"amountPerShare":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"exDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"paymentDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"claimDeadline":{"anyOf":[{"type":"string"},{"type":"null"}]},"countryCode":{"anyOf":[{"type":"string","pattern":"^[A-Za-z]{2}$"},{"type":"null"}]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["bondCoupon"]},"paymentKind":{"anyOf":[{"type":"string","enum":["cash","inKind"]},{"type":"null"}]},"numerator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"denominator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["bonusIssue"]},"numerator":{"type":"integer","exclusiveMinimum":0},"denominator":{"type":"integer","exclusiveMinimum":0},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional record instant for a bonus issue, stock split, spin-off, or rights issue. A rights issue on the token-sale path does not read it. Omit it to count the holders when the action is previewed. A supplied instant cannot be previewed before the chain time the indexer has reached passes it. Once it is reached, preview reads the holders at that instant from the token's historical-balances feature, and it is refused for an instant the feature does not cover. For a token without historical balances, preview counts the current holders while the indexed chain time is within one minute after the instant, and is refused later. The stored snapshot records the instant whose holders were counted."},"raiseCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"lowerCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]}},"required":["type","numerator","denominator"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["rightsIssue"]},"path":{"type":"string","enum":["allotment","tokenSale"]},"tokenSaleId":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"numerator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"denominator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional record instant for a bonus issue, stock split, spin-off, or rights issue. A rights issue on the token-sale path does not read it. Omit it to count the holders when the action is previewed. A supplied instant cannot be previewed before the chain time the indexer has reached passes it. Once it is reached, preview reads the holders at that instant from the token's historical-balances feature, and it is refused for an instant the feature does not cover. For a token without historical balances, preview counts the current holders while the indexed chain time is within one minute after the instant, and is refused later. The stored snapshot records the instant whose holders were counted."},"raiseCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"lowerCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]}},"required":["type","path"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["capitalDecrease"]},"holders":{"type":"array","items":{"type":"object","properties":{"holder":{"$ref":"#/components/schemas/EvmAddress"},"amount":{"type":"string","pattern":"^[0-9]+$"}},"required":["holder","amount"],"additionalProperties":false},"minItems":1},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"raiseCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"lowerCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]}},"required":["type","holders"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["buyback"]},"holders":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"holder":{"$ref":"#/components/schemas/EvmAddress"},"amount":{"type":"string","pattern":"^[0-9]+$"}},"required":["holder","amount"],"additionalProperties":false},"minItems":1},{"type":"null"}]},"call":{"anyOf":[{"type":"string","enum":["all"]},{"type":"null"}]},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"raiseCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"lowerCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"denominationAsset":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"pricePerUnit":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"payingTreasury":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["partialRedemption"]},"holders":{"type":"array","items":{"type":"object","properties":{"holder":{"$ref":"#/components/schemas/EvmAddress"},"amount":{"type":"string","pattern":"^[0-9]+$"}},"required":["holder","amount"],"additionalProperties":false},"minItems":1},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"raiseCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"lowerCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"denominationAsset":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"pricePerUnit":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"payingTreasury":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]}},"required":["type","holders"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["stockSplit"]},"direction":{"type":"string","enum":["forward","reverse"]},"numerator":{"type":"integer","exclusiveMinimum":0},"denominator":{"type":"integer","exclusiveMinimum":0},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional record instant for a bonus issue, stock split, spin-off, or rights issue. A rights issue on the token-sale path does not read it. Omit it to count the holders when the action is previewed. A supplied instant cannot be previewed before the chain time the indexer has reached passes it. Once it is reached, preview reads the holders at that instant from the token's historical-balances feature, and it is refused for an instant the feature does not cover. For a token without historical balances, preview counts the current holders while the indexed chain time is within one minute after the instant, and is refused later. The stored snapshot records the instant whose holders were counted."},"raiseCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"lowerCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]}},"required":["type","direction","numerator","denominator"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["spinOff"]},"childTokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"numerator":{"type":"integer","exclusiveMinimum":0},"denominator":{"type":"integer","exclusiveMinimum":0},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional record instant for a bonus issue, stock split, spin-off, or rights issue. A rights issue on the token-sale path does not read it. Omit it to count the holders when the action is previewed. A supplied instant cannot be previewed before the chain time the indexer has reached passes it. Once it is reached, preview reads the holders at that instant from the token's historical-balances feature, and it is refused for an instant the feature does not cover. For a token without historical balances, preview counts the current holders while the indexed chain time is within one minute after the instant, and is refused later. The stored snapshot records the instant whose holders were counted."}},"required":["type","childTokenAddress","numerator","denominator"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["maturityRedemption","conversion"]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["coordinatedDistribution"]},"poolAmount":{"type":"string","pattern":"^[0-9]+$"},"denominationAsset":{"$ref":"#/components/schemas/EvmAddress"},"exDate":{"type":"string"},"recordDate":{"type":"string"},"paymentDate":{"type":"string"},"determinationKind":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"claimDeadline":{"anyOf":[{"type":"string"},{"type":"null"}]},"countryCode":{"anyOf":[{"type":"string","pattern":"^[A-Za-z]{2}$"},{"type":"null"}]}},"required":["type","poolAmount","denominationAsset","exDate","recordDate","paymentDate"],"additionalProperties":false}]},"snapshot":{"anyOf":[{"type":"object","properties":{"identity":{"type":"string","minLength":1},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The instant whose holders this snapshot counted. A bonus issue, rights issue, stock split, spin-off, stock dividend, or in-kind bond coupon or distribution stores its record date when preview read the holders at that date, and otherwise the instant its holder book was read. A cash dividend or cash distribution stores its declared record date. An action that settles announced per-holder amounts (capital decrease, partial redemption, buyback) stores null."},"remainder":{"type":"string","pattern":"^[0-9]+$"},"denominationShortfall":{"type":"string","pattern":"^[0-9]+$"}},"required":["identity","recordDate","remainder","denominationShortfall"],"additionalProperties":false},{"type":"null"}]},"holders":{"type":"array","items":{"type":"object","properties":{"holder":{"$ref":"#/components/schemas/EvmAddress"},"amount":{"type":"string","pattern":"^[0-9]+$"},"state":{"type":"string","enum":["applied","skipped","remaining","zeroAfterFloor"]},"transactionHash":{"anyOf":[{"$ref":"#/components/schemas/EthereumHashEncoded"},{"type":"null"}]},"classToken":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]}},"required":["holder","amount","state"],"additionalProperties":false}},"dividendId":{"anyOf":[{"type":"string"},{"type":"null"}]},"tokenSaleId":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"childTokenAddress":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"followsUpOn":{"anyOf":[{"type":"string"},{"type":"null"}]},"transactionRequestId":{"anyOf":[{"type":"string"},{"type":"null"}]},"transactionHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"approval":{"type":"object","properties":{"policy":{"type":"string","enum":["required","not_required","not_applicable"]},"waiver":{"anyOf":[{"type":"string","enum":["organization-disabled","too-few-approvers"]},{"type":"null"}]},"state":{"type":"string","enum":["pending","approved","denied","expired","not_required"]},"proposerUserId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"checkerUserId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"decidedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"rejectionReason":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"expiresAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"planDigest":{"type":"string","pattern":"^[0-9a-f]{64}$"}},"required":["policy","waiver","state","proposerUserId","checkerUserId","decidedAt","rejectionReason","expiresAt","planDigest"],"additionalProperties":false},"appliedSplit":{"anyOf":[{"type":"object","properties":{"determinationKind":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"legs":{"type":"array","items":{"type":"object","properties":{"classToken":{"$ref":"#/components/schemas/EvmAddress"},"role":{"type":"string","minLength":1},"rank":{"type":"integer","minimum":0},"leg":{"type":"string","pattern":"^[0-9]+$"},"priorityLeg":{"type":"string","pattern":"^[0-9]+$"},"requestId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]}},"required":["classToken","role","rank","leg","priorityLeg","requestId"],"additionalProperties":false}},"classDividendsOpen":{"type":"boolean"},"fundingSent":{"type":"boolean"},"fundingRequestId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]}},"required":["determinationKind","legs","classDividendsOpen","fundingSent","fundingRequestId"],"additionalProperties":false},{"type":"null"}]}},"required":["id","tokenAddress","type","status","terms","snapshot","holders","dividendId","tokenSaleId","childTokenAddress","followsUpOn","transactionRequestId","transactionHashes","createdAt","updatedAt","approval","appliedSplit"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0},"facets":{"type":"object","additionalProperties":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"count":{"type":"integer","minimum":0}},"required":["value","count"],"additionalProperties":false}}}},"required":["total"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"},"first":{"type":"string"},"prev":{"anyOf":[{"type":"string"},{"type":"null"}]},"next":{"anyOf":[{"type":"string"},{"type":"null"}]},"last":{"type":"string"}},"required":["self","first","prev","next","last"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","tokenAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","type":"bonusIssue","status":"drafted","terms":{"type":"bonusIssue","numerator":3,"denominator":2},"snapshot":null,"holders":[],"dividendId":null,"tokenSaleId":null,"childTokenAddress":null,"followsUpOn":null,"transactionRequestId":null,"transactionHashes":[],"createdAt":"2026-03-04T09:12:41.000Z","updatedAt":"2026-03-04T09:12:41.000Z","approval":{"policy":"not_required","waiver":null,"state":"pending","proposerUserId":null,"checkerUserId":null,"decidedAt":null,"rejectionReason":null,"expiresAt":null,"planDigest":"3b8f1d2c4a5e6f708192a3b4c5d6e7f8091a2b3c4d5e6f708192a3b4c5d6e7f8"},"appliedSplit":null}],"meta":{"total":1},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/corporate-actions","first":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/corporate-actions","prev":null,"next":null,"last":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/corporate-actions"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CORPORATE_ACTION_CALL_PROTECTED","CORPORATE_ACTION_CAPABILITY_MISSING","CORPORATE_ACTION_CASH_LEG_BURN_FEE","CORPORATE_ACTION_CASH_LEG_NEEDS_SMART_ACCOUNT","CORPORATE_ACTION_CASH_LEG_SELF_DENOMINATED","CORPORATE_ACTION_CASH_LEG_UNDERFUNDED","CORPORATE_ACTION_CASH_LEG_UNPAYABLE_HOLDER","CORPORATE_ACTION_CASH_LEG_UNVERIFIABLE_ASSET","CORPORATE_ACTION_CASH_LEG_WALLET_MISMATCH","CORPORATE_ACTION_CHILD_NOT_EMPTY","CORPORATE_ACTION_CHILD_UNAUTHORIZED","CORPORATE_ACTION_COMPLETE_ON_CREATE","CORPORATE_ACTION_DIVIDEND_UNLINKED","CORPORATE_ACTION_ELECTION_ABSENT","CORPORATE_ACTION_ELECTION_CLOSED","CORPORATE_ACTION_ELECTION_DEADLINE_INVALID","CORPORATE_ACTION_ELECTION_HOLDER_INELIGIBLE","CORPORATE_ACTION_ELECTION_HOLDER_UNAUTHORIZED","CORPORATE_ACTION_ELECTION_LOCKED","CORPORATE_ACTION_ELECTION_OPEN","CORPORATE_ACTION_ELECTION_OPTION_INVALID","CORPORATE_ACTION_ELECTION_SHAPE_INVALID","CORPORATE_ACTION_FOLLOW_UP_UNKNOWN","CORPORATE_ACTION_HISTORICAL_BALANCES","CORPORATE_ACTION_IDEMPOTENCY_CONFLICT","CORPORATE_ACTION_INSTRUMENT_MISSING","CORPORATE_ACTION_NOT_FOUND","CORPORATE_ACTION_PAYOUT_INELIGIBLE","CORPORATE_ACTION_POOL_UNFUNDABLE","CORPORATE_ACTION_PREVIEW_MISMATCH","CORPORATE_ACTION_PREVIEW_REQUIRED","CORPORATE_ACTION_PROGRAM_MISSING","CORPORATE_ACTION_SALE_DISABLED","CORPORATE_ACTION_SALE_MISSING","CORPORATE_ACTION_SALE_TOKEN_MISMATCH","CORPORATE_ACTION_SALE_UNKNOWN","CORPORATE_ACTION_SNAPSHOT_DRIFT","CORPORATE_ACTION_SNAPSHOT_NOT_READY","CORPORATE_ACTION_TOKEN_PAUSED","CORPORATE_ACTION_TOKEN_UNINDEXED","CORPORATE_ACTION_WATERFALL_CANNOT_RECEIVE","CORPORATE_ACTION_WRONG_STATUS","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","TOKEN_ACCESS_INTERFACE_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"TOKEN_ACCESS_INTERFACE_UNSUPPORTED","status":422,"message":"The token exposes neither ERC-3643 nor the supported SMART access-control interface.","data":{"id":"DALP-12025","why":"The platform reads the indexed token interface before it resolves roles; this token reports neither interface, so no role check can run. `data.tokenAddress` names the token.","fix":"Use a token that implements ERC-3643 or the supported SMART access-control interface, or correct the indexed token interface metadata, then retry.","retryable":false,"category":"domain","tokenAddress":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of Corporate Actions for this token in the active organization and request chain. Filter by type or status. Each row includes terms, snapshot identity, remainder, applied, skipped, and remaining holders, and transaction hashes. Send `view=summary` to answer every row without its holder book, or `fields[corporateAction]` to keep only the summary members a table renders; the summary carries `holderCounts` and `transactionHashCount` where the record carries the holders and the hashes. The read is indexed and idempotent.","summary":"List Corporate Actions","x-dalp-auth":"session-or-api-key"},"post":{"tags":["Corporate actions"],"operationId":"v2/token/createCorporateAction","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Corporate Action record after a persist that did not queue a chain write.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","minLength":1},"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"type":{"type":"string","enum":["cashDividend","bondCoupon","bonusIssue","rightsIssue","capitalDecrease","stockSplit","spinOff","maturityRedemption","distribution","partialRedemption","conversion","buyback","coordinatedDistribution"]},"status":{"type":"string","enum":["drafted","previewed","approved","executing","completed","aborted"]},"terms":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","enum":["cashDividend"]},"paymentKind":{"anyOf":[{"type":"string","enum":["cash","inKind"]},{"type":"null"}]},"numerator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"denominator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"amountPerShare":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"exDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"paymentDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"claimDeadline":{"anyOf":[{"type":"string"},{"type":"null"}]},"countryCode":{"anyOf":[{"type":"string","pattern":"^[A-Za-z]{2}$"},{"type":"null"}]},"kind":{"anyOf":[{"$ref":"#/components/schemas/DividendKind"},{"type":"null"}]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["distribution"]},"paymentKind":{"anyOf":[{"type":"string","enum":["cash","inKind"]},{"type":"null"}]},"numerator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"denominator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"amountPerShare":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"exDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"paymentDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"claimDeadline":{"anyOf":[{"type":"string"},{"type":"null"}]},"countryCode":{"anyOf":[{"type":"string","pattern":"^[A-Za-z]{2}$"},{"type":"null"}]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["bondCoupon"]},"paymentKind":{"anyOf":[{"type":"string","enum":["cash","inKind"]},{"type":"null"}]},"numerator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"denominator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["bonusIssue"]},"numerator":{"type":"integer","exclusiveMinimum":0},"denominator":{"type":"integer","exclusiveMinimum":0},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional record instant for a bonus issue, stock split, spin-off, or rights issue. A rights issue on the token-sale path does not read it. Omit it to count the holders when the action is previewed. A supplied instant cannot be previewed before the chain time the indexer has reached passes it. Once it is reached, preview reads the holders at that instant from the token's historical-balances feature, and it is refused for an instant the feature does not cover. For a token without historical balances, preview counts the current holders while the indexed chain time is within one minute after the instant, and is refused later. The stored snapshot records the instant whose holders were counted."},"raiseCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"lowerCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]}},"required":["type","numerator","denominator"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["rightsIssue"]},"path":{"type":"string","enum":["allotment","tokenSale"]},"tokenSaleId":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"numerator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"denominator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional record instant for a bonus issue, stock split, spin-off, or rights issue. A rights issue on the token-sale path does not read it. Omit it to count the holders when the action is previewed. A supplied instant cannot be previewed before the chain time the indexer has reached passes it. Once it is reached, preview reads the holders at that instant from the token's historical-balances feature, and it is refused for an instant the feature does not cover. For a token without historical balances, preview counts the current holders while the indexed chain time is within one minute after the instant, and is refused later. The stored snapshot records the instant whose holders were counted."},"raiseCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"lowerCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]}},"required":["type","path"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["capitalDecrease"]},"holders":{"type":"array","items":{"type":"object","properties":{"holder":{"$ref":"#/components/schemas/EvmAddress"},"amount":{"type":"string","pattern":"^[0-9]+$"}},"required":["holder","amount"],"additionalProperties":false},"minItems":1},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"raiseCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"lowerCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]}},"required":["type","holders"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["buyback"]},"holders":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"holder":{"$ref":"#/components/schemas/EvmAddress"},"amount":{"type":"string","pattern":"^[0-9]+$"}},"required":["holder","amount"],"additionalProperties":false},"minItems":1},{"type":"null"}]},"call":{"anyOf":[{"type":"string","enum":["all"]},{"type":"null"}]},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"raiseCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"lowerCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"denominationAsset":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"pricePerUnit":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"payingTreasury":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["partialRedemption"]},"holders":{"type":"array","items":{"type":"object","properties":{"holder":{"$ref":"#/components/schemas/EvmAddress"},"amount":{"type":"string","pattern":"^[0-9]+$"}},"required":["holder","amount"],"additionalProperties":false},"minItems":1},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"raiseCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"lowerCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"denominationAsset":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"pricePerUnit":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"payingTreasury":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]}},"required":["type","holders"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["stockSplit"]},"direction":{"type":"string","enum":["forward","reverse"]},"numerator":{"type":"integer","exclusiveMinimum":0},"denominator":{"type":"integer","exclusiveMinimum":0},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional record instant for a bonus issue, stock split, spin-off, or rights issue. A rights issue on the token-sale path does not read it. Omit it to count the holders when the action is previewed. A supplied instant cannot be previewed before the chain time the indexer has reached passes it. Once it is reached, preview reads the holders at that instant from the token's historical-balances feature, and it is refused for an instant the feature does not cover. For a token without historical balances, preview counts the current holders while the indexed chain time is within one minute after the instant, and is refused later. The stored snapshot records the instant whose holders were counted."},"raiseCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"lowerCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]}},"required":["type","direction","numerator","denominator"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["spinOff"]},"childTokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"numerator":{"type":"integer","exclusiveMinimum":0},"denominator":{"type":"integer","exclusiveMinimum":0},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional record instant for a bonus issue, stock split, spin-off, or rights issue. A rights issue on the token-sale path does not read it. Omit it to count the holders when the action is previewed. A supplied instant cannot be previewed before the chain time the indexer has reached passes it. Once it is reached, preview reads the holders at that instant from the token's historical-balances feature, and it is refused for an instant the feature does not cover. For a token without historical balances, preview counts the current holders while the indexed chain time is within one minute after the instant, and is refused later. The stored snapshot records the instant whose holders were counted."}},"required":["type","childTokenAddress","numerator","denominator"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["maturityRedemption","conversion"]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["coordinatedDistribution"]},"poolAmount":{"type":"string","pattern":"^[0-9]+$"},"denominationAsset":{"$ref":"#/components/schemas/EvmAddress"},"exDate":{"type":"string"},"recordDate":{"type":"string"},"paymentDate":{"type":"string"},"determinationKind":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"claimDeadline":{"anyOf":[{"type":"string"},{"type":"null"}]},"countryCode":{"anyOf":[{"type":"string","pattern":"^[A-Za-z]{2}$"},{"type":"null"}]}},"required":["type","poolAmount","denominationAsset","exDate","recordDate","paymentDate"],"additionalProperties":false}]},"snapshot":{"anyOf":[{"type":"object","properties":{"identity":{"type":"string","minLength":1},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The instant whose holders this snapshot counted. A bonus issue, rights issue, stock split, spin-off, stock dividend, or in-kind bond coupon or distribution stores its record date when preview read the holders at that date, and otherwise the instant its holder book was read. A cash dividend or cash distribution stores its declared record date. An action that settles announced per-holder amounts (capital decrease, partial redemption, buyback) stores null."},"remainder":{"type":"string","pattern":"^[0-9]+$"},"denominationShortfall":{"type":"string","pattern":"^[0-9]+$"}},"required":["identity","recordDate","remainder","denominationShortfall"],"additionalProperties":false},{"type":"null"}]},"holders":{"type":"array","items":{"type":"object","properties":{"holder":{"$ref":"#/components/schemas/EvmAddress"},"amount":{"type":"string","pattern":"^[0-9]+$"},"state":{"type":"string","enum":["applied","skipped","remaining","zeroAfterFloor"]},"transactionHash":{"anyOf":[{"$ref":"#/components/schemas/EthereumHashEncoded"},{"type":"null"}]},"classToken":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]}},"required":["holder","amount","state"],"additionalProperties":false}},"dividendId":{"anyOf":[{"type":"string"},{"type":"null"}]},"tokenSaleId":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"childTokenAddress":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"followsUpOn":{"anyOf":[{"type":"string"},{"type":"null"}]},"transactionRequestId":{"anyOf":[{"type":"string"},{"type":"null"}]},"transactionHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"approval":{"type":"object","properties":{"policy":{"type":"string","enum":["required","not_required","not_applicable"]},"waiver":{"anyOf":[{"type":"string","enum":["organization-disabled","too-few-approvers"]},{"type":"null"}]},"state":{"type":"string","enum":["pending","approved","denied","expired","not_required"]},"proposerUserId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"checkerUserId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"decidedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"rejectionReason":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"expiresAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"planDigest":{"type":"string","pattern":"^[0-9a-f]{64}$"}},"required":["policy","waiver","state","proposerUserId","checkerUserId","decidedAt","rejectionReason","expiresAt","planDigest"],"additionalProperties":false},"appliedSplit":{"anyOf":[{"type":"object","properties":{"determinationKind":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"legs":{"type":"array","items":{"type":"object","properties":{"classToken":{"$ref":"#/components/schemas/EvmAddress"},"role":{"type":"string","minLength":1},"rank":{"type":"integer","minimum":0},"leg":{"type":"string","pattern":"^[0-9]+$"},"priorityLeg":{"type":"string","pattern":"^[0-9]+$"},"requestId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]}},"required":["classToken","role","rank","leg","priorityLeg","requestId"],"additionalProperties":false}},"classDividendsOpen":{"type":"boolean"},"fundingSent":{"type":"boolean"},"fundingRequestId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]}},"required":["determinationKind","legs","classDividendsOpen","fundingSent","fundingRequestId"],"additionalProperties":false},{"type":"null"}]}},"required":["id","tokenAddress","type","status","terms","snapshot","holders","dividendId","tokenSaleId","childTokenAddress","followsUpOn","transactionRequestId","transactionHashes","createdAt","updatedAt","approval","appliedSplit"],"additionalProperties":false},"examples":{"example-1":{"value":{"id":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","tokenAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","type":"bonusIssue","status":"drafted","terms":{"type":"bonusIssue","numerator":3,"denominator":2},"snapshot":null,"holders":[],"dividendId":null,"tokenSaleId":null,"childTokenAddress":null,"followsUpOn":null,"transactionRequestId":null,"transactionHashes":[],"createdAt":"2026-03-04T09:12:41.000Z","updatedAt":"2026-03-04T09:12:41.000Z","approval":{"policy":"not_required","waiver":null,"state":"pending","proposerUserId":null,"checkerUserId":null,"decidedAt":null,"rejectionReason":null,"expiresAt":null,"planDigest":"3b8f1d2c4a5e6f708192a3b4c5d6e7f8091a2b3c4d5e6f708192a3b4c5d6e7f8"},"appliedSplit":null}}}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CORPORATE_ACTION_CALL_PROTECTED","CORPORATE_ACTION_CAPABILITY_MISSING","CORPORATE_ACTION_CASH_LEG_BURN_FEE","CORPORATE_ACTION_CASH_LEG_NEEDS_SMART_ACCOUNT","CORPORATE_ACTION_CASH_LEG_SELF_DENOMINATED","CORPORATE_ACTION_CASH_LEG_UNDERFUNDED","CORPORATE_ACTION_CASH_LEG_UNPAYABLE_HOLDER","CORPORATE_ACTION_CASH_LEG_UNVERIFIABLE_ASSET","CORPORATE_ACTION_CASH_LEG_WALLET_MISMATCH","CORPORATE_ACTION_CHILD_NOT_EMPTY","CORPORATE_ACTION_CHILD_UNAUTHORIZED","CORPORATE_ACTION_COMPLETE_ON_CREATE","CORPORATE_ACTION_DIVIDEND_UNLINKED","CORPORATE_ACTION_ELECTION_ABSENT","CORPORATE_ACTION_ELECTION_CLOSED","CORPORATE_ACTION_ELECTION_DEADLINE_INVALID","CORPORATE_ACTION_ELECTION_HOLDER_INELIGIBLE","CORPORATE_ACTION_ELECTION_HOLDER_UNAUTHORIZED","CORPORATE_ACTION_ELECTION_LOCKED","CORPORATE_ACTION_ELECTION_OPEN","CORPORATE_ACTION_ELECTION_OPTION_INVALID","CORPORATE_ACTION_ELECTION_SHAPE_INVALID","CORPORATE_ACTION_FOLLOW_UP_UNKNOWN","CORPORATE_ACTION_HISTORICAL_BALANCES","CORPORATE_ACTION_IDEMPOTENCY_CONFLICT","CORPORATE_ACTION_INSTRUMENT_MISSING","CORPORATE_ACTION_IN_FLIGHT","CORPORATE_ACTION_NOT_FOUND","CORPORATE_ACTION_PAYOUT_INELIGIBLE","CORPORATE_ACTION_POOL_UNFUNDABLE","CORPORATE_ACTION_PREVIEW_MISMATCH","CORPORATE_ACTION_PREVIEW_REQUIRED","CORPORATE_ACTION_PROGRAM_MISSING","CORPORATE_ACTION_SALE_DISABLED","CORPORATE_ACTION_SALE_MISSING","CORPORATE_ACTION_SALE_TOKEN_MISMATCH","CORPORATE_ACTION_SALE_UNKNOWN","CORPORATE_ACTION_SNAPSHOT_DRIFT","CORPORATE_ACTION_SNAPSHOT_NOT_READY","CORPORATE_ACTION_TOKEN_PAUSED","CORPORATE_ACTION_TOKEN_UNINDEXED","CORPORATE_ACTION_WATERFALL_CANNOT_RECEIVE","CORPORATE_ACTION_WRONG_STATUS","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","FINANCIAL_YIELD_OPERATION_REJECTED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Declares a named Corporate Action on this token. type selects cashDividend, bondCoupon, bonusIssue, rightsIssue, capitalDecrease, stockSplit, or spinOff. Composition types persist as drafted. A token accepts only one in-flight composition at a time. Cash dividend declares dividend-yield and stores dividendId. Bond coupon names the attached fixed-treasury-yield program and completes immediately. First pass has no atomic rebase, market halt, rights instrument, capital-account ledger, or cash remainder.","summary":"Create a Corporate Action","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"election":{"$ref":"#/components/schemas/CorporateActionElectionConfig"},"type":{"type":"string","enum":["cashDividend"]},"paymentKind":{"anyOf":[{"type":"string","enum":["cash","inKind"]},{"type":"null"}]},"numerator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"denominator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"amountPerShare":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"exDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"paymentDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"claimDeadline":{"anyOf":[{"type":"string"},{"type":"null"}]},"countryCode":{"anyOf":[{"type":"string","pattern":"^[A-Za-z]{2}$"},{"type":"null"}]},"kind":{"anyOf":[{"$ref":"#/components/schemas/DividendKind"},{"type":"null"}]},"raiseCap":{"anyOf":[{"not":{}},{"type":"null"}]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"election":{"$ref":"#/components/schemas/CorporateActionElectionConfig"},"type":{"type":"string","enum":["distribution"]},"paymentKind":{"anyOf":[{"type":"string","enum":["cash","inKind"]},{"type":"null"}]},"numerator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"denominator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"amountPerShare":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"exDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"paymentDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"claimDeadline":{"anyOf":[{"type":"string"},{"type":"null"}]},"countryCode":{"anyOf":[{"type":"string","pattern":"^[A-Za-z]{2}$"},{"type":"null"}]},"raiseCap":{"anyOf":[{"not":{}},{"type":"null"}]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"election":{"$ref":"#/components/schemas/CorporateActionElectionConfig"},"type":{"type":"string","enum":["bondCoupon"]},"paymentKind":{"anyOf":[{"type":"string","enum":["cash","inKind"]},{"type":"null"}]},"numerator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"denominator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"raiseCap":{"anyOf":[{"not":{}},{"type":"null"}]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"election":{"$ref":"#/components/schemas/CorporateActionElectionConfig"},"type":{"type":"string","enum":["bonusIssue"]},"numerator":{"type":"integer","exclusiveMinimum":0},"denominator":{"type":"integer","exclusiveMinimum":0},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional record instant for a bonus issue, stock split, spin-off, or rights issue. A rights issue on the token-sale path does not read it. Omit it to count the holders when the action is previewed. A supplied instant cannot be previewed before the chain time the indexer has reached passes it. Once it is reached, preview reads the holders at that instant from the token's historical-balances feature, and it is refused for an instant the feature does not cover. For a token without historical balances, preview counts the current holders while the indexed chain time is within one minute after the instant, and is refused later. The stored snapshot records the instant whose holders were counted."},"raiseCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"lowerCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"followsUpOn":{"anyOf":[{"$ref":"#/components/schemas/CorporateActionId"},{"type":"null"}]}},"required":["type","numerator","denominator"],"additionalProperties":false},{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"election":{"$ref":"#/components/schemas/CorporateActionElectionConfig"},"type":{"type":"string","enum":["rightsIssue"]},"path":{"type":"string","enum":["allotment","tokenSale"]},"tokenSaleId":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"numerator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"denominator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional record instant for a bonus issue, stock split, spin-off, or rights issue. A rights issue on the token-sale path does not read it. Omit it to count the holders when the action is previewed. A supplied instant cannot be previewed before the chain time the indexer has reached passes it. Once it is reached, preview reads the holders at that instant from the token's historical-balances feature, and it is refused for an instant the feature does not cover. For a token without historical balances, preview counts the current holders while the indexed chain time is within one minute after the instant, and is refused later. The stored snapshot records the instant whose holders were counted."},"raiseCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"lowerCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"followsUpOn":{"anyOf":[{"$ref":"#/components/schemas/CorporateActionId"},{"type":"null"}]}},"required":["type","path"],"additionalProperties":false},{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"election":{"$ref":"#/components/schemas/CorporateActionElectionConfig"},"type":{"type":"string","enum":["capitalDecrease"]},"holders":{"type":"array","items":{"type":"object","properties":{"holder":{"$ref":"#/components/schemas/EvmAddress"},"amount":{"type":"string","pattern":"^[0-9]+$"}},"required":["holder","amount"],"additionalProperties":false},"minItems":1},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"raiseCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"lowerCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"followsUpOn":{"anyOf":[{"$ref":"#/components/schemas/CorporateActionId"},{"type":"null"}]}},"required":["type","holders"],"additionalProperties":false},{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"election":{"$ref":"#/components/schemas/CorporateActionElectionConfig"},"type":{"type":"string","enum":["buyback"]},"holders":{"type":"array","items":{"type":"object","properties":{"holder":{"$ref":"#/components/schemas/EvmAddress"},"amount":{"type":"string","pattern":"^[0-9]+$"}},"required":["holder","amount"],"additionalProperties":false},"minItems":1},"call":{"anyOf":[{"not":{}},{"type":"null"}]},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"raiseCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"lowerCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"denominationAsset":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"pricePerUnit":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"payingTreasury":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"followsUpOn":{"anyOf":[{"$ref":"#/components/schemas/CorporateActionId"},{"type":"null"}]}},"required":["type","holders"],"additionalProperties":false},{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"election":{"$ref":"#/components/schemas/CorporateActionElectionConfig"},"type":{"type":"string","enum":["buyback"]},"call":{"type":"string","enum":["all"]},"holders":{"anyOf":[{"not":{}},{"type":"null"}]},"recordDate":{"anyOf":[{"not":{}},{"type":"null"}]},"raiseCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"lowerCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"denominationAsset":{"$ref":"#/components/schemas/EvmAddress"},"pricePerUnit":{"type":"string","pattern":"^[0-9]+$"},"payingTreasury":{"$ref":"#/components/schemas/EvmAddress"},"followsUpOn":{"anyOf":[{"$ref":"#/components/schemas/CorporateActionId"},{"type":"null"}]}},"required":["type","call","denominationAsset","pricePerUnit","payingTreasury"],"additionalProperties":false},{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"election":{"$ref":"#/components/schemas/CorporateActionElectionConfig"},"type":{"type":"string","enum":["partialRedemption"]},"holders":{"type":"array","items":{"type":"object","properties":{"holder":{"$ref":"#/components/schemas/EvmAddress"},"amount":{"type":"string","pattern":"^[0-9]+$"}},"required":["holder","amount"],"additionalProperties":false},"minItems":1},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"raiseCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"lowerCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"denominationAsset":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"pricePerUnit":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"payingTreasury":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"followsUpOn":{"anyOf":[{"$ref":"#/components/schemas/CorporateActionId"},{"type":"null"}]}},"required":["type","holders"],"additionalProperties":false},{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"election":{"$ref":"#/components/schemas/CorporateActionElectionConfig"},"type":{"type":"string","enum":["stockSplit"]},"direction":{"type":"string","enum":["forward","reverse"]},"numerator":{"type":"integer","exclusiveMinimum":0},"denominator":{"type":"integer","exclusiveMinimum":0},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional record instant for a bonus issue, stock split, spin-off, or rights issue. A rights issue on the token-sale path does not read it. Omit it to count the holders when the action is previewed. A supplied instant cannot be previewed before the chain time the indexer has reached passes it. Once it is reached, preview reads the holders at that instant from the token's historical-balances feature, and it is refused for an instant the feature does not cover. For a token without historical balances, preview counts the current holders while the indexed chain time is within one minute after the instant, and is refused later. The stored snapshot records the instant whose holders were counted."},"raiseCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"lowerCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"followsUpOn":{"anyOf":[{"$ref":"#/components/schemas/CorporateActionId"},{"type":"null"}]}},"required":["type","direction","numerator","denominator"],"additionalProperties":false},{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"election":{"$ref":"#/components/schemas/CorporateActionElectionConfig"},"type":{"type":"string","enum":["spinOff"]},"childTokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"numerator":{"type":"integer","exclusiveMinimum":0},"denominator":{"type":"integer","exclusiveMinimum":0},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional record instant for a bonus issue, stock split, spin-off, or rights issue. A rights issue on the token-sale path does not read it. Omit it to count the holders when the action is previewed. A supplied instant cannot be previewed before the chain time the indexer has reached passes it. Once it is reached, preview reads the holders at that instant from the token's historical-balances feature, and it is refused for an instant the feature does not cover. For a token without historical balances, preview counts the current holders while the indexed chain time is within one minute after the instant, and is refused later. The stored snapshot records the instant whose holders were counted."},"followsUpOn":{"anyOf":[{"$ref":"#/components/schemas/CorporateActionId"},{"type":"null"}]}},"required":["type","childTokenAddress","numerator","denominator"],"additionalProperties":false},{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"election":{"$ref":"#/components/schemas/CorporateActionElectionConfig"},"type":{"type":"string","enum":["maturityRedemption","conversion"]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"type":{"type":"string","enum":["coordinatedDistribution"]},"poolAmount":{"type":"string","pattern":"^[0-9]+$"},"denominationAsset":{"$ref":"#/components/schemas/EvmAddress"},"exDate":{"type":"string"},"recordDate":{"type":"string"},"paymentDate":{"type":"string"},"determinationKind":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"claimDeadline":{"anyOf":[{"type":"string"},{"type":"null"}]},"countryCode":{"anyOf":[{"type":"string","pattern":"^[A-Za-z]{2}$"},{"type":"null"}]}},"required":["type","poolAmount","denominationAsset","exDate","recordDate","paymentDate"],"additionalProperties":false}]}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/corporate-actions/{corporateActionId}":{"get":{"tags":["Corporate actions"],"operationId":"v2/token/getCorporateAction","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"corporateActionId","in":"path","schema":{"type":"string","minLength":1},"required":true}],"responses":{"200":{"description":"The stored Corporate Action record, or its summary when the request sent `view=summary` or `fields[corporateAction]`. The summary replaces the holder book with `holderCounts` and carries no announced holder book in `terms`.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","minLength":1},"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"type":{"type":"string","enum":["cashDividend","bondCoupon","bonusIssue","rightsIssue","capitalDecrease","stockSplit","spinOff","maturityRedemption","distribution","partialRedemption","conversion","buyback","coordinatedDistribution"]},"status":{"type":"string","enum":["drafted","previewed","approved","executing","completed","aborted"]},"terms":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","enum":["cashDividend"]},"paymentKind":{"anyOf":[{"type":"string","enum":["cash","inKind"]},{"type":"null"}]},"numerator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"denominator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"amountPerShare":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"exDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"paymentDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"claimDeadline":{"anyOf":[{"type":"string"},{"type":"null"}]},"countryCode":{"anyOf":[{"type":"string","pattern":"^[A-Za-z]{2}$"},{"type":"null"}]},"kind":{"anyOf":[{"$ref":"#/components/schemas/DividendKind"},{"type":"null"}]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["distribution"]},"paymentKind":{"anyOf":[{"type":"string","enum":["cash","inKind"]},{"type":"null"}]},"numerator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"denominator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"amountPerShare":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"exDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"paymentDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"claimDeadline":{"anyOf":[{"type":"string"},{"type":"null"}]},"countryCode":{"anyOf":[{"type":"string","pattern":"^[A-Za-z]{2}$"},{"type":"null"}]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["bondCoupon"]},"paymentKind":{"anyOf":[{"type":"string","enum":["cash","inKind"]},{"type":"null"}]},"numerator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"denominator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["bonusIssue"]},"numerator":{"type":"integer","exclusiveMinimum":0},"denominator":{"type":"integer","exclusiveMinimum":0},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional record instant for a bonus issue, stock split, spin-off, or rights issue. A rights issue on the token-sale path does not read it. Omit it to count the holders when the action is previewed. A supplied instant cannot be previewed before the chain time the indexer has reached passes it. Once it is reached, preview reads the holders at that instant from the token's historical-balances feature, and it is refused for an instant the feature does not cover. For a token without historical balances, preview counts the current holders while the indexed chain time is within one minute after the instant, and is refused later. The stored snapshot records the instant whose holders were counted."},"raiseCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"lowerCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]}},"required":["type","numerator","denominator"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["rightsIssue"]},"path":{"type":"string","enum":["allotment","tokenSale"]},"tokenSaleId":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"numerator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"denominator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional record instant for a bonus issue, stock split, spin-off, or rights issue. A rights issue on the token-sale path does not read it. Omit it to count the holders when the action is previewed. A supplied instant cannot be previewed before the chain time the indexer has reached passes it. Once it is reached, preview reads the holders at that instant from the token's historical-balances feature, and it is refused for an instant the feature does not cover. For a token without historical balances, preview counts the current holders while the indexed chain time is within one minute after the instant, and is refused later. The stored snapshot records the instant whose holders were counted."},"raiseCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"lowerCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]}},"required":["type","path"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["capitalDecrease"]},"holders":{"type":"array","items":{"type":"object","properties":{"holder":{"$ref":"#/components/schemas/EvmAddress"},"amount":{"type":"string","pattern":"^[0-9]+$"}},"required":["holder","amount"],"additionalProperties":false},"minItems":1},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"raiseCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"lowerCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]}},"required":["type","holders"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["buyback"]},"holders":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"holder":{"$ref":"#/components/schemas/EvmAddress"},"amount":{"type":"string","pattern":"^[0-9]+$"}},"required":["holder","amount"],"additionalProperties":false},"minItems":1},{"type":"null"}]},"call":{"anyOf":[{"type":"string","enum":["all"]},{"type":"null"}]},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"raiseCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"lowerCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"denominationAsset":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"pricePerUnit":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"payingTreasury":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["partialRedemption"]},"holders":{"type":"array","items":{"type":"object","properties":{"holder":{"$ref":"#/components/schemas/EvmAddress"},"amount":{"type":"string","pattern":"^[0-9]+$"}},"required":["holder","amount"],"additionalProperties":false},"minItems":1},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"raiseCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"lowerCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"denominationAsset":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"pricePerUnit":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"payingTreasury":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]}},"required":["type","holders"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["stockSplit"]},"direction":{"type":"string","enum":["forward","reverse"]},"numerator":{"type":"integer","exclusiveMinimum":0},"denominator":{"type":"integer","exclusiveMinimum":0},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional record instant for a bonus issue, stock split, spin-off, or rights issue. A rights issue on the token-sale path does not read it. Omit it to count the holders when the action is previewed. A supplied instant cannot be previewed before the chain time the indexer has reached passes it. Once it is reached, preview reads the holders at that instant from the token's historical-balances feature, and it is refused for an instant the feature does not cover. For a token without historical balances, preview counts the current holders while the indexed chain time is within one minute after the instant, and is refused later. The stored snapshot records the instant whose holders were counted."},"raiseCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"lowerCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]}},"required":["type","direction","numerator","denominator"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["spinOff"]},"childTokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"numerator":{"type":"integer","exclusiveMinimum":0},"denominator":{"type":"integer","exclusiveMinimum":0},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional record instant for a bonus issue, stock split, spin-off, or rights issue. A rights issue on the token-sale path does not read it. Omit it to count the holders when the action is previewed. A supplied instant cannot be previewed before the chain time the indexer has reached passes it. Once it is reached, preview reads the holders at that instant from the token's historical-balances feature, and it is refused for an instant the feature does not cover. For a token without historical balances, preview counts the current holders while the indexed chain time is within one minute after the instant, and is refused later. The stored snapshot records the instant whose holders were counted."}},"required":["type","childTokenAddress","numerator","denominator"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["maturityRedemption","conversion"]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["coordinatedDistribution"]},"poolAmount":{"type":"string","pattern":"^[0-9]+$"},"denominationAsset":{"$ref":"#/components/schemas/EvmAddress"},"exDate":{"type":"string"},"recordDate":{"type":"string"},"paymentDate":{"type":"string"},"determinationKind":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"claimDeadline":{"anyOf":[{"type":"string"},{"type":"null"}]},"countryCode":{"anyOf":[{"type":"string","pattern":"^[A-Za-z]{2}$"},{"type":"null"}]}},"required":["type","poolAmount","denominationAsset","exDate","recordDate","paymentDate"],"additionalProperties":false}]},"snapshot":{"anyOf":[{"type":"object","properties":{"identity":{"type":"string","minLength":1},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The instant whose holders this snapshot counted. A bonus issue, rights issue, stock split, spin-off, stock dividend, or in-kind bond coupon or distribution stores its record date when preview read the holders at that date, and otherwise the instant its holder book was read. A cash dividend or cash distribution stores its declared record date. An action that settles announced per-holder amounts (capital decrease, partial redemption, buyback) stores null."},"remainder":{"type":"string","pattern":"^[0-9]+$"},"denominationShortfall":{"type":"string","pattern":"^[0-9]+$"}},"required":["identity","recordDate","remainder","denominationShortfall"],"additionalProperties":false},{"type":"null"}]},"holders":{"type":"array","items":{"type":"object","properties":{"holder":{"$ref":"#/components/schemas/EvmAddress"},"amount":{"type":"string","pattern":"^[0-9]+$"},"state":{"type":"string","enum":["applied","skipped","remaining","zeroAfterFloor"]},"transactionHash":{"anyOf":[{"$ref":"#/components/schemas/EthereumHashEncoded"},{"type":"null"}]},"classToken":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]}},"required":["holder","amount","state"],"additionalProperties":false}},"dividendId":{"anyOf":[{"type":"string"},{"type":"null"}]},"tokenSaleId":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"childTokenAddress":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"followsUpOn":{"anyOf":[{"type":"string"},{"type":"null"}]},"transactionRequestId":{"anyOf":[{"type":"string"},{"type":"null"}]},"transactionHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"approval":{"type":"object","properties":{"policy":{"type":"string","enum":["required","not_required","not_applicable"]},"waiver":{"anyOf":[{"type":"string","enum":["organization-disabled","too-few-approvers"]},{"type":"null"}]},"state":{"type":"string","enum":["pending","approved","denied","expired","not_required"]},"proposerUserId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"checkerUserId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"decidedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"rejectionReason":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"expiresAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"planDigest":{"type":"string","pattern":"^[0-9a-f]{64}$"}},"required":["policy","waiver","state","proposerUserId","checkerUserId","decidedAt","rejectionReason","expiresAt","planDigest"],"additionalProperties":false},"appliedSplit":{"anyOf":[{"type":"object","properties":{"determinationKind":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"legs":{"type":"array","items":{"type":"object","properties":{"classToken":{"$ref":"#/components/schemas/EvmAddress"},"role":{"type":"string","minLength":1},"rank":{"type":"integer","minimum":0},"leg":{"type":"string","pattern":"^[0-9]+$"},"priorityLeg":{"type":"string","pattern":"^[0-9]+$"},"requestId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]}},"required":["classToken","role","rank","leg","priorityLeg","requestId"],"additionalProperties":false}},"classDividendsOpen":{"type":"boolean"},"fundingSent":{"type":"boolean"},"fundingRequestId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]}},"required":["determinationKind","legs","classDividendsOpen","fundingSent","fundingRequestId"],"additionalProperties":false},{"type":"null"}]}},"required":["id","tokenAddress","type","status","terms","snapshot","holders","dividendId","tokenSaleId","childTokenAddress","followsUpOn","transactionRequestId","transactionHashes","createdAt","updatedAt","approval","appliedSplit"],"additionalProperties":false},"examples":{"example-1":{"value":{"id":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","tokenAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","type":"bonusIssue","status":"drafted","terms":{"type":"bonusIssue","numerator":3,"denominator":2},"snapshot":null,"holders":[],"dividendId":null,"tokenSaleId":null,"childTokenAddress":null,"followsUpOn":null,"transactionRequestId":null,"transactionHashes":[],"createdAt":"2026-03-04T09:12:41.000Z","updatedAt":"2026-03-04T09:12:41.000Z","approval":{"policy":"not_required","waiver":null,"state":"pending","proposerUserId":null,"checkerUserId":null,"decidedAt":null,"rejectionReason":null,"expiresAt":null,"planDigest":"3b8f1d2c4a5e6f708192a3b4c5d6e7f8091a2b3c4d5e6f708192a3b4c5d6e7f8"},"appliedSplit":null}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CORPORATE_ACTION_CALL_PROTECTED","CORPORATE_ACTION_CAPABILITY_MISSING","CORPORATE_ACTION_CASH_LEG_BURN_FEE","CORPORATE_ACTION_CASH_LEG_NEEDS_SMART_ACCOUNT","CORPORATE_ACTION_CASH_LEG_SELF_DENOMINATED","CORPORATE_ACTION_CASH_LEG_UNDERFUNDED","CORPORATE_ACTION_CASH_LEG_UNPAYABLE_HOLDER","CORPORATE_ACTION_CASH_LEG_UNVERIFIABLE_ASSET","CORPORATE_ACTION_CASH_LEG_WALLET_MISMATCH","CORPORATE_ACTION_CHILD_NOT_EMPTY","CORPORATE_ACTION_CHILD_UNAUTHORIZED","CORPORATE_ACTION_COMPLETE_ON_CREATE","CORPORATE_ACTION_DIVIDEND_UNLINKED","CORPORATE_ACTION_ELECTION_ABSENT","CORPORATE_ACTION_ELECTION_CLOSED","CORPORATE_ACTION_ELECTION_DEADLINE_INVALID","CORPORATE_ACTION_ELECTION_HOLDER_INELIGIBLE","CORPORATE_ACTION_ELECTION_HOLDER_UNAUTHORIZED","CORPORATE_ACTION_ELECTION_LOCKED","CORPORATE_ACTION_ELECTION_OPEN","CORPORATE_ACTION_ELECTION_OPTION_INVALID","CORPORATE_ACTION_ELECTION_SHAPE_INVALID","CORPORATE_ACTION_FOLLOW_UP_UNKNOWN","CORPORATE_ACTION_HISTORICAL_BALANCES","CORPORATE_ACTION_IDEMPOTENCY_CONFLICT","CORPORATE_ACTION_INSTRUMENT_MISSING","CORPORATE_ACTION_NOT_FOUND","CORPORATE_ACTION_PAYOUT_INELIGIBLE","CORPORATE_ACTION_POOL_UNFUNDABLE","CORPORATE_ACTION_PREVIEW_MISMATCH","CORPORATE_ACTION_PREVIEW_REQUIRED","CORPORATE_ACTION_PROGRAM_MISSING","CORPORATE_ACTION_SALE_DISABLED","CORPORATE_ACTION_SALE_MISSING","CORPORATE_ACTION_SALE_TOKEN_MISMATCH","CORPORATE_ACTION_SALE_UNKNOWN","CORPORATE_ACTION_SNAPSHOT_DRIFT","CORPORATE_ACTION_SNAPSHOT_NOT_READY","CORPORATE_ACTION_TOKEN_PAUSED","CORPORATE_ACTION_TOKEN_UNINDEXED","CORPORATE_ACTION_WATERFALL_CANNOT_RECEIVE","CORPORATE_ACTION_WRONG_STATUS","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","TOKEN_ACCESS_INTERFACE_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"TOKEN_ACCESS_INTERFACE_UNSUPPORTED","status":422,"message":"The token exposes neither ERC-3643 nor the supported SMART access-control interface.","data":{"id":"DALP-12025","why":"The platform reads the indexed token interface before it resolves roles; this token reports neither interface, so no role check can run. `data.tokenAddress` names the token.","fix":"Use a token that implements ERC-3643 or the supported SMART access-control interface, or correct the indexed token interface metadata, then retry.","retryable":false,"category":"domain","tokenAddress":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one Corporate Action for this token, including stored terms, snapshot identity, remainder, applied, skipped, and remaining holders, and landed hashes. Send `view=summary` to answer it without the holder book, or `fields[corporateAction]` to keep only the summary members a sheet renders; the summary carries `holderCounts` and `transactionHashCount` where the record carries the holders and the hashes. Use the record to resume a sheet that is not yet completed or aborted after refresh, and the summary to render a row. The read is indexed and idempotent.","summary":"Read a Corporate Action","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/corporate-actions/{corporateActionId}/preview":{"post":{"tags":["Corporate actions"],"operationId":"v2/token/previewCorporateAction","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"corporateActionId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Stored preview. Review allocations, remainder, and snapshot identity, then confirm those stored values. A cash bond coupon is not previewed; an in-kind one is.","content":{"application/json":{"schema":{"type":"object","properties":{"stage":{"type":"string","enum":["preview"]},"corporateAction":{"type":"object","properties":{"id":{"type":"string","minLength":1},"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"type":{"type":"string","enum":["cashDividend","bondCoupon","bonusIssue","rightsIssue","capitalDecrease","stockSplit","spinOff","maturityRedemption","distribution","partialRedemption","conversion","buyback","coordinatedDistribution"]},"status":{"type":"string","enum":["drafted","previewed","approved","executing","completed","aborted"]},"terms":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","enum":["cashDividend"]},"paymentKind":{"anyOf":[{"type":"string","enum":["cash","inKind"]},{"type":"null"}]},"numerator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"denominator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"amountPerShare":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"exDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"paymentDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"claimDeadline":{"anyOf":[{"type":"string"},{"type":"null"}]},"countryCode":{"anyOf":[{"type":"string","pattern":"^[A-Za-z]{2}$"},{"type":"null"}]},"kind":{"anyOf":[{"$ref":"#/components/schemas/DividendKind"},{"type":"null"}]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["distribution"]},"paymentKind":{"anyOf":[{"type":"string","enum":["cash","inKind"]},{"type":"null"}]},"numerator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"denominator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"amountPerShare":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"exDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"paymentDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"claimDeadline":{"anyOf":[{"type":"string"},{"type":"null"}]},"countryCode":{"anyOf":[{"type":"string","pattern":"^[A-Za-z]{2}$"},{"type":"null"}]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["bondCoupon"]},"paymentKind":{"anyOf":[{"type":"string","enum":["cash","inKind"]},{"type":"null"}]},"numerator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"denominator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["bonusIssue"]},"numerator":{"type":"integer","exclusiveMinimum":0},"denominator":{"type":"integer","exclusiveMinimum":0},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional record instant for a bonus issue, stock split, spin-off, or rights issue. A rights issue on the token-sale path does not read it. Omit it to count the holders when the action is previewed. A supplied instant cannot be previewed before the chain time the indexer has reached passes it. Once it is reached, preview reads the holders at that instant from the token's historical-balances feature, and it is refused for an instant the feature does not cover. For a token without historical balances, preview counts the current holders while the indexed chain time is within one minute after the instant, and is refused later. The stored snapshot records the instant whose holders were counted."},"raiseCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"lowerCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]}},"required":["type","numerator","denominator"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["rightsIssue"]},"path":{"type":"string","enum":["allotment","tokenSale"]},"tokenSaleId":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"numerator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"denominator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional record instant for a bonus issue, stock split, spin-off, or rights issue. A rights issue on the token-sale path does not read it. Omit it to count the holders when the action is previewed. A supplied instant cannot be previewed before the chain time the indexer has reached passes it. Once it is reached, preview reads the holders at that instant from the token's historical-balances feature, and it is refused for an instant the feature does not cover. For a token without historical balances, preview counts the current holders while the indexed chain time is within one minute after the instant, and is refused later. The stored snapshot records the instant whose holders were counted."},"raiseCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"lowerCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]}},"required":["type","path"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["capitalDecrease"]},"holders":{"type":"array","items":{"type":"object","properties":{"holder":{"$ref":"#/components/schemas/EvmAddress"},"amount":{"type":"string","pattern":"^[0-9]+$"}},"required":["holder","amount"],"additionalProperties":false},"minItems":1},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"raiseCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"lowerCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]}},"required":["type","holders"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["buyback"]},"holders":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"holder":{"$ref":"#/components/schemas/EvmAddress"},"amount":{"type":"string","pattern":"^[0-9]+$"}},"required":["holder","amount"],"additionalProperties":false},"minItems":1},{"type":"null"}]},"call":{"anyOf":[{"type":"string","enum":["all"]},{"type":"null"}]},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"raiseCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"lowerCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"denominationAsset":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"pricePerUnit":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"payingTreasury":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["partialRedemption"]},"holders":{"type":"array","items":{"type":"object","properties":{"holder":{"$ref":"#/components/schemas/EvmAddress"},"amount":{"type":"string","pattern":"^[0-9]+$"}},"required":["holder","amount"],"additionalProperties":false},"minItems":1},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"raiseCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"lowerCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"denominationAsset":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"pricePerUnit":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"payingTreasury":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]}},"required":["type","holders"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["stockSplit"]},"direction":{"type":"string","enum":["forward","reverse"]},"numerator":{"type":"integer","exclusiveMinimum":0},"denominator":{"type":"integer","exclusiveMinimum":0},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional record instant for a bonus issue, stock split, spin-off, or rights issue. A rights issue on the token-sale path does not read it. Omit it to count the holders when the action is previewed. A supplied instant cannot be previewed before the chain time the indexer has reached passes it. Once it is reached, preview reads the holders at that instant from the token's historical-balances feature, and it is refused for an instant the feature does not cover. For a token without historical balances, preview counts the current holders while the indexed chain time is within one minute after the instant, and is refused later. The stored snapshot records the instant whose holders were counted."},"raiseCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"lowerCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]}},"required":["type","direction","numerator","denominator"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["spinOff"]},"childTokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"numerator":{"type":"integer","exclusiveMinimum":0},"denominator":{"type":"integer","exclusiveMinimum":0},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional record instant for a bonus issue, stock split, spin-off, or rights issue. A rights issue on the token-sale path does not read it. Omit it to count the holders when the action is previewed. A supplied instant cannot be previewed before the chain time the indexer has reached passes it. Once it is reached, preview reads the holders at that instant from the token's historical-balances feature, and it is refused for an instant the feature does not cover. For a token without historical balances, preview counts the current holders while the indexed chain time is within one minute after the instant, and is refused later. The stored snapshot records the instant whose holders were counted."}},"required":["type","childTokenAddress","numerator","denominator"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["maturityRedemption","conversion"]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["coordinatedDistribution"]},"poolAmount":{"type":"string","pattern":"^[0-9]+$"},"denominationAsset":{"$ref":"#/components/schemas/EvmAddress"},"exDate":{"type":"string"},"recordDate":{"type":"string"},"paymentDate":{"type":"string"},"determinationKind":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"claimDeadline":{"anyOf":[{"type":"string"},{"type":"null"}]},"countryCode":{"anyOf":[{"type":"string","pattern":"^[A-Za-z]{2}$"},{"type":"null"}]}},"required":["type","poolAmount","denominationAsset","exDate","recordDate","paymentDate"],"additionalProperties":false}]},"snapshot":{"anyOf":[{"type":"object","properties":{"identity":{"type":"string","minLength":1},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The instant whose holders this snapshot counted. A bonus issue, rights issue, stock split, spin-off, stock dividend, or in-kind bond coupon or distribution stores its record date when preview read the holders at that date, and otherwise the instant its holder book was read. A cash dividend or cash distribution stores its declared record date. An action that settles announced per-holder amounts (capital decrease, partial redemption, buyback) stores null."},"remainder":{"type":"string","pattern":"^[0-9]+$"},"denominationShortfall":{"type":"string","pattern":"^[0-9]+$"}},"required":["identity","recordDate","remainder","denominationShortfall"],"additionalProperties":false},{"type":"null"}]},"holders":{"type":"array","items":{"type":"object","properties":{"holder":{"$ref":"#/components/schemas/EvmAddress"},"amount":{"type":"string","pattern":"^[0-9]+$"},"state":{"type":"string","enum":["applied","skipped","remaining","zeroAfterFloor"]},"transactionHash":{"anyOf":[{"$ref":"#/components/schemas/EthereumHashEncoded"},{"type":"null"}]},"classToken":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]}},"required":["holder","amount","state"],"additionalProperties":false}},"dividendId":{"anyOf":[{"type":"string"},{"type":"null"}]},"tokenSaleId":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"childTokenAddress":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"followsUpOn":{"anyOf":[{"type":"string"},{"type":"null"}]},"transactionRequestId":{"anyOf":[{"type":"string"},{"type":"null"}]},"transactionHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"approval":{"type":"object","properties":{"policy":{"type":"string","enum":["required","not_required","not_applicable"]},"waiver":{"anyOf":[{"type":"string","enum":["organization-disabled","too-few-approvers"]},{"type":"null"}]},"state":{"type":"string","enum":["pending","approved","denied","expired","not_required"]},"proposerUserId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"checkerUserId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"decidedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"rejectionReason":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"expiresAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"planDigest":{"type":"string","pattern":"^[0-9a-f]{64}$"}},"required":["policy","waiver","state","proposerUserId","checkerUserId","decidedAt","rejectionReason","expiresAt","planDigest"],"additionalProperties":false},"appliedSplit":{"anyOf":[{"type":"object","properties":{"determinationKind":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"legs":{"type":"array","items":{"type":"object","properties":{"classToken":{"$ref":"#/components/schemas/EvmAddress"},"role":{"type":"string","minLength":1},"rank":{"type":"integer","minimum":0},"leg":{"type":"string","pattern":"^[0-9]+$"},"priorityLeg":{"type":"string","pattern":"^[0-9]+$"},"requestId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]}},"required":["classToken","role","rank","leg","priorityLeg","requestId"],"additionalProperties":false}},"classDividendsOpen":{"type":"boolean"},"fundingSent":{"type":"boolean"},"fundingRequestId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]}},"required":["determinationKind","legs","classDividendsOpen","fundingSent","fundingRequestId"],"additionalProperties":false},{"type":"null"}]}},"required":["id","tokenAddress","type","status","terms","snapshot","holders","dividendId","tokenSaleId","childTokenAddress","followsUpOn","transactionRequestId","transactionHashes","createdAt","updatedAt","approval","appliedSplit"],"additionalProperties":false},"remainder":{"type":"string","pattern":"^[0-9]+$"},"denominationShortfall":{"type":"string","pattern":"^[0-9]+$"},"holderCount":{"type":"integer","minimum":0},"dividendConfirmation":{"anyOf":[{"type":"object","properties":{"merkleRoot":{"$ref":"#/components/schemas/EthereumHashEncoded"},"totalEntitled":{"type":"string","pattern":"^[0-9]+$"},"totalRequired":{"type":"string","pattern":"^[0-9]+$"}},"required":["merkleRoot","totalEntitled","totalRequired"],"additionalProperties":false},{"type":"null"}]},"coordinatedSplit":{"anyOf":[{"type":"object","properties":{"ordinary":{"type":"array","items":{"type":"object","properties":{"classToken":{"$ref":"#/components/schemas/EvmAddress"},"role":{"type":"string","minLength":1},"rank":{"type":"integer","minimum":0},"leg":{"type":"string","pattern":"^[0-9]+$"},"priorityLeg":{"type":"string","pattern":"^[0-9]+$"}},"required":["classToken","role","rank","leg","priorityLeg"],"additionalProperties":false}},"priority":{"anyOf":[{"type":"object","properties":{"determinationKind":{"type":"string","minLength":1},"legs":{"type":"array","items":{"type":"object","properties":{"classToken":{"$ref":"#/components/schemas/EvmAddress"},"role":{"type":"string","minLength":1},"rank":{"type":"integer","minimum":0},"leg":{"type":"string","pattern":"^[0-9]+$"},"priorityLeg":{"type":"string","pattern":"^[0-9]+$"}},"required":["classToken","role","rank","leg","priorityLeg"],"additionalProperties":false}}},"required":["determinationKind","legs"],"additionalProperties":false},{"type":"null"}]}},"required":["ordinary","priority"],"additionalProperties":false},{"type":"null"}]}},"required":["stage","corporateAction","remainder","denominationShortfall","holderCount","dividendConfirmation","coordinatedSplit"],"additionalProperties":false},"examples":{"example-1":{"value":{"stage":"preview","corporateAction":{"id":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","tokenAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","type":"bonusIssue","status":"previewed","terms":{"type":"cashDividend","paymentKind":"cash","numerator":3,"denominator":2,"amountPerShare":"1","exDate":"2026-01-01T00:00:00.000Z","recordDate":"2026-01-02T00:00:00.000Z","paymentDate":"2026-01-03T00:00:00.000Z","claimDeadline":"2026-04-03T00:00:00.000Z","countryCode":"US","kind":"regular"},"snapshot":{"identity":"current","recordDate":null,"remainder":"1","denominationShortfall":"0"},"holders":[{"holder":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","amount":"1500000000000000000","state":"remaining","transactionHash":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae","classToken":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}],"dividendId":null,"tokenSaleId":null,"childTokenAddress":null,"followsUpOn":null,"transactionRequestId":null,"transactionHashes":["0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"],"createdAt":"2026-03-04T09:12:41.000Z","updatedAt":"2026-03-04T09:12:41.000Z","approval":{"policy":"not_required","waiver":null,"state":"pending","proposerUserId":null,"checkerUserId":null,"decidedAt":null,"rejectionReason":null,"expiresAt":null,"planDigest":"3b8f1d2c4a5e6f708192a3b4c5d6e7f8091a2b3c4d5e6f708192a3b4c5d6e7f8"},"appliedSplit":null},"remainder":"1","denominationShortfall":"0","holderCount":2,"dividendConfirmation":null,"coordinatedSplit":{"ordinary":[{"classToken":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","role":"member","rank":0,"leg":"1","priorityLeg":"1"}],"priority":null}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CORPORATE_ACTION_CALL_PROTECTED","CORPORATE_ACTION_CAPABILITY_MISSING","CORPORATE_ACTION_CASH_LEG_BURN_FEE","CORPORATE_ACTION_CASH_LEG_NEEDS_SMART_ACCOUNT","CORPORATE_ACTION_CASH_LEG_SELF_DENOMINATED","CORPORATE_ACTION_CASH_LEG_UNDERFUNDED","CORPORATE_ACTION_CASH_LEG_UNPAYABLE_HOLDER","CORPORATE_ACTION_CASH_LEG_UNVERIFIABLE_ASSET","CORPORATE_ACTION_CASH_LEG_WALLET_MISMATCH","CORPORATE_ACTION_CHILD_NOT_EMPTY","CORPORATE_ACTION_CHILD_UNAUTHORIZED","CORPORATE_ACTION_COMPLETE_ON_CREATE","CORPORATE_ACTION_DIVIDEND_UNLINKED","CORPORATE_ACTION_ELECTION_ABSENT","CORPORATE_ACTION_ELECTION_CLOSED","CORPORATE_ACTION_ELECTION_DEADLINE_INVALID","CORPORATE_ACTION_ELECTION_HOLDER_INELIGIBLE","CORPORATE_ACTION_ELECTION_HOLDER_UNAUTHORIZED","CORPORATE_ACTION_ELECTION_LOCKED","CORPORATE_ACTION_ELECTION_OPEN","CORPORATE_ACTION_ELECTION_OPTION_INVALID","CORPORATE_ACTION_ELECTION_SHAPE_INVALID","CORPORATE_ACTION_FOLLOW_UP_UNKNOWN","CORPORATE_ACTION_HISTORICAL_BALANCES","CORPORATE_ACTION_IDEMPOTENCY_CONFLICT","CORPORATE_ACTION_INSTRUMENT_MISSING","CORPORATE_ACTION_IN_FLIGHT","CORPORATE_ACTION_NOT_FOUND","CORPORATE_ACTION_PAYOUT_INELIGIBLE","CORPORATE_ACTION_POOL_UNFUNDABLE","CORPORATE_ACTION_PREVIEW_MISMATCH","CORPORATE_ACTION_PREVIEW_REQUIRED","CORPORATE_ACTION_PROGRAM_MISSING","CORPORATE_ACTION_SALE_DISABLED","CORPORATE_ACTION_SALE_MISSING","CORPORATE_ACTION_SALE_TOKEN_MISMATCH","CORPORATE_ACTION_SALE_UNKNOWN","CORPORATE_ACTION_SNAPSHOT_DRIFT","CORPORATE_ACTION_SNAPSHOT_NOT_READY","CORPORATE_ACTION_TOKEN_PAUSED","CORPORATE_ACTION_TOKEN_UNINDEXED","CORPORATE_ACTION_WATERFALL_CANNOT_RECEIVE","CORPORATE_ACTION_WRONG_STATUS","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","FINANCIAL_YIELD_OPERATION_REJECTED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Computes and stores preview allocations for this Corporate Action. Cash-dividend preview delegates to dividend-yield snapshot preview and does not queue a transaction. Bond-coupon preview returns 409 because the coupon completed on create. Composition preview stores floor amounts, remainder, and holder states. Confirm must echo this stored preview. Per-holder amounts round down. Remainder is the sum over holders of (balance × numerator) modulo denominator. First pass does not pay cash remainder.","summary":"Preview a Corporate Action","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]}},"additionalProperties":false}}},"required":false},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/corporate-actions/{corporateActionId}/approve":{"post":{"tags":["Corporate actions"],"operationId":"v2/token/approveCorporateAction","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"corporateActionId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The Corporate Action after the approval landed. Confirm may now execute it.","content":{"application/json":{"schema":{"type":"object","properties":{"corporateActionId":{"type":"string","minLength":1},"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"status":{"type":"string","enum":["drafted","previewed","approved","executing","completed","aborted"]},"approval":{"type":"object","properties":{"state":{"type":"string","enum":["pending","approved","denied","expired","not_required"]},"checkerUserId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"decidedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"approvedDigest":{"anyOf":[{"type":"string","pattern":"^[0-9a-f]{64}$"},{"type":"null"}]},"rejectionReason":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]}},"required":["state","checkerUserId","decidedAt","approvedDigest","rejectionReason"],"additionalProperties":false}},"required":["corporateActionId","tokenAddress","status","approval"],"additionalProperties":false},"examples":{"example-1":{"value":{"corporateActionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","tokenAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","status":"approved","approval":{"state":"approved","checkerUserId":"user-2","decidedAt":"2026-03-04T09:30:00.000Z","approvedDigest":"3b8f1d2c4a5e6f708192a3b4c5d6e7f8091a2b3c4d5e6f708192a3b4c5d6e7f8","rejectionReason":null}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CORPORATE_ACTION_APPROVAL_REFUSED","CORPORATE_ACTION_CALL_PROTECTED","CORPORATE_ACTION_CAPABILITY_MISSING","CORPORATE_ACTION_CASH_LEG_BURN_FEE","CORPORATE_ACTION_CASH_LEG_NEEDS_SMART_ACCOUNT","CORPORATE_ACTION_CASH_LEG_SELF_DENOMINATED","CORPORATE_ACTION_CASH_LEG_UNDERFUNDED","CORPORATE_ACTION_CASH_LEG_UNPAYABLE_HOLDER","CORPORATE_ACTION_CASH_LEG_UNVERIFIABLE_ASSET","CORPORATE_ACTION_CASH_LEG_WALLET_MISMATCH","CORPORATE_ACTION_CHILD_NOT_EMPTY","CORPORATE_ACTION_CHILD_UNAUTHORIZED","CORPORATE_ACTION_COMPLETE_ON_CREATE","CORPORATE_ACTION_DIVIDEND_UNLINKED","CORPORATE_ACTION_ELECTION_ABSENT","CORPORATE_ACTION_ELECTION_CLOSED","CORPORATE_ACTION_ELECTION_DEADLINE_INVALID","CORPORATE_ACTION_ELECTION_HOLDER_INELIGIBLE","CORPORATE_ACTION_ELECTION_HOLDER_UNAUTHORIZED","CORPORATE_ACTION_ELECTION_LOCKED","CORPORATE_ACTION_ELECTION_OPEN","CORPORATE_ACTION_ELECTION_OPTION_INVALID","CORPORATE_ACTION_ELECTION_SHAPE_INVALID","CORPORATE_ACTION_FOLLOW_UP_UNKNOWN","CORPORATE_ACTION_HISTORICAL_BALANCES","CORPORATE_ACTION_IDEMPOTENCY_CONFLICT","CORPORATE_ACTION_INSTRUMENT_MISSING","CORPORATE_ACTION_NOT_FOUND","CORPORATE_ACTION_PAYOUT_INELIGIBLE","CORPORATE_ACTION_POOL_UNFUNDABLE","CORPORATE_ACTION_PREVIEW_MISMATCH","CORPORATE_ACTION_PREVIEW_REQUIRED","CORPORATE_ACTION_PROGRAM_MISSING","CORPORATE_ACTION_SALE_DISABLED","CORPORATE_ACTION_SALE_MISSING","CORPORATE_ACTION_SALE_TOKEN_MISMATCH","CORPORATE_ACTION_SALE_UNKNOWN","CORPORATE_ACTION_SNAPSHOT_DRIFT","CORPORATE_ACTION_SNAPSHOT_NOT_READY","CORPORATE_ACTION_TOKEN_PAUSED","CORPORATE_ACTION_TOKEN_UNINDEXED","CORPORATE_ACTION_WATERFALL_CANNOT_RECEIVE","CORPORATE_ACTION_WRONG_STATUS","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Clears a previewed Corporate Action for execution. The approver must be an operator who neither raised nor last previewed the record, holding the corporate-action approval permission on a signed-in session. Send the digest of the plan you read: a plan that moved since then is refused rather than approved on numbers nobody reviewed, and a redemption whose cash leg is not funded is refused here rather than at the burn. Nothing is signed and nothing is queued; what moves is the record.","summary":"Approve a Corporate Action","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"reviewedDigest":{"type":"string","pattern":"^[0-9a-f]{64}$"}},"required":["reviewedDigest"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/corporate-actions/{corporateActionId}/reject":{"post":{"tags":["Corporate actions"],"operationId":"v2/token/rejectCorporateAction","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"corporateActionId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The Corporate Action after the rejection ended it. Nothing was queued.","content":{"application/json":{"schema":{"type":"object","properties":{"corporateActionId":{"type":"string","minLength":1},"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"status":{"type":"string","enum":["drafted","previewed","approved","executing","completed","aborted"]},"approval":{"type":"object","properties":{"state":{"type":"string","enum":["pending","approved","denied","expired","not_required"]},"checkerUserId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"decidedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"approvedDigest":{"anyOf":[{"type":"string","pattern":"^[0-9a-f]{64}$"},{"type":"null"}]},"rejectionReason":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]}},"required":["state","checkerUserId","decidedAt","approvedDigest","rejectionReason"],"additionalProperties":false}},"required":["corporateActionId","tokenAddress","status","approval"],"additionalProperties":false},"examples":{"example-1":{"value":{"corporateActionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","tokenAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","status":"approved","approval":{"state":"denied","checkerUserId":"user-2","decidedAt":"2026-03-04T09:30:00.000Z","approvedDigest":null,"rejectionReason":"The paying treasury is short of the announced cash leg."}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CORPORATE_ACTION_APPROVAL_REFUSED","CORPORATE_ACTION_CALL_PROTECTED","CORPORATE_ACTION_CAPABILITY_MISSING","CORPORATE_ACTION_CASH_LEG_BURN_FEE","CORPORATE_ACTION_CASH_LEG_NEEDS_SMART_ACCOUNT","CORPORATE_ACTION_CASH_LEG_SELF_DENOMINATED","CORPORATE_ACTION_CASH_LEG_UNDERFUNDED","CORPORATE_ACTION_CASH_LEG_UNPAYABLE_HOLDER","CORPORATE_ACTION_CASH_LEG_UNVERIFIABLE_ASSET","CORPORATE_ACTION_CASH_LEG_WALLET_MISMATCH","CORPORATE_ACTION_CHILD_NOT_EMPTY","CORPORATE_ACTION_CHILD_UNAUTHORIZED","CORPORATE_ACTION_COMPLETE_ON_CREATE","CORPORATE_ACTION_DIVIDEND_UNLINKED","CORPORATE_ACTION_ELECTION_ABSENT","CORPORATE_ACTION_ELECTION_CLOSED","CORPORATE_ACTION_ELECTION_DEADLINE_INVALID","CORPORATE_ACTION_ELECTION_HOLDER_INELIGIBLE","CORPORATE_ACTION_ELECTION_HOLDER_UNAUTHORIZED","CORPORATE_ACTION_ELECTION_LOCKED","CORPORATE_ACTION_ELECTION_OPEN","CORPORATE_ACTION_ELECTION_OPTION_INVALID","CORPORATE_ACTION_ELECTION_SHAPE_INVALID","CORPORATE_ACTION_FOLLOW_UP_UNKNOWN","CORPORATE_ACTION_HISTORICAL_BALANCES","CORPORATE_ACTION_IDEMPOTENCY_CONFLICT","CORPORATE_ACTION_INSTRUMENT_MISSING","CORPORATE_ACTION_NOT_FOUND","CORPORATE_ACTION_PAYOUT_INELIGIBLE","CORPORATE_ACTION_POOL_UNFUNDABLE","CORPORATE_ACTION_PREVIEW_MISMATCH","CORPORATE_ACTION_PREVIEW_REQUIRED","CORPORATE_ACTION_PROGRAM_MISSING","CORPORATE_ACTION_SALE_DISABLED","CORPORATE_ACTION_SALE_MISSING","CORPORATE_ACTION_SALE_TOKEN_MISMATCH","CORPORATE_ACTION_SALE_UNKNOWN","CORPORATE_ACTION_SNAPSHOT_DRIFT","CORPORATE_ACTION_SNAPSHOT_NOT_READY","CORPORATE_ACTION_TOKEN_PAUSED","CORPORATE_ACTION_TOKEN_UNINDEXED","CORPORATE_ACTION_WATERFALL_CANNOT_RECEIVE","CORPORATE_ACTION_WRONG_STATUS","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Ends a previewed Corporate Action with a reason and fences it. The same distinct-operator rule as approve applies. The reason and the deciding operator stay on the record, because status aborted alone cannot tell a rejection from a withdrawal. Nothing is queued and nothing is rolled back.","summary":"Reject a Corporate Action","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"reviewedDigest":{"type":"string","pattern":"^[0-9a-f]{64}$"},"reason":{"type":"string","minLength":1}},"required":["reviewedDigest","reason"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/corporate-actions/{corporateActionId}/confirm":{"post":{"tags":["Corporate actions"],"operationId":"v2/token/confirmCorporateAction","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"corporateActionId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled Corporate Action after confirm completed within the wait window. data is the reconstructable record. meta.txHashes are the submitted transactions. A 202 body is not success.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","minLength":1},"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"type":{"type":"string","enum":["cashDividend","bondCoupon","bonusIssue","rightsIssue","capitalDecrease","stockSplit","spinOff","maturityRedemption","distribution","partialRedemption","conversion","buyback","coordinatedDistribution"]},"status":{"type":"string","enum":["drafted","previewed","approved","executing","completed","aborted"]},"terms":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","enum":["cashDividend"]},"paymentKind":{"anyOf":[{"type":"string","enum":["cash","inKind"]},{"type":"null"}]},"numerator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"denominator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"amountPerShare":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"exDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"paymentDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"claimDeadline":{"anyOf":[{"type":"string"},{"type":"null"}]},"countryCode":{"anyOf":[{"type":"string","pattern":"^[A-Za-z]{2}$"},{"type":"null"}]},"kind":{"anyOf":[{"$ref":"#/components/schemas/DividendKind"},{"type":"null"}]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["distribution"]},"paymentKind":{"anyOf":[{"type":"string","enum":["cash","inKind"]},{"type":"null"}]},"numerator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"denominator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"amountPerShare":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"exDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"paymentDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"claimDeadline":{"anyOf":[{"type":"string"},{"type":"null"}]},"countryCode":{"anyOf":[{"type":"string","pattern":"^[A-Za-z]{2}$"},{"type":"null"}]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["bondCoupon"]},"paymentKind":{"anyOf":[{"type":"string","enum":["cash","inKind"]},{"type":"null"}]},"numerator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"denominator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["bonusIssue"]},"numerator":{"type":"integer","exclusiveMinimum":0},"denominator":{"type":"integer","exclusiveMinimum":0},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional record instant for a bonus issue, stock split, spin-off, or rights issue. A rights issue on the token-sale path does not read it. Omit it to count the holders when the action is previewed. A supplied instant cannot be previewed before the chain time the indexer has reached passes it. Once it is reached, preview reads the holders at that instant from the token's historical-balances feature, and it is refused for an instant the feature does not cover. For a token without historical balances, preview counts the current holders while the indexed chain time is within one minute after the instant, and is refused later. The stored snapshot records the instant whose holders were counted."},"raiseCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"lowerCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]}},"required":["type","numerator","denominator"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["rightsIssue"]},"path":{"type":"string","enum":["allotment","tokenSale"]},"tokenSaleId":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"numerator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"denominator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional record instant for a bonus issue, stock split, spin-off, or rights issue. A rights issue on the token-sale path does not read it. Omit it to count the holders when the action is previewed. A supplied instant cannot be previewed before the chain time the indexer has reached passes it. Once it is reached, preview reads the holders at that instant from the token's historical-balances feature, and it is refused for an instant the feature does not cover. For a token without historical balances, preview counts the current holders while the indexed chain time is within one minute after the instant, and is refused later. The stored snapshot records the instant whose holders were counted."},"raiseCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"lowerCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]}},"required":["type","path"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["capitalDecrease"]},"holders":{"type":"array","items":{"type":"object","properties":{"holder":{"$ref":"#/components/schemas/EvmAddress"},"amount":{"type":"string","pattern":"^[0-9]+$"}},"required":["holder","amount"],"additionalProperties":false},"minItems":1},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"raiseCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"lowerCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]}},"required":["type","holders"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["buyback"]},"holders":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"holder":{"$ref":"#/components/schemas/EvmAddress"},"amount":{"type":"string","pattern":"^[0-9]+$"}},"required":["holder","amount"],"additionalProperties":false},"minItems":1},{"type":"null"}]},"call":{"anyOf":[{"type":"string","enum":["all"]},{"type":"null"}]},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"raiseCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"lowerCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"denominationAsset":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"pricePerUnit":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"payingTreasury":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["partialRedemption"]},"holders":{"type":"array","items":{"type":"object","properties":{"holder":{"$ref":"#/components/schemas/EvmAddress"},"amount":{"type":"string","pattern":"^[0-9]+$"}},"required":["holder","amount"],"additionalProperties":false},"minItems":1},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"raiseCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"lowerCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"denominationAsset":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"pricePerUnit":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"payingTreasury":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]}},"required":["type","holders"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["stockSplit"]},"direction":{"type":"string","enum":["forward","reverse"]},"numerator":{"type":"integer","exclusiveMinimum":0},"denominator":{"type":"integer","exclusiveMinimum":0},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional record instant for a bonus issue, stock split, spin-off, or rights issue. A rights issue on the token-sale path does not read it. Omit it to count the holders when the action is previewed. A supplied instant cannot be previewed before the chain time the indexer has reached passes it. Once it is reached, preview reads the holders at that instant from the token's historical-balances feature, and it is refused for an instant the feature does not cover. For a token without historical balances, preview counts the current holders while the indexed chain time is within one minute after the instant, and is refused later. The stored snapshot records the instant whose holders were counted."},"raiseCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"lowerCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]}},"required":["type","direction","numerator","denominator"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["spinOff"]},"childTokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"numerator":{"type":"integer","exclusiveMinimum":0},"denominator":{"type":"integer","exclusiveMinimum":0},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional record instant for a bonus issue, stock split, spin-off, or rights issue. A rights issue on the token-sale path does not read it. Omit it to count the holders when the action is previewed. A supplied instant cannot be previewed before the chain time the indexer has reached passes it. Once it is reached, preview reads the holders at that instant from the token's historical-balances feature, and it is refused for an instant the feature does not cover. For a token without historical balances, preview counts the current holders while the indexed chain time is within one minute after the instant, and is refused later. The stored snapshot records the instant whose holders were counted."}},"required":["type","childTokenAddress","numerator","denominator"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["maturityRedemption","conversion"]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["coordinatedDistribution"]},"poolAmount":{"type":"string","pattern":"^[0-9]+$"},"denominationAsset":{"$ref":"#/components/schemas/EvmAddress"},"exDate":{"type":"string"},"recordDate":{"type":"string"},"paymentDate":{"type":"string"},"determinationKind":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"claimDeadline":{"anyOf":[{"type":"string"},{"type":"null"}]},"countryCode":{"anyOf":[{"type":"string","pattern":"^[A-Za-z]{2}$"},{"type":"null"}]}},"required":["type","poolAmount","denominationAsset","exDate","recordDate","paymentDate"],"additionalProperties":false}]},"snapshot":{"anyOf":[{"type":"object","properties":{"identity":{"type":"string","minLength":1},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The instant whose holders this snapshot counted. A bonus issue, rights issue, stock split, spin-off, stock dividend, or in-kind bond coupon or distribution stores its record date when preview read the holders at that date, and otherwise the instant its holder book was read. A cash dividend or cash distribution stores its declared record date. An action that settles announced per-holder amounts (capital decrease, partial redemption, buyback) stores null."},"remainder":{"type":"string","pattern":"^[0-9]+$"},"denominationShortfall":{"type":"string","pattern":"^[0-9]+$"}},"required":["identity","recordDate","remainder","denominationShortfall"],"additionalProperties":false},{"type":"null"}]},"holders":{"type":"array","items":{"type":"object","properties":{"holder":{"$ref":"#/components/schemas/EvmAddress"},"amount":{"type":"string","pattern":"^[0-9]+$"},"state":{"type":"string","enum":["applied","skipped","remaining","zeroAfterFloor"]},"transactionHash":{"anyOf":[{"$ref":"#/components/schemas/EthereumHashEncoded"},{"type":"null"}]},"classToken":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]}},"required":["holder","amount","state"],"additionalProperties":false}},"dividendId":{"anyOf":[{"type":"string"},{"type":"null"}]},"tokenSaleId":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"childTokenAddress":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"followsUpOn":{"anyOf":[{"type":"string"},{"type":"null"}]},"transactionRequestId":{"anyOf":[{"type":"string"},{"type":"null"}]},"transactionHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"approval":{"type":"object","properties":{"policy":{"type":"string","enum":["required","not_required","not_applicable"]},"waiver":{"anyOf":[{"type":"string","enum":["organization-disabled","too-few-approvers"]},{"type":"null"}]},"state":{"type":"string","enum":["pending","approved","denied","expired","not_required"]},"proposerUserId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"checkerUserId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"decidedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"rejectionReason":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"expiresAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"planDigest":{"type":"string","pattern":"^[0-9a-f]{64}$"}},"required":["policy","waiver","state","proposerUserId","checkerUserId","decidedAt","rejectionReason","expiresAt","planDigest"],"additionalProperties":false},"appliedSplit":{"anyOf":[{"type":"object","properties":{"determinationKind":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"legs":{"type":"array","items":{"type":"object","properties":{"classToken":{"$ref":"#/components/schemas/EvmAddress"},"role":{"type":"string","minLength":1},"rank":{"type":"integer","minimum":0},"leg":{"type":"string","pattern":"^[0-9]+$"},"priorityLeg":{"type":"string","pattern":"^[0-9]+$"},"requestId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]}},"required":["classToken","role","rank","leg","priorityLeg","requestId"],"additionalProperties":false}},"classDividendsOpen":{"type":"boolean"},"fundingSent":{"type":"boolean"},"fundingRequestId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]}},"required":["determinationKind","legs","classDividendsOpen","fundingSent","fundingRequestId"],"additionalProperties":false},{"type":"null"}]}},"required":["id","tokenAddress","type","status","terms","snapshot","holders","dividendId","tokenSaleId","childTokenAddress","followsUpOn","transactionRequestId","transactionHashes","createdAt","updatedAt","approval","appliedSplit"],"additionalProperties":false},"examples":{"example-1":{"value":{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","tokenAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","type":"cashDividend","status":"drafted","terms":{"type":"cashDividend","paymentKind":"cash","numerator":3,"denominator":2,"amountPerShare":"1","exDate":"2026-01-01T00:00:00.000Z","recordDate":"2026-01-02T00:00:00.000Z","paymentDate":"2026-01-03T00:00:00.000Z","claimDeadline":"2026-04-03T00:00:00.000Z","countryCode":"US","kind":"regular"},"snapshot":{"identity":"0x8ba1f109551bD432803012645Ac136ddd64DBA72","recordDate":"2026-01-02T00:00:00.000Z","remainder":"1","denominationShortfall":"0"},"holders":[{"holder":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","amount":"10000","state":"applied","transactionHash":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae","classToken":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}],"dividendId":"3","tokenSaleId":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","childTokenAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","followsUpOn":null,"transactionRequestId":null,"transactionHashes":["0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"],"createdAt":"2026-08-01T09:00:00.000Z","updatedAt":"2026-08-01T09:00:00.000Z","approval":{"policy":"required","waiver":"organization-disabled","state":"pending","proposerUserId":"user-1","checkerUserId":"user-checker-001","decidedAt":"2026-08-01T10:00:00.000Z","rejectionReason":"The address document dates from more than three months ago.","expiresAt":"2026-04-20T16:00:00.000Z","planDigest":"3b8f1d2c4a5e6f708192a3b4c5d6e7f8091a2b3c4d5e6f708192a3b4c5d6e7f8"},"appliedSplit":{"determinationKind":null,"legs":[{"classToken":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","role":"member","rank":0,"leg":"1","priorityLeg":"1","requestId":"019c0000-0000-7000-8000-000000000004"}],"classDividendsOpen":false,"fundingSent":false,"fundingRequestId":null}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CORPORATE_ACTION_CALL_PROTECTED","CORPORATE_ACTION_CAPABILITY_MISSING","CORPORATE_ACTION_CASH_LEG_BURN_FEE","CORPORATE_ACTION_CASH_LEG_NEEDS_SMART_ACCOUNT","CORPORATE_ACTION_CASH_LEG_SELF_DENOMINATED","CORPORATE_ACTION_CASH_LEG_UNDERFUNDED","CORPORATE_ACTION_CASH_LEG_UNPAYABLE_HOLDER","CORPORATE_ACTION_CASH_LEG_UNVERIFIABLE_ASSET","CORPORATE_ACTION_CASH_LEG_WALLET_MISMATCH","CORPORATE_ACTION_CHILD_NOT_EMPTY","CORPORATE_ACTION_CHILD_UNAUTHORIZED","CORPORATE_ACTION_COMPLETE_ON_CREATE","CORPORATE_ACTION_DIVIDEND_UNLINKED","CORPORATE_ACTION_ELECTION_ABSENT","CORPORATE_ACTION_ELECTION_CLOSED","CORPORATE_ACTION_ELECTION_DEADLINE_INVALID","CORPORATE_ACTION_ELECTION_HOLDER_INELIGIBLE","CORPORATE_ACTION_ELECTION_HOLDER_UNAUTHORIZED","CORPORATE_ACTION_ELECTION_LOCKED","CORPORATE_ACTION_ELECTION_OPEN","CORPORATE_ACTION_ELECTION_OPTION_INVALID","CORPORATE_ACTION_ELECTION_SHAPE_INVALID","CORPORATE_ACTION_FOLLOW_UP_UNKNOWN","CORPORATE_ACTION_HISTORICAL_BALANCES","CORPORATE_ACTION_IDEMPOTENCY_CONFLICT","CORPORATE_ACTION_INSTRUMENT_MISSING","CORPORATE_ACTION_IN_FLIGHT","CORPORATE_ACTION_NOT_FOUND","CORPORATE_ACTION_PAYOUT_INELIGIBLE","CORPORATE_ACTION_POOL_UNFUNDABLE","CORPORATE_ACTION_PREVIEW_MISMATCH","CORPORATE_ACTION_PREVIEW_REQUIRED","CORPORATE_ACTION_PROGRAM_MISSING","CORPORATE_ACTION_SALE_DISABLED","CORPORATE_ACTION_SALE_MISSING","CORPORATE_ACTION_SALE_TOKEN_MISMATCH","CORPORATE_ACTION_SALE_UNKNOWN","CORPORATE_ACTION_SNAPSHOT_DRIFT","CORPORATE_ACTION_SNAPSHOT_NOT_READY","CORPORATE_ACTION_TOKEN_PAUSED","CORPORATE_ACTION_TOKEN_UNINDEXED","CORPORATE_ACTION_WATERFALL_CANNOT_RECEIVE","CORPORATE_ACTION_WRONG_STATUS","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS","TOKEN_MINT_MATURITY_REDEMPTION_MATURED","TOKEN_SUPPLY_PAUSED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE","UNPROCESSABLE_ENTITY"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","FINANCIAL_YIELD_OPERATION_REJECTED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Applies the stored preview. Cash-dividend confirm records the dividend-yield snapshot when the echoed merkle root and totals match. Bond-coupon confirm returns 409. Composition confirm applies only stored allocations under one Settlement Verdict, even when the holder book needs more than one mint or burn batch. Pause, missing historical-balances, or snapshot drift fail closed. A compliance skip that cannot isolate one holder aborts the run. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement. A 202 Async-Accepted Handle is not success. Status completed requires every snapshot holder applied or stored as zero-after-floor.","summary":"Confirm a Corporate Action","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"merkleRoot":{"anyOf":[{"$ref":"#/components/schemas/EthereumHashEncoded"},{"type":"null"}]},"totalEntitled":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"totalRequired":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]}},"additionalProperties":false}}},"required":false},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/corporate-actions/{corporateActionId}/abort":{"post":{"tags":["Corporate actions"],"operationId":"v2/token/abortCorporateAction","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"corporateActionId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Corporate Action record after a persist that did not queue a chain write.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","minLength":1},"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"type":{"type":"string","enum":["cashDividend","bondCoupon","bonusIssue","rightsIssue","capitalDecrease","stockSplit","spinOff","maturityRedemption","distribution","partialRedemption","conversion","buyback","coordinatedDistribution"]},"status":{"type":"string","enum":["drafted","previewed","approved","executing","completed","aborted"]},"terms":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","enum":["cashDividend"]},"paymentKind":{"anyOf":[{"type":"string","enum":["cash","inKind"]},{"type":"null"}]},"numerator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"denominator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"amountPerShare":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"exDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"paymentDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"claimDeadline":{"anyOf":[{"type":"string"},{"type":"null"}]},"countryCode":{"anyOf":[{"type":"string","pattern":"^[A-Za-z]{2}$"},{"type":"null"}]},"kind":{"anyOf":[{"$ref":"#/components/schemas/DividendKind"},{"type":"null"}]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["distribution"]},"paymentKind":{"anyOf":[{"type":"string","enum":["cash","inKind"]},{"type":"null"}]},"numerator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"denominator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"amountPerShare":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"exDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"paymentDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"claimDeadline":{"anyOf":[{"type":"string"},{"type":"null"}]},"countryCode":{"anyOf":[{"type":"string","pattern":"^[A-Za-z]{2}$"},{"type":"null"}]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["bondCoupon"]},"paymentKind":{"anyOf":[{"type":"string","enum":["cash","inKind"]},{"type":"null"}]},"numerator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"denominator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["bonusIssue"]},"numerator":{"type":"integer","exclusiveMinimum":0},"denominator":{"type":"integer","exclusiveMinimum":0},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional record instant for a bonus issue, stock split, spin-off, or rights issue. A rights issue on the token-sale path does not read it. Omit it to count the holders when the action is previewed. A supplied instant cannot be previewed before the chain time the indexer has reached passes it. Once it is reached, preview reads the holders at that instant from the token's historical-balances feature, and it is refused for an instant the feature does not cover. For a token without historical balances, preview counts the current holders while the indexed chain time is within one minute after the instant, and is refused later. The stored snapshot records the instant whose holders were counted."},"raiseCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"lowerCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]}},"required":["type","numerator","denominator"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["rightsIssue"]},"path":{"type":"string","enum":["allotment","tokenSale"]},"tokenSaleId":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"numerator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"denominator":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional record instant for a bonus issue, stock split, spin-off, or rights issue. A rights issue on the token-sale path does not read it. Omit it to count the holders when the action is previewed. A supplied instant cannot be previewed before the chain time the indexer has reached passes it. Once it is reached, preview reads the holders at that instant from the token's historical-balances feature, and it is refused for an instant the feature does not cover. For a token without historical balances, preview counts the current holders while the indexed chain time is within one minute after the instant, and is refused later. The stored snapshot records the instant whose holders were counted."},"raiseCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"lowerCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]}},"required":["type","path"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["capitalDecrease"]},"holders":{"type":"array","items":{"type":"object","properties":{"holder":{"$ref":"#/components/schemas/EvmAddress"},"amount":{"type":"string","pattern":"^[0-9]+$"}},"required":["holder","amount"],"additionalProperties":false},"minItems":1},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"raiseCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"lowerCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]}},"required":["type","holders"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["buyback"]},"holders":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"holder":{"$ref":"#/components/schemas/EvmAddress"},"amount":{"type":"string","pattern":"^[0-9]+$"}},"required":["holder","amount"],"additionalProperties":false},"minItems":1},{"type":"null"}]},"call":{"anyOf":[{"type":"string","enum":["all"]},{"type":"null"}]},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"raiseCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"lowerCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"denominationAsset":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"pricePerUnit":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"payingTreasury":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["partialRedemption"]},"holders":{"type":"array","items":{"type":"object","properties":{"holder":{"$ref":"#/components/schemas/EvmAddress"},"amount":{"type":"string","pattern":"^[0-9]+$"}},"required":["holder","amount"],"additionalProperties":false},"minItems":1},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"raiseCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"lowerCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"denominationAsset":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"pricePerUnit":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"payingTreasury":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]}},"required":["type","holders"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["stockSplit"]},"direction":{"type":"string","enum":["forward","reverse"]},"numerator":{"type":"integer","exclusiveMinimum":0},"denominator":{"type":"integer","exclusiveMinimum":0},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional record instant for a bonus issue, stock split, spin-off, or rights issue. A rights issue on the token-sale path does not read it. Omit it to count the holders when the action is previewed. A supplied instant cannot be previewed before the chain time the indexer has reached passes it. Once it is reached, preview reads the holders at that instant from the token's historical-balances feature, and it is refused for an instant the feature does not cover. For a token without historical balances, preview counts the current holders while the indexed chain time is within one minute after the instant, and is refused later. The stored snapshot records the instant whose holders were counted."},"raiseCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"lowerCap":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]}},"required":["type","direction","numerator","denominator"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["spinOff"]},"childTokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"numerator":{"type":"integer","exclusiveMinimum":0},"denominator":{"type":"integer","exclusiveMinimum":0},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional record instant for a bonus issue, stock split, spin-off, or rights issue. A rights issue on the token-sale path does not read it. Omit it to count the holders when the action is previewed. A supplied instant cannot be previewed before the chain time the indexer has reached passes it. Once it is reached, preview reads the holders at that instant from the token's historical-balances feature, and it is refused for an instant the feature does not cover. For a token without historical balances, preview counts the current holders while the indexed chain time is within one minute after the instant, and is refused later. The stored snapshot records the instant whose holders were counted."}},"required":["type","childTokenAddress","numerator","denominator"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["maturityRedemption","conversion"]}},"required":["type"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","enum":["coordinatedDistribution"]},"poolAmount":{"type":"string","pattern":"^[0-9]+$"},"denominationAsset":{"$ref":"#/components/schemas/EvmAddress"},"exDate":{"type":"string"},"recordDate":{"type":"string"},"paymentDate":{"type":"string"},"determinationKind":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"claimDeadline":{"anyOf":[{"type":"string"},{"type":"null"}]},"countryCode":{"anyOf":[{"type":"string","pattern":"^[A-Za-z]{2}$"},{"type":"null"}]}},"required":["type","poolAmount","denominationAsset","exDate","recordDate","paymentDate"],"additionalProperties":false}]},"snapshot":{"anyOf":[{"type":"object","properties":{"identity":{"type":"string","minLength":1},"recordDate":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The instant whose holders this snapshot counted. A bonus issue, rights issue, stock split, spin-off, stock dividend, or in-kind bond coupon or distribution stores its record date when preview read the holders at that date, and otherwise the instant its holder book was read. A cash dividend or cash distribution stores its declared record date. An action that settles announced per-holder amounts (capital decrease, partial redemption, buyback) stores null."},"remainder":{"type":"string","pattern":"^[0-9]+$"},"denominationShortfall":{"type":"string","pattern":"^[0-9]+$"}},"required":["identity","recordDate","remainder","denominationShortfall"],"additionalProperties":false},{"type":"null"}]},"holders":{"type":"array","items":{"type":"object","properties":{"holder":{"$ref":"#/components/schemas/EvmAddress"},"amount":{"type":"string","pattern":"^[0-9]+$"},"state":{"type":"string","enum":["applied","skipped","remaining","zeroAfterFloor"]},"transactionHash":{"anyOf":[{"$ref":"#/components/schemas/EthereumHashEncoded"},{"type":"null"}]},"classToken":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]}},"required":["holder","amount","state"],"additionalProperties":false}},"dividendId":{"anyOf":[{"type":"string"},{"type":"null"}]},"tokenSaleId":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"childTokenAddress":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"followsUpOn":{"anyOf":[{"type":"string"},{"type":"null"}]},"transactionRequestId":{"anyOf":[{"type":"string"},{"type":"null"}]},"transactionHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"approval":{"type":"object","properties":{"policy":{"type":"string","enum":["required","not_required","not_applicable"]},"waiver":{"anyOf":[{"type":"string","enum":["organization-disabled","too-few-approvers"]},{"type":"null"}]},"state":{"type":"string","enum":["pending","approved","denied","expired","not_required"]},"proposerUserId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"checkerUserId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"decidedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"rejectionReason":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"expiresAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"planDigest":{"type":"string","pattern":"^[0-9a-f]{64}$"}},"required":["policy","waiver","state","proposerUserId","checkerUserId","decidedAt","rejectionReason","expiresAt","planDigest"],"additionalProperties":false},"appliedSplit":{"anyOf":[{"type":"object","properties":{"determinationKind":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"legs":{"type":"array","items":{"type":"object","properties":{"classToken":{"$ref":"#/components/schemas/EvmAddress"},"role":{"type":"string","minLength":1},"rank":{"type":"integer","minimum":0},"leg":{"type":"string","pattern":"^[0-9]+$"},"priorityLeg":{"type":"string","pattern":"^[0-9]+$"},"requestId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]}},"required":["classToken","role","rank","leg","priorityLeg","requestId"],"additionalProperties":false}},"classDividendsOpen":{"type":"boolean"},"fundingSent":{"type":"boolean"},"fundingRequestId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]}},"required":["determinationKind","legs","classDividendsOpen","fundingSent","fundingRequestId"],"additionalProperties":false},{"type":"null"}]}},"required":["id","tokenAddress","type","status","terms","snapshot","holders","dividendId","tokenSaleId","childTokenAddress","followsUpOn","transactionRequestId","transactionHashes","createdAt","updatedAt","approval","appliedSplit"],"additionalProperties":false},"examples":{"example-1":{"value":{"id":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","tokenAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","type":"bonusIssue","status":"drafted","terms":{"type":"bonusIssue","numerator":3,"denominator":2},"snapshot":null,"holders":[],"dividendId":null,"tokenSaleId":null,"childTokenAddress":null,"followsUpOn":null,"transactionRequestId":null,"transactionHashes":[],"createdAt":"2026-03-04T09:12:41.000Z","updatedAt":"2026-03-04T09:12:41.000Z","approval":{"policy":"not_required","waiver":null,"state":"pending","proposerUserId":null,"checkerUserId":null,"decidedAt":null,"rejectionReason":null,"expiresAt":null,"planDigest":"3b8f1d2c4a5e6f708192a3b4c5d6e7f8091a2b3c4d5e6f708192a3b4c5d6e7f8"},"appliedSplit":null}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CORPORATE_ACTION_CALL_PROTECTED","CORPORATE_ACTION_CAPABILITY_MISSING","CORPORATE_ACTION_CASH_LEG_BURN_FEE","CORPORATE_ACTION_CASH_LEG_NEEDS_SMART_ACCOUNT","CORPORATE_ACTION_CASH_LEG_SELF_DENOMINATED","CORPORATE_ACTION_CASH_LEG_UNDERFUNDED","CORPORATE_ACTION_CASH_LEG_UNPAYABLE_HOLDER","CORPORATE_ACTION_CASH_LEG_UNVERIFIABLE_ASSET","CORPORATE_ACTION_CASH_LEG_WALLET_MISMATCH","CORPORATE_ACTION_CHILD_NOT_EMPTY","CORPORATE_ACTION_CHILD_UNAUTHORIZED","CORPORATE_ACTION_COMPLETE_ON_CREATE","CORPORATE_ACTION_DIVIDEND_UNLINKED","CORPORATE_ACTION_ELECTION_ABSENT","CORPORATE_ACTION_ELECTION_CLOSED","CORPORATE_ACTION_ELECTION_DEADLINE_INVALID","CORPORATE_ACTION_ELECTION_HOLDER_INELIGIBLE","CORPORATE_ACTION_ELECTION_HOLDER_UNAUTHORIZED","CORPORATE_ACTION_ELECTION_LOCKED","CORPORATE_ACTION_ELECTION_OPEN","CORPORATE_ACTION_ELECTION_OPTION_INVALID","CORPORATE_ACTION_ELECTION_SHAPE_INVALID","CORPORATE_ACTION_FOLLOW_UP_UNKNOWN","CORPORATE_ACTION_HISTORICAL_BALANCES","CORPORATE_ACTION_IDEMPOTENCY_CONFLICT","CORPORATE_ACTION_INSTRUMENT_MISSING","CORPORATE_ACTION_IN_FLIGHT","CORPORATE_ACTION_NOT_FOUND","CORPORATE_ACTION_PAYOUT_INELIGIBLE","CORPORATE_ACTION_POOL_UNFUNDABLE","CORPORATE_ACTION_PREVIEW_MISMATCH","CORPORATE_ACTION_PREVIEW_REQUIRED","CORPORATE_ACTION_PROGRAM_MISSING","CORPORATE_ACTION_SALE_DISABLED","CORPORATE_ACTION_SALE_MISSING","CORPORATE_ACTION_SALE_TOKEN_MISMATCH","CORPORATE_ACTION_SALE_UNKNOWN","CORPORATE_ACTION_SNAPSHOT_DRIFT","CORPORATE_ACTION_SNAPSHOT_NOT_READY","CORPORATE_ACTION_TOKEN_PAUSED","CORPORATE_ACTION_TOKEN_UNINDEXED","CORPORATE_ACTION_WATERFALL_CANNOT_RECEIVE","CORPORATE_ACTION_WRONG_STATUS","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Stops a Corporate Action that is not yet completed or aborted. Status becomes aborted. Later chunks do not submit. Applied holders stay in place. There is no rollback.","summary":"Abort a Corporate Action","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]}},"additionalProperties":false}}},"required":false},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/corporate-actions/{corporateActionId}/election":{"get":{"tags":["Corporate actions"],"operationId":"v2/token/getCorporateActionElection","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"corporateActionId","in":"path","schema":{"type":"string","minLength":1},"required":true}],"responses":{"200":{"description":"The election deadline and available options for the corporate action.","content":{"application/json":{"schema":{"type":"object","properties":{"corporateActionId":{"type":"string","minLength":1},"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"deadline":{"type":"string"},"options":{"type":"array","items":{"$ref":"#/components/schemas/CorporateActionElectionOption"},"minItems":2},"defaultOption":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,63}$"}},"required":["corporateActionId","tokenAddress","deadline","options","defaultOption"],"additionalProperties":false},"examples":{"example-1":{"value":{"corporateActionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","tokenAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","deadline":"2027-04-03T09:12:41.000Z","options":[{"key":"participate","label":"Participate","settlementLeg":"primary"},{"key":"decline","label":"Decline","settlementLeg":"none"}],"defaultOption":"participate"}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CORPORATE_ACTION_CALL_PROTECTED","CORPORATE_ACTION_CAPABILITY_MISSING","CORPORATE_ACTION_CASH_LEG_BURN_FEE","CORPORATE_ACTION_CASH_LEG_NEEDS_SMART_ACCOUNT","CORPORATE_ACTION_CASH_LEG_SELF_DENOMINATED","CORPORATE_ACTION_CASH_LEG_UNDERFUNDED","CORPORATE_ACTION_CASH_LEG_UNPAYABLE_HOLDER","CORPORATE_ACTION_CASH_LEG_UNVERIFIABLE_ASSET","CORPORATE_ACTION_CASH_LEG_WALLET_MISMATCH","CORPORATE_ACTION_CHILD_NOT_EMPTY","CORPORATE_ACTION_CHILD_UNAUTHORIZED","CORPORATE_ACTION_COMPLETE_ON_CREATE","CORPORATE_ACTION_DIVIDEND_UNLINKED","CORPORATE_ACTION_ELECTION_ABSENT","CORPORATE_ACTION_ELECTION_CLOSED","CORPORATE_ACTION_ELECTION_DEADLINE_INVALID","CORPORATE_ACTION_ELECTION_HOLDER_INELIGIBLE","CORPORATE_ACTION_ELECTION_HOLDER_UNAUTHORIZED","CORPORATE_ACTION_ELECTION_LOCKED","CORPORATE_ACTION_ELECTION_OPEN","CORPORATE_ACTION_ELECTION_OPTION_INVALID","CORPORATE_ACTION_ELECTION_SHAPE_INVALID","CORPORATE_ACTION_FOLLOW_UP_UNKNOWN","CORPORATE_ACTION_HISTORICAL_BALANCES","CORPORATE_ACTION_IDEMPOTENCY_CONFLICT","CORPORATE_ACTION_INSTRUMENT_MISSING","CORPORATE_ACTION_NOT_FOUND","CORPORATE_ACTION_PAYOUT_INELIGIBLE","CORPORATE_ACTION_POOL_UNFUNDABLE","CORPORATE_ACTION_PREVIEW_MISMATCH","CORPORATE_ACTION_PREVIEW_REQUIRED","CORPORATE_ACTION_PROGRAM_MISSING","CORPORATE_ACTION_SALE_DISABLED","CORPORATE_ACTION_SALE_MISSING","CORPORATE_ACTION_SALE_TOKEN_MISMATCH","CORPORATE_ACTION_SALE_UNKNOWN","CORPORATE_ACTION_SNAPSHOT_DRIFT","CORPORATE_ACTION_SNAPSHOT_NOT_READY","CORPORATE_ACTION_TOKEN_PAUSED","CORPORATE_ACTION_TOKEN_UNINDEXED","CORPORATE_ACTION_WATERFALL_CANNOT_RECEIVE","CORPORATE_ACTION_WRONG_STATUS","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","TOKEN_ACCESS_INTERFACE_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"TOKEN_ACCESS_INTERFACE_UNSUPPORTED","status":422,"message":"The token exposes neither ERC-3643 nor the supported SMART access-control interface.","data":{"id":"DALP-12025","why":"The platform reads the indexed token interface before it resolves roles; this token reports neither interface, so no role check can run. `data.tokenAddress` names the token.","fix":"Use a token that implements ERC-3643 or the supported SMART access-control interface, or correct the indexed token interface metadata, then retry.","retryable":false,"category":"domain","tokenAddress":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the election deadline and available options for the corporate action. Holders use these option keys when submitting a choice. Repeating the request is safe.","summary":"Read a corporate-action election configuration","x-dalp-auth":"session-or-api-key"},"post":{"tags":["Corporate actions"],"operationId":"v2/token/submitCorporateActionElection","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"corporateActionId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The stored holder election after the submission is accepted.","content":{"application/json":{"schema":{"type":"object","properties":{"corporateActionId":{"type":"string","minLength":1},"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"holder":{"$ref":"#/components/schemas/EvmAddress"},"option":{"type":"string","minLength":1},"amount":{"type":"string","pattern":"^[0-9]+$"},"submittedAt":{"type":"string"}},"required":["corporateActionId","tokenAddress","holder","option","amount","submittedAt"],"additionalProperties":false,"examples":[{"corporateActionId":"01934567-89ab-7def-8123-456789abcdef","tokenAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","holder":"0x4B20993Bc481177ec7E8f571ceCaE8A9e22C02db","option":"cash","amount":"1000","submittedAt":"2026-09-29T00:00:00Z"}]},"examples":{"example-1":{"value":{"corporateActionId":"01934567-89ab-7def-8123-456789abcdef","tokenAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","holder":"0x4B20993Bc481177ec7E8f571ceCaE8A9e22C02db","option":"cash","amount":"1000","submittedAt":"2026-09-29T00:00:00Z"}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CORPORATE_ACTION_CALL_PROTECTED","CORPORATE_ACTION_CAPABILITY_MISSING","CORPORATE_ACTION_CASH_LEG_BURN_FEE","CORPORATE_ACTION_CASH_LEG_NEEDS_SMART_ACCOUNT","CORPORATE_ACTION_CASH_LEG_SELF_DENOMINATED","CORPORATE_ACTION_CASH_LEG_UNDERFUNDED","CORPORATE_ACTION_CASH_LEG_UNPAYABLE_HOLDER","CORPORATE_ACTION_CASH_LEG_UNVERIFIABLE_ASSET","CORPORATE_ACTION_CASH_LEG_WALLET_MISMATCH","CORPORATE_ACTION_CHILD_NOT_EMPTY","CORPORATE_ACTION_CHILD_UNAUTHORIZED","CORPORATE_ACTION_COMPLETE_ON_CREATE","CORPORATE_ACTION_DIVIDEND_UNLINKED","CORPORATE_ACTION_ELECTION_ABSENT","CORPORATE_ACTION_ELECTION_CLOSED","CORPORATE_ACTION_ELECTION_DEADLINE_INVALID","CORPORATE_ACTION_ELECTION_HOLDER_INELIGIBLE","CORPORATE_ACTION_ELECTION_HOLDER_UNAUTHORIZED","CORPORATE_ACTION_ELECTION_LOCKED","CORPORATE_ACTION_ELECTION_OPEN","CORPORATE_ACTION_ELECTION_OPTION_INVALID","CORPORATE_ACTION_ELECTION_SHAPE_INVALID","CORPORATE_ACTION_FOLLOW_UP_UNKNOWN","CORPORATE_ACTION_HISTORICAL_BALANCES","CORPORATE_ACTION_IDEMPOTENCY_CONFLICT","CORPORATE_ACTION_INSTRUMENT_MISSING","CORPORATE_ACTION_NOT_FOUND","CORPORATE_ACTION_PAYOUT_INELIGIBLE","CORPORATE_ACTION_POOL_UNFUNDABLE","CORPORATE_ACTION_PREVIEW_MISMATCH","CORPORATE_ACTION_PREVIEW_REQUIRED","CORPORATE_ACTION_PROGRAM_MISSING","CORPORATE_ACTION_SALE_DISABLED","CORPORATE_ACTION_SALE_MISSING","CORPORATE_ACTION_SALE_TOKEN_MISMATCH","CORPORATE_ACTION_SALE_UNKNOWN","CORPORATE_ACTION_SNAPSHOT_DRIFT","CORPORATE_ACTION_SNAPSHOT_NOT_READY","CORPORATE_ACTION_TOKEN_PAUSED","CORPORATE_ACTION_TOKEN_UNINDEXED","CORPORATE_ACTION_WATERFALL_CANNOT_RECEIVE","CORPORATE_ACTION_WRONG_STATUS","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Submits or replaces a verified holder's election before the corporate action deadline. Choose one of the options published for the action; the elected amount comes from the action's holder snapshot. The final tally feeds the corporate-action execution after the deadline.","summary":"Submit a corporate-action election","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"holder":{"$ref":"#/components/schemas/EvmAddress"},"option":{"type":"string","minLength":1},"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]}},"required":["holder","option"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/corporate-actions/{corporateActionId}/election/tally":{"get":{"tags":["Corporate actions"],"operationId":"v2/token/getCorporateActionElectionTally","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"corporateActionId","in":"path","schema":{"type":"string","minLength":1},"required":true}],"responses":{"200":{"description":"The election tally grouped by option, including counts and elected amounts.","content":{"application/json":{"schema":{"type":"object","properties":{"corporateActionId":{"type":"string","minLength":1},"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"deadline":{"type":"string"},"eligibleHolderCount":{"type":"integer"},"submittedHolderCount":{"type":"integer"},"entries":{"type":"array","items":{"type":"object","properties":{"option":{"type":"string","minLength":1},"holderCount":{"type":"integer"},"amount":{"type":"string","pattern":"^[0-9]+$"}},"required":["option","holderCount","amount"],"additionalProperties":false}}},"required":["corporateActionId","tokenAddress","deadline","eligibleHolderCount","submittedHolderCount","entries"],"additionalProperties":false},"examples":{"example-1":{"value":{"corporateActionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","tokenAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","deadline":"2027-04-03T09:12:41.000Z","eligibleHolderCount":0,"submittedHolderCount":0,"entries":[]}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CORPORATE_ACTION_CALL_PROTECTED","CORPORATE_ACTION_CAPABILITY_MISSING","CORPORATE_ACTION_CASH_LEG_BURN_FEE","CORPORATE_ACTION_CASH_LEG_NEEDS_SMART_ACCOUNT","CORPORATE_ACTION_CASH_LEG_SELF_DENOMINATED","CORPORATE_ACTION_CASH_LEG_UNDERFUNDED","CORPORATE_ACTION_CASH_LEG_UNPAYABLE_HOLDER","CORPORATE_ACTION_CASH_LEG_UNVERIFIABLE_ASSET","CORPORATE_ACTION_CASH_LEG_WALLET_MISMATCH","CORPORATE_ACTION_CHILD_NOT_EMPTY","CORPORATE_ACTION_CHILD_UNAUTHORIZED","CORPORATE_ACTION_COMPLETE_ON_CREATE","CORPORATE_ACTION_DIVIDEND_UNLINKED","CORPORATE_ACTION_ELECTION_ABSENT","CORPORATE_ACTION_ELECTION_CLOSED","CORPORATE_ACTION_ELECTION_DEADLINE_INVALID","CORPORATE_ACTION_ELECTION_HOLDER_INELIGIBLE","CORPORATE_ACTION_ELECTION_HOLDER_UNAUTHORIZED","CORPORATE_ACTION_ELECTION_LOCKED","CORPORATE_ACTION_ELECTION_OPEN","CORPORATE_ACTION_ELECTION_OPTION_INVALID","CORPORATE_ACTION_ELECTION_SHAPE_INVALID","CORPORATE_ACTION_FOLLOW_UP_UNKNOWN","CORPORATE_ACTION_HISTORICAL_BALANCES","CORPORATE_ACTION_IDEMPOTENCY_CONFLICT","CORPORATE_ACTION_INSTRUMENT_MISSING","CORPORATE_ACTION_NOT_FOUND","CORPORATE_ACTION_PAYOUT_INELIGIBLE","CORPORATE_ACTION_POOL_UNFUNDABLE","CORPORATE_ACTION_PREVIEW_MISMATCH","CORPORATE_ACTION_PREVIEW_REQUIRED","CORPORATE_ACTION_PROGRAM_MISSING","CORPORATE_ACTION_SALE_DISABLED","CORPORATE_ACTION_SALE_MISSING","CORPORATE_ACTION_SALE_TOKEN_MISMATCH","CORPORATE_ACTION_SALE_UNKNOWN","CORPORATE_ACTION_SNAPSHOT_DRIFT","CORPORATE_ACTION_SNAPSHOT_NOT_READY","CORPORATE_ACTION_TOKEN_PAUSED","CORPORATE_ACTION_TOKEN_UNINDEXED","CORPORATE_ACTION_WATERFALL_CANNOT_RECEIVE","CORPORATE_ACTION_WRONG_STATUS","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","TOKEN_ACCESS_INTERFACE_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"TOKEN_ACCESS_INTERFACE_UNSUPPORTED","status":422,"message":"The token exposes neither ERC-3643 nor the supported SMART access-control interface.","data":{"id":"DALP-12025","why":"The platform reads the indexed token interface before it resolves roles; this token reports neither interface, so no role check can run. `data.tokenAddress` names the token.","fix":"Use a token that implements ERC-3643 or the supported SMART access-control interface, or correct the indexed token interface metadata, then retry.","retryable":false,"category":"domain","tokenAddress":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the amount-weighted tally of holder elections for the corporate action, grouped by option and including elected amounts. The read is scoped to the selected token and active organization and is not cached.","summary":"Read the corporate-action election tally","x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/fixed-yield-schedules/{scheduleAddress}":{"get":{"tags":["Yield and distributions"],"operationId":"v2/addons/fixedYield/read","parameters":[{"name":"scheduleAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true}],"responses":{"200":{"description":"Standalone fixed-yield schedule in a single-resource envelope. links.self is the canonical v2 URL for the schedule.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"startDate":{"type":"string"},"endDate":{"type":"string"},"rate":{"type":"string"},"interval":{"type":"string"},"totalClaimed":{"anyOf":[{"type":"string"},{"type":"number"}]},"totalUnclaimedYield":{"anyOf":[{"type":"string"},{"type":"number"}]},"totalYield":{"anyOf":[{"type":"string"},{"type":"number"}]},"denominationAsset":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"decimals":{"anyOf":[{"type":"string"},{"type":"number"}]},"symbol":{"type":"string"}},"required":["id","decimals","symbol"],"additionalProperties":false},"currentPeriod":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}-period-\\d+$"},"startDate":{"type":"string"},"endDate":{"type":"string"},"totalClaimed":{"anyOf":[{"type":"string"},{"type":"number"}]},"totalUnclaimedYield":{"anyOf":[{"type":"string"},{"type":"number"}]},"totalYield":{"anyOf":[{"type":"string"},{"type":"number"}]},"completed":{"type":"boolean"}},"required":["id","startDate","endDate","totalClaimed","totalUnclaimedYield","totalYield","completed"],"additionalProperties":false},{"type":"null"}]},"nextPeriod":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}-period-\\d+$"},"startDate":{"type":"string"},"endDate":{"type":"string"},"totalClaimed":{"anyOf":[{"type":"string"},{"type":"number"}]},"totalUnclaimedYield":{"anyOf":[{"type":"string"},{"type":"number"}]},"totalYield":{"anyOf":[{"type":"string"},{"type":"number"}]},"completed":{"type":"boolean"}},"required":["id","startDate","endDate","totalClaimed","totalUnclaimedYield","totalYield","completed"],"additionalProperties":false},{"type":"null"}]},"periods":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}-period-\\d+$"},"startDate":{"type":"string"},"endDate":{"type":"string"},"totalClaimed":{"anyOf":[{"type":"string"},{"type":"number"}]},"totalUnclaimedYield":{"anyOf":[{"type":"string"},{"type":"number"}]},"totalYield":{"anyOf":[{"type":"string"},{"type":"number"}]},"completed":{"type":"boolean"}},"required":["id","startDate","endDate","totalClaimed","totalUnclaimedYield","totalYield","completed"],"additionalProperties":false}}},"required":["id","startDate","endDate","rate","interval","totalClaimed","totalUnclaimedYield","totalYield","denominationAsset","currentPeriod","nextPeriod","periods"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x2279B7A0a67DB372996a5FaB50D91eAA73d2eBe6","startDate":"2026-03-04T09:12:41.000Z","endDate":"2029-03-04T00:00:00.000Z","rate":"500","interval":"MONTHLY","totalClaimed":"98000.00","totalUnclaimedYield":"27000.00","totalYield":"125000.00","denominationAsset":{"id":"0x5FbDB2315678afecb367f032d93F642f64180aa3","decimals":6,"symbol":"EURC"},"currentPeriod":{"id":"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6-period-2","startDate":"2026-04-04T09:12:41.000Z","endDate":"2026-05-04T09:12:41.000Z","totalClaimed":"0","totalUnclaimedYield":"25000.00","totalYield":"25000.00","completed":false},"nextPeriod":null,"periods":[{"id":"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6-period-1","startDate":"2026-03-04T09:12:41.000Z","endDate":"2026-04-04T09:12:41.000Z","totalClaimed":"98000.00","totalUnclaimedYield":"2000.00","totalYield":"100000.00","completed":true},{"id":"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6-period-2","startDate":"2026-04-04T09:12:41.000Z","endDate":"2026-05-04T09:12:41.000Z","totalClaimed":"0","totalUnclaimedYield":"25000.00","totalYield":"25000.00","completed":false}]},"links":{"self":"/api/v2/addons/fixed-yield-schedules/0x2279B7A0a67DB372996a5FaB50D91eAA73d2eBe6"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","FIXED_YIELD_OPERATION_ADDON_NOT_FOUND","FIXED_YIELD_OPERATION_DENOMINATION_ASSET_NOT_INDEXED","FIXED_YIELD_OPERATION_DENOMINATION_METADATA_NOT_INDEXED","FIXED_YIELD_OPERATION_DEPLOYMENT_NOT_INDEXED","FIXED_YIELD_OPERATION_SCHEDULE_NOT_FOUND","FIXED_YIELD_OPERATION_SYSTEM_MISMATCH","FIXED_YIELD_OPERATION_TOKEN_LINKAGE_NOT_INDEXED","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","TOKEN_ACCESS_INTERFACE_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"TOKEN_ACCESS_INTERFACE_UNSUPPORTED","status":422,"message":"The token exposes neither ERC-3643 nor the supported SMART access-control interface.","data":{"id":"DALP-12025","why":"The platform reads the indexed token interface before it resolves roles; this token reports neither interface, so no role check can run. `data.tokenAddress` names the token.","fix":"Use a token that implements ERC-3643 or the supported SMART access-control interface, or correct the indexed token interface metadata, then retry.","retryable":false,"category":"domain","tokenAddress":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one standalone fixed-yield schedule identified by scheduleAddress, wrapped in a single-resource envelope. The schedule is not a token-attached feature. The read is idempotent. Use the returned periods to decide whether to claim, top up, or withdraw.","summary":"Read a fixed-yield schedule","x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/fixed-yield-schedules":{"post":{"tags":["Yield and distributions"],"operationId":"v2/addons/fixedYield/create","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled standalone fixed-yield schedule after create completed within the wait window.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"startDate":{"type":"string"},"endDate":{"type":"string"},"rate":{"type":"string"},"interval":{"type":"string"},"totalClaimed":{"anyOf":[{"type":"string"},{"type":"number"}]},"totalUnclaimedYield":{"anyOf":[{"type":"string"},{"type":"number"}]},"totalYield":{"anyOf":[{"type":"string"},{"type":"number"}]},"denominationAsset":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"decimals":{"anyOf":[{"type":"string"},{"type":"number"}]},"symbol":{"type":"string"}},"required":["id","decimals","symbol"],"additionalProperties":false},"currentPeriod":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}-period-\\d+$"},"startDate":{"type":"string"},"endDate":{"type":"string"},"totalClaimed":{"anyOf":[{"type":"string"},{"type":"number"}]},"totalUnclaimedYield":{"anyOf":[{"type":"string"},{"type":"number"}]},"totalYield":{"anyOf":[{"type":"string"},{"type":"number"}]},"completed":{"type":"boolean"}},"required":["id","startDate","endDate","totalClaimed","totalUnclaimedYield","totalYield","completed"],"additionalProperties":false},{"type":"null"}]},"nextPeriod":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}-period-\\d+$"},"startDate":{"type":"string"},"endDate":{"type":"string"},"totalClaimed":{"anyOf":[{"type":"string"},{"type":"number"}]},"totalUnclaimedYield":{"anyOf":[{"type":"string"},{"type":"number"}]},"totalYield":{"anyOf":[{"type":"string"},{"type":"number"}]},"completed":{"type":"boolean"}},"required":["id","startDate","endDate","totalClaimed","totalUnclaimedYield","totalYield","completed"],"additionalProperties":false},{"type":"null"}]},"periods":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}-period-\\d+$"},"startDate":{"type":"string"},"endDate":{"type":"string"},"totalClaimed":{"anyOf":[{"type":"string"},{"type":"number"}]},"totalUnclaimedYield":{"anyOf":[{"type":"string"},{"type":"number"}]},"totalYield":{"anyOf":[{"type":"string"},{"type":"number"}]},"completed":{"type":"boolean"}},"required":["id","startDate","endDate","totalClaimed","totalUnclaimedYield","totalYield","completed"],"additionalProperties":false}}},"required":["id","startDate","endDate","rate","interval","totalClaimed","totalUnclaimedYield","totalYield","denominationAsset","currentPeriod","nextPeriod","periods"],"additionalProperties":false},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"type":"string"}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x2279B7A0a67DB372996a5FaB50D91eAA73d2eBe6","startDate":"2026-03-04T09:12:41.000Z","endDate":"2029-03-04T00:00:00.000Z","rate":"500","interval":"MONTHLY","totalClaimed":"98000.00","totalUnclaimedYield":"27000.00","totalYield":"125000.00","denominationAsset":{"id":"0x5FbDB2315678afecb367f032d93F642f64180aa3","decimals":6,"symbol":"EURC"},"currentPeriod":{"id":"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6-period-2","startDate":"2026-04-04T09:12:41.000Z","endDate":"2026-05-04T09:12:41.000Z","totalClaimed":"0","totalUnclaimedYield":"25000.00","totalYield":"25000.00","completed":false},"nextPeriod":null,"periods":[{"id":"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6-period-1","startDate":"2026-03-04T09:12:41.000Z","endDate":"2026-04-04T09:12:41.000Z","totalClaimed":"98000.00","totalUnclaimedYield":"2000.00","totalYield":"100000.00","completed":true},{"id":"0x2279b7a0a67db372996a5fab50d91eaa73d2ebe6-period-2","startDate":"2026-04-04T09:12:41.000Z","endDate":"2026-05-04T09:12:41.000Z","totalClaimed":"0","totalUnclaimedYield":"25000.00","totalYield":"25000.00","completed":false}]},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"]},"links":{"self":"/api/v2/addons/fixed-yield-schedules/0x2279B7A0a67DB372996a5FaB50D91eAA73d2eBe6"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CUSTODY_ACCOUNT_SELECTION_INVALID","FIXED_YIELD_OPERATION_ADDON_NOT_FOUND","FIXED_YIELD_OPERATION_DENOMINATION_ASSET_NOT_INDEXED","FIXED_YIELD_OPERATION_DENOMINATION_METADATA_NOT_INDEXED","FIXED_YIELD_OPERATION_DEPLOYMENT_NOT_INDEXED","FIXED_YIELD_OPERATION_SCHEDULE_NOT_FOUND","FIXED_YIELD_OPERATION_SYSTEM_MISMATCH","FIXED_YIELD_OPERATION_TOKEN_LINKAGE_NOT_INDEXED","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Creates a standalone fixed-yield schedule for the named token. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement. After settlement, top up denomination assets so holders can claim completed periods.","summary":"Create a fixed-yield schedule","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"yieldRate":{"type":"integer","minimum":0,"maximum":10000},"paymentInterval":{"anyOf":[{"type":"string","enum":["HOURLY","DAILY","WEEKLY","MONTHLY","QUARTERLY","SEMI_ANNUAL","YEARLY"]},{"type":"integer","exclusiveMinimum":0}]},"startTime":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"number","minimum":0},{"type":"string"}]},"endTime":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"number","minimum":0},{"type":"string"}]},"token":{"$ref":"#/components/schemas/EvmAddress"},"countryCode":{"type":"integer","minimum":1,"maximum":999}},"required":["yieldRate","paymentInterval","token","countryCode"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/fixed-yield-schedules/{scheduleAddress}/top-ups":{"post":{"tags":["Yield and distributions"],"operationId":"v2/addons/fixedYield/topUp","parameters":[{"name":"scheduleAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled top-up or withdraw of denomination assets on the standalone schedule. data.txHash is the chain transaction.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"txHash":{"type":"string"}},"required":["txHash"],"additionalProperties":false},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"type":"string"}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"txHash":"0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"]},"links":{"self":"/api/v2/addons/fixed-yield-schedules/0x2279B7A0a67DB372996a5FaB50D91eAA73d2eBe6"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CUSTODY_ACCOUNT_SELECTION_INVALID","FIXED_YIELD_OPERATION_ADDON_NOT_FOUND","FIXED_YIELD_OPERATION_DENOMINATION_ASSET_NOT_INDEXED","FIXED_YIELD_OPERATION_DENOMINATION_METADATA_NOT_INDEXED","FIXED_YIELD_OPERATION_DEPLOYMENT_NOT_INDEXED","FIXED_YIELD_OPERATION_SCHEDULE_NOT_FOUND","FIXED_YIELD_OPERATION_SYSTEM_MISMATCH","FIXED_YIELD_OPERATION_TOKEN_LINKAGE_NOT_INDEXED","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","FIXED_YIELD_DENOMINATION_ASSET_NOT_INDEXED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Adds denomination assets to the named standalone schedule. The amount is an integer decimal string in denomination base units. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. Prefer: wait=<seconds> waits for settlement. After settlement, holders can claim completed periods.","summary":"Top up a fixed-yield schedule","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"amount":{"type":"string","pattern":"^[0-9]+$"},"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"}},"required":["amount","tokenAddress"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/fixed-yield-schedules/{scheduleAddress}/withdrawals":{"post":{"tags":["Yield and distributions"],"operationId":"v2/addons/fixedYield/withdraw","parameters":[{"name":"scheduleAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled top-up or withdraw of denomination assets on the standalone schedule. data.txHash is the chain transaction.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"txHash":{"type":"string"}},"required":["txHash"],"additionalProperties":false},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"type":"string"}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"txHash":"0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"]},"links":{"self":"/api/v2/addons/fixed-yield-schedules/0x2279B7A0a67DB372996a5FaB50D91eAA73d2eBe6"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CUSTODY_ACCOUNT_SELECTION_INVALID","FIXED_YIELD_OPERATION_ADDON_NOT_FOUND","FIXED_YIELD_OPERATION_DENOMINATION_ASSET_NOT_INDEXED","FIXED_YIELD_OPERATION_DENOMINATION_METADATA_NOT_INDEXED","FIXED_YIELD_OPERATION_DEPLOYMENT_NOT_INDEXED","FIXED_YIELD_OPERATION_SCHEDULE_NOT_FOUND","FIXED_YIELD_OPERATION_SYSTEM_MISMATCH","FIXED_YIELD_OPERATION_TOKEN_LINKAGE_NOT_INDEXED","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Withdraws denomination assets from the named standalone schedule to the recipient in the request body. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. Prefer: wait=<seconds> waits for settlement. Use this for excess treasury funds, not for holder claims.","summary":"Withdraw from a fixed-yield schedule","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"amount":{"type":"string","pattern":"^[0-9]+$"},"to":{"$ref":"#/components/schemas/EvmAddress"},"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"}},"required":["amount","to","tokenAddress"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/fixed-yield-schedules/{scheduleAddress}/claims":{"post":{"tags":["Yield and distributions"],"operationId":"v2/addons/fixedYield/claim","parameters":[{"name":"scheduleAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled claim of completed coupon periods. complete is false when more completed periods remain.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"txHash":{"type":"string"},"complete":{"type":"boolean"}},"required":["txHash"],"additionalProperties":false},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"type":"string"}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"txHash":"0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24","complete":true},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"]},"links":{"self":"/api/v2/addons/fixed-yield-schedules/0x2279B7A0a67DB372996a5FaB50D91eAA73d2eBe6"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CUSTODY_ACCOUNT_SELECTION_INVALID","FIXED_YIELD_OPERATION_ADDON_NOT_FOUND","FIXED_YIELD_OPERATION_DENOMINATION_ASSET_NOT_INDEXED","FIXED_YIELD_OPERATION_DENOMINATION_METADATA_NOT_INDEXED","FIXED_YIELD_OPERATION_DEPLOYMENT_NOT_INDEXED","FIXED_YIELD_OPERATION_SCHEDULE_NOT_FOUND","FIXED_YIELD_OPERATION_SYSTEM_MISMATCH","FIXED_YIELD_OPERATION_TOKEN_LINKAGE_NOT_INDEXED","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Claims completed standalone fixed-yield periods for the caller. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. Prefer: wait=<seconds> waits for settlement. complete is false when more completed periods remain; call claim again to continue.","summary":"Claim fixed yield","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]}},"additionalProperties":false}}},"required":false},"x-dalp-auth":"session-or-api-key"}},"/api/v2/token-features/definitions":{"get":{"tags":["Asset design"],"operationId":"v2/token/features/definitions","parameters":[],"responses":{"200":{"description":"Returns the canonical field, validation, source, and operation definitions used by token feature authoring and issuance.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":128},"revision":{"type":"integer","minimum":1},"label":{"type":"string","minLength":1,"maxLength":256},"multipleInstances":{"type":"boolean"},"fields":{"type":"array","items":{"$ref":"#/components/schemas/FeatureFieldDefinition"}},"operations":{"type":"array","items":{"type":"string","enum":["addAuthorizedConverter","bindClass"]}},"constraints":{"type":"array","items":{"type":"string","enum":["waterfall-terms","conversion-terms","yield-dates","external-fee-terms","converter-terms"]}}},"required":["id","revision","label","multipleInstances","fields","operations","constraints"],"additionalProperties":false}},"limits":{"type":"object","properties":{"depth":{"type":"number","enum":[8]},"nodes":{"type":"number","enum":[2048]},"links":{"type":"number","enum":[256]}},"required":["depth","nodes","links"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string","enum":["/api/v2/token-features/definitions"]}},"required":["self"],"additionalProperties":false}},"required":["data","limits","links"],"additionalProperties":false,"examples":[{"data":[{"id":"dividend-yield","revision":1,"label":"dividend-yield","multipleInstances":false,"fields":[{"kind":"scalar","id":"denominationAsset","label":"denominationAsset","scalarType":"address","required":true,"accepts":["erc20"],"reference":{"targets":["token"],"allowSelf":true,"multipleInstances":false},"nonzero":true},{"kind":"scalar","id":"treasury","label":"treasury","scalarType":"address","required":true,"accepts":["account","feature"],"reference":{"targets":["token","feature"],"requiresFeature":"distribution-waterfall","allowSelf":true,"multipleInstances":false,"reciprocal":{"featureId":"distribution-waterfall","fieldId":"classTerms"}},"nonzero":true},{"kind":"scalar","id":"defaultClaimDeadlineDays","label":"defaultClaimDeadlineDays","scalarType":"integer","required":true,"minimum":1,"maximum":9007199254740991,"defaultValue":90}],"operations":[],"constraints":[]}],"limits":{"depth":8,"nodes":2048,"links":256},"links":{"self":"/api/v2/token-features/definitions"}}]},"examples":{"example-1":{"value":{"data":[{"id":"dividend-yield","revision":1,"label":"dividend-yield","multipleInstances":false,"fields":[{"kind":"scalar","id":"denominationAsset","label":"denominationAsset","scalarType":"address","required":true,"accepts":["erc20"],"reference":{"targets":["token"],"allowSelf":true,"multipleInstances":false},"nonzero":true},{"kind":"scalar","id":"treasury","label":"treasury","scalarType":"address","required":true,"accepts":["account","feature"],"reference":{"targets":["token","feature"],"requiresFeature":"distribution-waterfall","allowSelf":true,"multipleInstances":false,"reciprocal":{"featureId":"distribution-waterfall","fieldId":"classTerms"}},"nonzero":true},{"kind":"scalar","id":"defaultClaimDeadlineDays","label":"defaultClaimDeadlineDays","scalarType":"integer","required":true,"minimum":1,"maximum":9007199254740991,"defaultValue":90}],"operations":[],"constraints":[]}],"limits":{"depth":8,"nodes":2048,"links":256},"links":{"self":"/api/v2/token-features/definitions"}}}}}}},"400":{"description":"This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_CHAIN_SYSTEM_REQUIRED","status":404,"message":"The organization has no deployed system on chain 1","data":{"id":"DALP-9524","why":"The active organization has no deployed system on its default network.","fix":"Deploy the organization system before using system-scoped APIs.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the canonical field, validation, source, and operation definitions used by token feature authoring and issuance.","summary":"List token feature definitions","x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/features/hold/reservers":{"post":{"tags":["Token features"],"operationId":"v2/token/addHoldReserver","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled token after the feature write completed within the wait window. data is the indexed token. meta.txHashes are the submitted transactions. links.self is the token URL.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenRecord"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","tokenFactory":"0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0","complianceContract":"0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9","identityRegistry":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","type":"bond","createdAt":"2026-03-04T09:12:41.000Z","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"basePrice":"100.00","basePriceCurrencyCode":"EUR","totalSupply":"2500000.00","totalSupplyExact":"2500000000000000000000000","extensions":["ACCESS_MANAGED","BOND","CAPPED","REDEEMABLE"],"implementsERC3643":true,"smartInterface":2,"implementsSMART":true,"pausable":{"paused":false},"collateral":null,"capped":{"cap":"5000000.00","capExact":"5000000000000000000000000"},"createdBy":{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"},"redeemable":{"redeemedAmount":"0","redeemedAmountExact":"0"},"yield":null,"bond":{"faceValue":"100.00","faceValueExact":"100000000000000000000","isMatured":false,"maturityDate":"2029-03-04T00:00:00.000Z","totalRedeemed":"0","totalRedeemedExact":"0","denominationAsset":{"id":"0x5FbDB2315678afecb367f032d93F642f64180aa3","symbol":"EURC","decimals":6}},"fund":null,"complianceModuleConfigs":[],"stats":{"balancesCount":12,"totalValueInBaseCurrency":"250000000.00","totalBurned":"0","totalBurnedExact":"0"}},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"]},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Allows an address to place holds on this token through the attached hold feature, with the lifetime its holds keep. A hold feature starts with an empty allow-list, so a trading venue can only back orders on this token once it is added here. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement. After settlement, list the token features to read the reserver set.","summary":"Allow a reserver to place holds","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"reserver":{"$ref":"#/components/schemas/EvmAddress"},"holdLifetimeSeconds":{"type":"integer","minimum":0,"maximum":4294967295}},"required":["reserver","holdLifetimeSeconds"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"},"delete":{"tags":["Token features"],"operationId":"v2/token/removeHoldReserver","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Settled token after the feature write completed within the wait window. data is the indexed token. meta.txHashes are the submitted transactions. links.self is the token URL.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenRecord"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","tokenFactory":"0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0","complianceContract":"0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9","identityRegistry":"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9","type":"bond","createdAt":"2026-03-04T09:12:41.000Z","name":"Northwind Coffee Series A Bond","symbol":"NWCAB","decimals":18,"basePrice":"100.00","basePriceCurrencyCode":"EUR","totalSupply":"2500000.00","totalSupplyExact":"2500000000000000000000000","extensions":["ACCESS_MANAGED","BOND","CAPPED","REDEEMABLE"],"implementsERC3643":true,"smartInterface":2,"implementsSMART":true,"pausable":{"paused":false},"collateral":null,"capped":{"cap":"5000000.00","capExact":"5000000000000000000000000"},"createdBy":{"id":"0x2546BcD3c84621e976D8185a91A922aE77ECEc30"},"redeemable":{"redeemedAmount":"0","redeemedAmountExact":"0"},"yield":null,"bond":{"faceValue":"100.00","faceValueExact":"100000000000000000000","isMatured":false,"maturityDate":"2029-03-04T00:00:00.000Z","totalRedeemed":"0","totalRedeemedExact":"0","denominationAsset":{"id":"0x5FbDB2315678afecb367f032d93F642f64180aa3","symbol":"EURC","decimals":6}},"fund":null,"complianceModuleConfigs":[],"stats":{"balancesCount":12,"totalValueInBaseCurrency":"250000000.00","totalBurned":"0","totalBurnedExact":"0"}},"meta":{"txHashes":["0x2a8f0d4c1b6e39a7c05d8f21b4e7a63c9d0f5b18e24a7c36d91b0f8e5a3c7d24"]},"links":{"self":"/api/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Drops an address from the hold feature's allow-list. Every hold it placed is released at once, which frees the holders and invalidates whatever those holds were backing. By default the platform queues the transaction and answers with the transaction identifier and status URL under status 202. A caller that sends Prefer: wait=<seconds> waits for settlement.","summary":"Drop a reserver from the hold feature","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]},"reserver":{"$ref":"#/components/schemas/EvmAddress"}},"required":["reserver"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/tokens/{assetId}/features/hold/reserver-impact":{"get":{"tags":["Token features"],"operationId":"v2/token/holdReserverImpact","parameters":[{"name":"assetId","in":"path","schema":{"type":"string","minLength":1,"maxLength":255},"required":true},{"name":"reserverAddress","in":"query","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true}],"responses":{"200":{"description":"What removing this reserver would prune and undo, counted now.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenHoldReserverImpact"},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"restingOrders":4,"pendingDeliveries":1},"links":{"self":"/v2/tokens/0x71C7656EC7ab88b098defB751B7401B5f6d8976F/features/hold/reserver-impact"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["ASSET_REFERENCE_INVALID","BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","TOKEN_LIST_METADATA_KEY_IDENTIFIER_INELIGIBLE","TOKEN_LIST_METADATA_KEY_NOT_BUCKETABLE","TOKEN_LIST_METADATA_KEY_UNKNOWN","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"ASSET_REFERENCE_INVALID","status":400,"message":"Asset reference names neither a token contract nor a Canton instrument","data":{"id":"DALP-9323","why":"The shared asset read addresses an EVM token by its contract address and a Canton instrument by its instrument id plus the `instrumentAdmin` party that completes the key. The path segment is not an address and no `instrumentAdmin` was sent, so the request names nothing the platform can look up.","fix":"Send a token contract address, or send the instrument id together with `instrumentAdmin`.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_FEATURES_UNAVAILABLE","TOKEN_READ_DEPENDENCY_FAILED","core.database.QUERY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"core.database.QUERY_FAILED","status":503,"message":"The database is temporarily unavailable","data":{"id":"DALP-12148","why":"The platform could not complete a database query required for this request.","fix":"Retry the request. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns how many resting orders removing this reserver would prune and how many fills still inside their holding period it would undo. Dropping a reserver releases every hold it placed at once, so the orders those holds backed cannot rest and the pending deliveries cannot settle. The read is indexed and idempotent. Read it before calling the remove-reserver write, and show both numbers to whoever approves the removal. This read serves the EVM family only: a Canton-scoped request is refused with `OperationFamilyUnsupportedError` (422) naming the operation, before any EVM repository runs.","summary":"Count what removing a reserver would cost","x-dalp-auth":"session-or-api-key"}},"/api/v2/portfolio/returns/collectable":{"get":{"tags":["Yield and distributions"],"operationId":"v2/portfolio/returns/collectable","parameters":[],"responses":{"200":{"description":"Every return the acting wallet can collect now, in the order a collection claims them: fixed treasury yield, then dividends by payment date, then interest. An empty list means there is nothing to collect.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReturnsCollectableSuccess"},"examples":{"example-1":{"value":{"data":{"items":[{"returnType":"dividend","tokenAddress":"0x1111111111111111111111111111111111111111","tokenName":"Grey Matter Equity","tokenSymbol":"GME","featureAddress":"0x2222222222222222222222222222222222222222","dividendId":"3","amountExact":"40000000","denominationAddress":"0x3333333333333333333333333333333333333333","denominationSymbol":"EURC","denominationDecimals":6}]},"links":{"self":"/api/v2/portfolio/returns/collectable"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_INVALID","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS","dapi.runtime.EXTERNAL_MESSAGE_AUTHORIZATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","TOKEN_ACCESS_INTERFACE_UNSUPPORTED"]}},"required":["code"]}],"examples":[{"code":"TOKEN_ACCESS_INTERFACE_UNSUPPORTED","status":422,"message":"The token exposes neither ERC-3643 nor the supported SMART access-control interface.","data":{"id":"DALP-12025","why":"The platform reads the indexed token interface before it resolves roles; this token reports neither interface, so no role check can run. `data.tokenAddress` names the token.","fix":"Use a token that implements ERC-3643 or the supported SMART access-control interface, or correct the indexed token interface metadata, then retry.","retryable":false,"category":"domain","tokenAddress":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Lists every return the acting wallet (X-Executor) can collect now: completed fixed-treasury yield, paid and unclaimed dividends before their claim deadline, and accrued interest on an attached, unpaused schedule. Fixed-yield amounts are read live from the chain; the rest come from indexed state. Nothing is written.","summary":"List collectable returns","x-dalp-auth":"session-or-api-key"}},"/api/v2/portfolio/returns/collections":{"post":{"tags":["Yield and distributions"],"operationId":"v2/portfolio/returns/collect","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"One result per claimed item, in claim order, and remaining: the collectable items this request did not attempt because at most ten are claimed per request. A failed or skipped item carries a reason and a message; the others were still claimed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReturnsCollectionSuccess"},"examples":{"example-1":{"value":{"data":{"items":[{"returnType":"dividend","tokenAddress":"0x1111111111111111111111111111111111111111","tokenName":"Grey Matter Equity","tokenSymbol":"GME","featureAddress":"0x2222222222222222222222222222222222222222","dividendId":"3","amountExact":"40000000","denominationAddress":"0x3333333333333333333333333333333333333333","denominationSymbol":"EURC","denominationDecimals":6,"status":"collected","transactionId":"tx_01J8Z6Q0000000000000000000","transactionHash":"0x4444444444444444444444444444444444444444444444444444444444444444","reason":null,"message":null}],"remaining":0},"links":{"self":"/api/v2/portfolio/returns/collections"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","REQUEST_EXECUTOR_FAMILY_UNSUPPORTED","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","BLOCKCHAIN_ROLE_REQUIRED","CONTRACT_ERROR","FORBIDDEN","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TOKEN_ACCESS_UNAUTHORIZED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","SYSTEM_NOT_FOUND","TOKEN_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CONVERSION_INTEREST_BACKLOG_PENDING","CONVERSION_WINDOW_CLOSED","CONVERSION_WINDOW_NOT_OPEN","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","TOKEN_FEATURE_ALREADY_ATTACHED","TOKEN_FEATURE_CONVERSION_INCOMPATIBLE","TOKEN_FEATURE_CONVERSION_PROVIDER_UNRESOLVABLE","TOKEN_FEATURE_DIVIDENDS_OUTSTANDING","TOKEN_FEATURE_FACTORY_NOT_FOUND","TOKEN_FEATURE_FEATURE_NOT_FOUND","TOKEN_FEATURE_NAME_MISMATCH","TOKEN_FEATURE_STALE_INDEX","TOKEN_FEATURE_UNCHANGED_ADDRESS"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","OPERATION_FAMILY_UNSUPPORTED","TOKEN_ACCESS_INTERFACE_UNSUPPORTED","TOKEN_WRITE_OUTCOME_UNKNOWN","TRANSACTION_QUEUE_DEAD_LETTER","TRANSACTION_QUEUE_UNPROCESSABLE"]}},"required":["code"]}],"examples":[{"code":"OPERATION_FAMILY_UNSUPPORTED","status":422,"message":"The operation is not available on the selected ledger family","data":{"id":"DALP-9326","why":"The request selected a ledger family for which this operation has no serving contract, so the platform stopped before it queried a different ledger.","fix":"Select one of the supported ledger families named in the response, then retry the operation.","retryable":false,"category":"domain","operation":"0xabababababababababababababababababababab","requestedFamily":"evm","supportedFamilies":[]}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR","TOKEN_INDEXER_DATA_INVALID"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","DALP-0083","DURABLE_EXECUTION_ENGINE_CALL_FAILED","SERVICE_UNAVAILABLE","SESSION_RESOLUTION_FAILED","TENANT_WALLET_RESOLUTION_FAILED","TOKEN_AMOUNT_DENOMINATION_UNAVAILABLE","TOKEN_FEATURES_UNAVAILABLE","TOKEN_FEATURE_PERSISTENCE_FAILED","WALLET_VERIFICATION_CAPACITY","core.database.QUERY_FAILED","dapi.assets.TOKEN_ACCESS_UNAVAILABLE","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"BLOCKCHAIN_AUTHORIZATION_DEPENDENCY_FAILED","status":503,"message":"Blockchain authorization state is unavailable","data":{"id":"DALP-9441","why":"The platform could not load the indexed wallet or account-abstraction state needed to authorize the request.","fix":"Retry after the database projections recover. If the failure continues, contact support with the request id.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["INDEXER_BARRIER_TIMEOUT","REQUEST_DEADLINE_EXCEEDED","TRANSACTION_QUEUE_CONFIRMATION_TIMEOUT"]}},"required":["code"]}],"examples":[{"code":"INDEXER_BARRIER_TIMEOUT","status":504,"message":"The transaction succeeded on-chain, but its indexed data is not ready","data":{"id":"DALP-12074","why":"The indexer did not finish projecting the transaction's block before the request deadline. The write has already succeeded and must not be submitted again.","fix":"Check the transaction request using transactionId. Ask an operator to inspect indexer errors for chainId at or before blockNumber and restore projection progress, then repeat the read. Do not resubmit the mutation.","retryable":true,"category":"dependency","axis":"drained","blockNumber":1,"chainId":1,"timeoutMs":1,"transactionHash":"0xabababababababababababababababababababab","transactionId":"0xabababababababababababababababababababab"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Verifies the wallet once, then claims each collectable return as its own queued transaction, one after another, waiting for each to settle. A failed claim does not stop the others. Answers 200 with one result per item and remaining, the number of collectable items this request did not attempt because at most ten are claimed per request. Read the recorded claim outcomes before sending another request to collect what remains.","summary":"Collect every collectable return","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string"},"verificationType":{"type":"string","enum":["PINCODE","OTP","SECRET_CODES","OIDC_MFA"]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]}},"additionalProperties":false}}},"required":false},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/trading-venues":{"get":{"tags":["Trading venue"],"operationId":"v2/addons/tradingVenue/venuesList","parameters":[],"responses":{"200":{"description":"The active organization's Trading Venue contracts, oldest first.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/TradingVenue"}},"meta":{"$ref":"#/components/schemas/TradingVenueCollectionMeta"},"links":{"$ref":"#/components/schemas/TradingVenueSingleLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"venueAddress":"0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0","name":"Main Venue","description":"Continuous trading for the organization's listed bonds.","creatorAddress":"0x14dC79964da2C08b23698B3D3cc7Ca32193d9955","createdAt":"2026-08-01T09:00:00.000Z","accessManagerAddress":"0xdD2FD4581271e230360230F9337D5c0430Bf44C0","oneTradingModelPerSecurity":false,"minimumAdmissionValueUsd":"1","minimumAdmissionShares":"1","permissions":{"admin":["0x14dC79964da2C08b23698B3D3cc7Ca32193d9955"],"operator":["0x14dC79964da2C08b23698B3D3cc7Ca32193d9955"],"submitter":[]}}],"meta":{"total":1},"links":{"self":"/v2/addons/trading-venues"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TRADE_BUST_EXECUTION_REFUSED","WALLET_STEP_UP_CHALLENGE_REFUSED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_STREAM_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TRADING_VENUE_MARKET_NOT_FOUND","TRADING_VENUE_ORDER_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"MARKET_STREAM_NOT_FOUND","status":404,"message":"The market-data stream could not be opened.","data":{"id":"DALP-9306","why":"The stream request named a market this deployment does not serve, or the request came from another origin.","fix":"Open the stream same-origin against a live market id from the markets list.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","MARKET_LISTING_REFUSED","MARKET_STATE_INVALID","ORDER_PLACEMENT_IN_FLIGHT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","RESERVATION_BUDGET_EXCEEDED","SETTLEMENT_LEG_BLOCKED","TRADE_BUST_APPROVAL_INVALID","VENUE_CONFIGURATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_CALENDAR_INVALID","MARKET_FIELD_IMMUTABLE","ORDER_INTAKE_REJECTED","TRADE_BUST_REFUSED"]}},"required":["code"]}],"examples":[{"code":"MARKET_CALENDAR_INVALID","status":422,"message":"The market calendar cannot produce trading sessions","data":{"id":"DALP-12263","why":"The calendar names a timezone the platform cannot resolve, session times or an exception that never open a session, or a private continuous market schedules a pre-open.","fix":"Use an IANA timezone and session times with pre-open at or before open and open before close. Leave pre-open empty for every weekday and open exception on a private continuous market, then submit the calendar again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","OIDC_MFA_UNAVAILABLE","ORDER_SIGNING_FAILED","SESSION_RESOLUTION_FAILED","VENUE_DEPLOYMENT_PENDING","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the Trading Venue contracts serving the active organization's network, oldest first. Repeating the request is safe.","summary":"List trading venues","x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/trading-venues/markets":{"get":{"tags":["Trading venue"],"operationId":"v2/addons/tradingVenue/marketsList","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"tradeableNow":{"type":"string","enum":["true"],"description":"Keeps only the markets tradeable now for the caller: live, with a caller wallet holding an active registration in an identity registry that trusts the market's base or quote token. Omit the filter for every visible market."}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true}],"responses":{"200":{"description":"The visible markets of the active organization: every public market plus the private markets one of your wallets participates in, live and halted markets included. Venue operators see every market.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/TradingVenueMarket"}},"meta":{"$ref":"#/components/schemas/TradingVenueCollectionMeta"},"links":{"$ref":"#/components/schemas/TradingVenueSingleLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c","venueId":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","venueAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","baseTokenAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","quoteTokenAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","baseBackend":{"kind":"hold","address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"},"quoteBackend":{"kind":"escrow","address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"},"tickSize":"1000000","valuationPriceTick":"1","valuationEditable":false,"publishesBaseTokenPrice":false,"lotSize":"1000000000000000000","minNotional":"100000000","makerFeeBps":10,"takerFeeBps":20,"protectionBandBps":500,"status":"live","mode":"continuous","private":false,"sponsorship":"sponsored","admissionValueUsd":"1","admissionShares":"1","depthVisibility":"full","auctionRemainder":"carry","auctionPriceRounding":"block","closeMethodology":"last-trade","closeVwapWindowMs":null,"sessionState":"open-continuous","timezone":"Europe/Brussels","allowedOrderTypes":["limit","market","stop"],"allowedTimeInForce":["gtc","gtd","ioc","fok"],"createdAt":"2026-08-01T09:00:00.000Z","ceremony":{"baseReservation":"complete","quoteReservation":"complete","feedWriter":"complete","feeAccountEligibility":"complete"}}],"meta":{"total":1},"links":{"self":"/v2/addons/trading-venues/markets"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TRADE_BUST_EXECUTION_REFUSED","WALLET_STEP_UP_CHALLENGE_REFUSED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_STREAM_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TRADING_VENUE_MARKET_NOT_FOUND","TRADING_VENUE_ORDER_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"MARKET_STREAM_NOT_FOUND","status":404,"message":"The market-data stream could not be opened.","data":{"id":"DALP-9306","why":"The stream request named a market this deployment does not serve, or the request came from another origin.","fix":"Open the stream same-origin against a live market id from the markets list.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","MARKET_LISTING_REFUSED","MARKET_STATE_INVALID","ORDER_PLACEMENT_IN_FLIGHT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","RESERVATION_BUDGET_EXCEEDED","SETTLEMENT_LEG_BLOCKED","TRADE_BUST_APPROVAL_INVALID","VENUE_CONFIGURATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_CALENDAR_INVALID","MARKET_FIELD_IMMUTABLE","ORDER_INTAKE_REJECTED","TRADE_BUST_REFUSED"]}},"required":["code"]}],"examples":[{"code":"MARKET_CALENDAR_INVALID","status":422,"message":"The market calendar cannot produce trading sessions","data":{"id":"DALP-12263","why":"The calendar names a timezone the platform cannot resolve, session times or an exception that never open a session, or a private continuous market schedules a pre-open.","fix":"Use an IANA timezone and session times with pre-open at or before open and open before close. Leave pre-open empty for every weekday and open exception on a private continuous market, then submit the calendar again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","OIDC_MFA_UNAVAILABLE","ORDER_SIGNING_FAILED","SESSION_RESOLUTION_FAILED","VENUE_DEPLOYMENT_PENDING","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the markets of the active organization you can see: every public market plus the private markets one of your wallets participates in, including halted and pending listings. Venue operators see every market. Repeating the request is safe.","summary":"List venue markets","x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/trading-venues/{venueAddress}/markets/{marketId}":{"get":{"tags":["Trading venue"],"operationId":"v2/addons/tradingVenue/marketsRead","parameters":[{"name":"venueAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"name":"marketId","in":"path","schema":{"type":"string","minLength":1,"description":"Trading Venue market identifier"},"required":true}],"responses":{"200":{"description":"The requested market with its grid, fee schedule, price protection band, and status.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TradingVenueMarket"},"links":{"$ref":"#/components/schemas/TradingVenueSingleLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c","venueId":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","venueAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","baseTokenAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","quoteTokenAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","baseBackend":{"kind":"hold","address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"},"quoteBackend":{"kind":"escrow","address":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"},"tickSize":"1000000","valuationPriceTick":"1","valuationEditable":false,"publishesBaseTokenPrice":false,"lotSize":"1000000000000000000","minNotional":"100000000","makerFeeBps":10,"takerFeeBps":20,"protectionBandBps":500,"status":"live","mode":"continuous","private":false,"sponsorship":"sponsored","admissionValueUsd":"1","admissionShares":"1","depthVisibility":"full","auctionRemainder":"carry","auctionPriceRounding":"block","closeMethodology":"last-trade","closeVwapWindowMs":null,"sessionState":"open-continuous","timezone":"Europe/Brussels","allowedOrderTypes":["limit","market","stop"],"allowedTimeInForce":["gtc","gtd","ioc","fok"],"createdAt":"2026-08-01T09:00:00.000Z","ceremony":{"baseReservation":"complete","quoteReservation":"complete","feedWriter":"complete","feeAccountEligibility":"complete"}},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TRADE_BUST_EXECUTION_REFUSED","WALLET_STEP_UP_CHALLENGE_REFUSED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_STREAM_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TRADING_VENUE_MARKET_NOT_FOUND","TRADING_VENUE_ORDER_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"MARKET_STREAM_NOT_FOUND","status":404,"message":"The market-data stream could not be opened.","data":{"id":"DALP-9306","why":"The stream request named a market this deployment does not serve, or the request came from another origin.","fix":"Open the stream same-origin against a live market id from the markets list.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","MARKET_LISTING_REFUSED","MARKET_STATE_INVALID","ORDER_PLACEMENT_IN_FLIGHT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","RESERVATION_BUDGET_EXCEEDED","SETTLEMENT_LEG_BLOCKED","TRADE_BUST_APPROVAL_INVALID","VENUE_CONFIGURATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_CALENDAR_INVALID","MARKET_FIELD_IMMUTABLE","ORDER_INTAKE_REJECTED","TRADE_BUST_REFUSED"]}},"required":["code"]}],"examples":[{"code":"MARKET_CALENDAR_INVALID","status":422,"message":"The market calendar cannot produce trading sessions","data":{"id":"DALP-12263","why":"The calendar names a timezone the platform cannot resolve, session times or an exception that never open a session, or a private continuous market schedules a pre-open.","fix":"Use an IANA timezone and session times with pre-open at or before open and open before close. Leave pre-open empty for every weekday and open exception on a private continuous market, then submit the calendar again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","OIDC_MFA_UNAVAILABLE","ORDER_SIGNING_FAILED","SESSION_RESOLUTION_FAILED","VENUE_DEPLOYMENT_PENDING","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one market with its trading grid, fee schedule, price protection band, and lifecycle status. A market outside the active organization answers 404. Repeating the request is safe.","summary":"Read a venue market","x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/trading-venues/{venueAddress}/listing-preflight":{"get":{"tags":["Trading venue"],"operationId":"v2/addons/tradingVenue/marketsListingPreflight","parameters":[{"name":"venueAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"name":"baseTokenAddress","in":"query","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"name":"quoteTokenAddress","in":"query","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TradingVenueMarketListingPreflight"},"links":{"$ref":"#/components/schemas/TradingVenueSingleLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"venueAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","ready":true,"checks":[{"id":"operator-role","passed":false,"reason":"Extending the coupon window matches the harvest calendar."}],"tokens":[{"tokenAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","side":"base","state":"hold-ready","eligible":true}]},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TRADE_BUST_EXECUTION_REFUSED","WALLET_STEP_UP_CHALLENGE_REFUSED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_STREAM_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TRADING_VENUE_MARKET_NOT_FOUND","TRADING_VENUE_ORDER_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"MARKET_STREAM_NOT_FOUND","status":404,"message":"The market-data stream could not be opened.","data":{"id":"DALP-9306","why":"The stream request named a market this deployment does not serve, or the request came from another origin.","fix":"Open the stream same-origin against a live market id from the markets list.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","MARKET_LISTING_REFUSED","MARKET_STATE_INVALID","ORDER_PLACEMENT_IN_FLIGHT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","RESERVATION_BUDGET_EXCEEDED","SETTLEMENT_LEG_BLOCKED","TRADE_BUST_APPROVAL_INVALID","VENUE_CONFIGURATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_CALENDAR_INVALID","MARKET_FIELD_IMMUTABLE","ORDER_INTAKE_REJECTED","TRADE_BUST_REFUSED"]}},"required":["code"]}],"examples":[{"code":"MARKET_CALENDAR_INVALID","status":422,"message":"The market calendar cannot produce trading sessions","data":{"id":"DALP-12263","why":"The calendar names a timezone the platform cannot resolve, session times or an exception that never open a session, or a private continuous market schedules a pre-open.","fix":"Use an IANA timezone and session times with pre-open at or before open and open before close. Leave pre-open empty for every weekday and open exception on a private continuous market, then submit the calendar again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","OIDC_MFA_UNAVAILABLE","ORDER_SIGNING_FAILED","SESSION_RESOLUTION_FAILED","VENUE_DEPLOYMENT_PENDING","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/trading-venues/{venueAddress}/orders":{"get":{"tags":["Trading venue"],"operationId":"v2/addons/tradingVenue/ordersList","parameters":[{"name":"venueAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"name":"marketId","in":"query","schema":{"type":"string","minLength":1,"description":"Trading Venue market identifier"},"required":false},{"name":"status","in":"query","schema":{"type":"string","enum":["pending_reservation","armed","working","partially_filled","filled","cancelled","expired","rejected","pruned"]},"required":false}],"responses":{"200":{"description":"Orders placed by wallets the selected participant controls, newest first.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/TradingVenueOrder"}},"meta":{"$ref":"#/components/schemas/TradingVenueCollectionMeta"},"links":{"$ref":"#/components/schemas/TradingVenueSingleLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9d","marketId":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c","makerAddress":"0x14dC79964da2C08b23698B3D3cc7Ca32193d9955","side":"buy","orderType":"limit","timeInForce":"gtc","priceTick":"1010","triggerTick":null,"quantity":"1000000000000000000","filledQuantity":"0","status":"working","closeReason":null,"orderHash":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae","expiresAt":"2026-08-02T09:00:00.000Z","createdAt":"2026-08-01T09:00:00.000Z"}],"meta":{"total":1},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/orders"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TRADE_BUST_EXECUTION_REFUSED","WALLET_STEP_UP_CHALLENGE_REFUSED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_STREAM_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TRADING_VENUE_MARKET_NOT_FOUND","TRADING_VENUE_ORDER_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"MARKET_STREAM_NOT_FOUND","status":404,"message":"The market-data stream could not be opened.","data":{"id":"DALP-9306","why":"The stream request named a market this deployment does not serve, or the request came from another origin.","fix":"Open the stream same-origin against a live market id from the markets list.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","MARKET_LISTING_REFUSED","MARKET_STATE_INVALID","ORDER_PLACEMENT_IN_FLIGHT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","RESERVATION_BUDGET_EXCEEDED","SETTLEMENT_LEG_BLOCKED","TRADE_BUST_APPROVAL_INVALID","VENUE_CONFIGURATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_CALENDAR_INVALID","MARKET_FIELD_IMMUTABLE","ORDER_INTAKE_REJECTED","TRADE_BUST_REFUSED"]}},"required":["code"]}],"examples":[{"code":"MARKET_CALENDAR_INVALID","status":422,"message":"The market calendar cannot produce trading sessions","data":{"id":"DALP-12263","why":"The calendar names a timezone the platform cannot resolve, session times or an exception that never open a session, or a private continuous market schedules a pre-open.","fix":"Use an IANA timezone and session times with pre-open at or before open and open before close. Leave pre-open empty for every weekday and open exception on a private continuous market, then submit the calendar again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","OIDC_MFA_UNAVAILABLE","ORDER_SIGNING_FAILED","SESSION_RESOLUTION_FAILED","VENUE_DEPLOYMENT_PENDING","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns orders placed by wallets the selected participant controls, newest first. Filter by market or status. Repeating the request is safe.","summary":"List working orders","x-dalp-auth":"session-or-api-key"},"post":{"tags":["Trading venue"],"operationId":"v2/addons/tradingVenue/ordersPlace","parameters":[{"name":"venueAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"name":"X-Wallet-Verification","in":"header","schema":{"type":"string","minLength":1},"required":false},{"name":"X-Step-Up-Challenge","in":"header","schema":{"type":"string","minLength":1},"required":false},{"name":"Idempotency-Key","in":"header","schema":{"type":"string"},"required":false},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Accepted Trading Venue write. A 202 body carries `transactionId` and `statusUrl`. Poll that URL until the write is confirmed.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TradingVenueOrderPlaced"},"meta":{"$ref":"#/components/schemas/TradingVenueMutationMeta"},"links":{"$ref":"#/components/schemas/TradingVenueSingleLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"orderId":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9d","orderHash":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae","transactionHash":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"},"meta":{"txHashes":["0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"]},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/orders"}}}}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"}}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TradingVenueQueuedMutation"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"},"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TRADE_BUST_EXECUTION_REFUSED","WALLET_STEP_UP_CHALLENGE_REFUSED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_STREAM_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TRADING_VENUE_MARKET_NOT_FOUND","TRADING_VENUE_ORDER_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"MARKET_STREAM_NOT_FOUND","status":404,"message":"The market-data stream could not be opened.","data":{"id":"DALP-9306","why":"The stream request named a market this deployment does not serve, or the request came from another origin.","fix":"Open the stream same-origin against a live market id from the markets list.","retryable":false,"category":"client"}}]}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","MARKET_LISTING_REFUSED","MARKET_STATE_INVALID","ORDER_PLACEMENT_IN_FLIGHT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","RESERVATION_BUDGET_EXCEEDED","SETTLEMENT_LEG_BLOCKED","TRADE_BUST_APPROVAL_INVALID","VENUE_CONFIGURATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_CALENDAR_INVALID","MARKET_FIELD_IMMUTABLE","ORDER_INTAKE_REJECTED","TRADE_BUST_REFUSED"]}},"required":["code"]}],"examples":[{"code":"MARKET_CALENDAR_INVALID","status":422,"message":"The market calendar cannot produce trading sessions","data":{"id":"DALP-12263","why":"The calendar names a timezone the platform cannot resolve, session times or an exception that never open a session, or a private continuous market schedules a pre-open.","fix":"Use an IANA timezone and session times with pre-open at or before open and open before close. Leave pre-open empty for every weekday and open exception on a private continuous market, then submit the calendar again.","retryable":false,"category":"client"}}]}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","OIDC_MFA_UNAVAILABLE","ORDER_SIGNING_FAILED","SESSION_RESOLUTION_FAILED","VENUE_DEPLOYMENT_PENDING","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Accepts an EIP-712-signed order after eligibility, desk-limit, trading-authorization, fee-cap, and signature checks, then queues the reserved-balance transaction. The order becomes matchable only after its reservation confirms. Poll the 202 `statusUrl` before you treat the reservation as placed.","summary":"Place a signed order","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TradingVenueOrderPlaceRequest"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/trading-venues/{venueAddress}/order-stream":{"get":{"tags":["Trading venue"],"operationId":"v2/addons/tradingVenue/orderStream","parameters":[{"name":"venueAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"name":"lastEventId","in":"query","schema":{"type":"string","pattern":"^(\\d{1,19})\\.(\\d{1,19})$","description":"Opaque resume cursor for the caller's order stream."},"required":false}],"responses":{"200":{"description":"A server-sent event stream of order snapshots and updates. Reconnect with the last event id to resume without replaying the whole stream.","content":{"text/event-stream":{"schema":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","enum":["snapshot"]},"eventId":{"type":"string","pattern":"^(\\d{1,19})\\.(\\d{1,19})$","description":"Opaque resume cursor for the caller's order stream."},"orders":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"description":"Trading Venue order identifier"},"marketId":{"type":"string","minLength":1,"description":"Trading Venue market identifier"},"makerAddress":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"side":{"type":"string","enum":["buy","sell"]},"orderType":{"type":"string","enum":["limit","market"]},"timeInForce":{"type":"string","enum":["gtc","gtd","ioc","fok"]},"priceTick":{"anyOf":[{"type":"string","pattern":"^-?\\d+$"},{"type":"null"}]},"triggerTick":{"anyOf":[{"type":"string","pattern":"^-?\\d+$"},{"type":"null"}]},"quantity":{"type":"string","pattern":"^-?\\d+$"},"filledQuantity":{"type":"string","pattern":"^-?\\d+$"},"status":{"type":"string","enum":["pending_reservation","armed","working","partially_filled","filled","cancelled","expired","rejected","pruned"]},"closeReason":{"anyOf":[{"type":"string","enum":["filled","cancelled","expired","dust","protection-band","no-band-anchor","static-band","dynamic-band","floor-price","max-quantity","max-notional","ioc-remainder","fok-unfilled","replaced","session-closed","stop-trigger-failed","rejected"]},{"type":"null"}]},"orderHash":{"type":"string","minLength":2,"description":"A valid Ethereum hex string starting with 0x","examples":["0x5208"]},"expiresAt":{"anyOf":[{"type":"string","description":"Epoch milliseconds as a digit string, or a readable datetime.","format":"timestamp"},{"type":"integer","minimum":0}]},"createdAt":{"anyOf":[{"type":"string","description":"Epoch milliseconds as a digit string, or a readable datetime.","format":"timestamp"},{"type":"integer","minimum":0}]}},"required":["id","marketId","makerAddress","side","orderType","timeInForce","priceTick","triggerTick","quantity","filledQuantity","status","closeReason","orderHash","expiresAt","createdAt"],"additionalProperties":true}}},"required":["type","eventId","orders"],"additionalProperties":true},{"type":"object","properties":{"type":{"type":"string","enum":["order"]},"eventId":{"type":"string","pattern":"^(\\d{1,19})\\.(\\d{1,19})$","description":"Opaque resume cursor for the caller's order stream."},"changedAt":{"anyOf":[{"type":"string","description":"Epoch milliseconds as a digit string, or a readable datetime.","format":"timestamp"},{"type":"integer","minimum":0}]},"version":{"type":"string","pattern":"^-?\\d+$"},"order":{"type":"object","properties":{"id":{"type":"string","minLength":1,"description":"Trading Venue order identifier"},"marketId":{"type":"string","minLength":1,"description":"Trading Venue market identifier"},"makerAddress":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"side":{"type":"string","enum":["buy","sell"]},"orderType":{"type":"string","enum":["limit","market"]},"timeInForce":{"type":"string","enum":["gtc","gtd","ioc","fok"]},"priceTick":{"anyOf":[{"type":"string","pattern":"^-?\\d+$"},{"type":"null"}]},"triggerTick":{"anyOf":[{"type":"string","pattern":"^-?\\d+$"},{"type":"null"}]},"quantity":{"type":"string","pattern":"^-?\\d+$"},"filledQuantity":{"type":"string","pattern":"^-?\\d+$"},"status":{"type":"string","enum":["pending_reservation","armed","working","partially_filled","filled","cancelled","expired","rejected","pruned"]},"closeReason":{"anyOf":[{"type":"string","enum":["filled","cancelled","expired","dust","protection-band","no-band-anchor","static-band","dynamic-band","floor-price","max-quantity","max-notional","ioc-remainder","fok-unfilled","replaced","session-closed","stop-trigger-failed","rejected"]},{"type":"null"}]},"orderHash":{"type":"string","minLength":2,"description":"A valid Ethereum hex string starting with 0x","examples":["0x5208"]},"expiresAt":{"anyOf":[{"type":"string","description":"Epoch milliseconds as a digit string, or a readable datetime.","format":"timestamp"},{"type":"integer","minimum":0}]},"createdAt":{"anyOf":[{"type":"string","description":"Epoch milliseconds as a digit string, or a readable datetime.","format":"timestamp"},{"type":"integer","minimum":0}]}},"required":["id","marketId","makerAddress","side","orderType","timeInForce","priceTick","triggerTick","quantity","filledQuantity","status","closeReason","orderHash","expiresAt","createdAt"],"additionalProperties":true}},"required":["type","eventId","changedAt","version","order"],"additionalProperties":true},{"type":"object","properties":{"type":{"type":"string","enum":["trade"]},"eventId":{"type":"string","pattern":"^(\\d{1,19})\\.(\\d{1,19})$","description":"Opaque resume cursor for the caller's order stream."},"changedAt":{"anyOf":[{"type":"string","description":"Epoch milliseconds as a digit string, or a readable datetime.","format":"timestamp"},{"type":"integer","minimum":0}]},"version":{"type":"string","pattern":"^-?\\d+$"},"trade":{"type":"object","properties":{"id":{"type":"string","minLength":1,"description":"Trading Venue trade identifier"},"marketId":{"type":"string","minLength":1,"description":"Trading Venue market identifier"},"orderId":{"type":"string","minLength":1,"description":"Trading Venue order identifier"},"side":{"type":"string","enum":["buy","sell"]},"priceTick":{"type":"string","pattern":"^-?\\d+$"},"quantity":{"type":"string","pattern":"^-?\\d+$"},"fee":{"type":"string","pattern":"^-?\\d+$"},"status":{"type":"string","enum":["pending-delivery","delivered","undone"]},"undoReason":{"anyOf":[{"type":"string","enum":["bust","refused","reserver-removed"]},{"type":"null"}]},"executedAt":{"anyOf":[{"type":"string","description":"Epoch milliseconds as a digit string, or a readable datetime.","format":"timestamp"},{"type":"integer","minimum":0}]},"settlementTxHash":{"anyOf":[{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},{"type":"null"}]}},"required":["id","marketId","orderId","side","priceTick","quantity","fee","status","undoReason","executedAt","settlementTxHash"],"additionalProperties":true}},"required":["type","eventId","changedAt","version","trade"],"additionalProperties":true},{"type":"object","properties":{"type":{"type":"string","enum":["heartbeat"]},"eventId":{"type":"string","pattern":"^(\\d{1,19})\\.(\\d{1,19})$","description":"Opaque resume cursor for the caller's order stream."}},"required":["type","eventId"],"additionalProperties":true},{"type":"object","properties":{"type":{"type":"string","enum":["error"]},"message":{"type":"string","minLength":1}},"required":["type","message"],"additionalProperties":true}]},"x-effect-stream":{"encoding":"sse","causeSchema":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["Fail"]},"error":{"not":{}}},"required":["_tag","error"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["Die"]},"defect":{}},"required":["_tag","defect"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["Interrupt"]},"fiberId":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["_tag","fiberId"],"additionalProperties":false}]}},"errorSchema":{"not":{}},"failureEvent":"effect/http-api/stream/failure"},"examples":{"example-1":{"value":{"type":"snapshot","eventId":"100.00","orders":[{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","marketId":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c","makerAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","side":"buy","orderType":"limit","timeInForce":"gtc","priceTick":"1011","triggerTick":"1","quantity":"1000000000000000000","filledQuantity":"0","status":"pending_reservation","closeReason":"filled","orderHash":"0x5208","expiresAt":"2026-04-20T16:00:00.000Z","createdAt":"2026-08-01T09:00:00.000Z"}]}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TRADE_BUST_EXECUTION_REFUSED","WALLET_STEP_UP_CHALLENGE_REFUSED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_STREAM_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TRADING_VENUE_MARKET_NOT_FOUND","TRADING_VENUE_ORDER_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"MARKET_STREAM_NOT_FOUND","status":404,"message":"The market-data stream could not be opened.","data":{"id":"DALP-9306","why":"The stream request named a market this deployment does not serve, or the request came from another origin.","fix":"Open the stream same-origin against a live market id from the markets list.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","MARKET_LISTING_REFUSED","MARKET_STATE_INVALID","ORDER_PLACEMENT_IN_FLIGHT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","RESERVATION_BUDGET_EXCEEDED","SETTLEMENT_LEG_BLOCKED","TRADE_BUST_APPROVAL_INVALID","VENUE_CONFIGURATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_CALENDAR_INVALID","MARKET_FIELD_IMMUTABLE","ORDER_INTAKE_REJECTED","TRADE_BUST_REFUSED"]}},"required":["code"]}],"examples":[{"code":"MARKET_CALENDAR_INVALID","status":422,"message":"The market calendar cannot produce trading sessions","data":{"id":"DALP-12263","why":"The calendar names a timezone the platform cannot resolve, session times or an exception that never open a session, or a private continuous market schedules a pre-open.","fix":"Use an IANA timezone and session times with pre-open at or before open and open before close. Leave pre-open empty for every weekday and open exception on a private continuous market, then submit the calendar again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","OIDC_MFA_UNAVAILABLE","ORDER_SIGNING_FAILED","SESSION_RESOLUTION_FAILED","VENUE_DEPLOYMENT_PENDING","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Opens a server-sent event stream for order snapshots and updates visible to the active participant. Send `lastEventId` to resume after a reconnect; keep the stream open and apply each event in order.","summary":"Stream trading venue order updates","x-dalp-auth":"session"}},"/api/v2/addons/trading-venues/{venueAddress}/blotter":{"get":{"tags":["Trading venue"],"operationId":"v2/addons/tradingVenue/blotter","parameters":[{"name":"venueAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"name":"marketId","in":"query","schema":{"type":"string","minLength":1,"description":"Trading Venue market identifier"},"required":false}],"responses":{"200":{"description":"The selected participant's trade blotter, newest fill first.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/TradingVenueBlotterEntry"}},"meta":{"$ref":"#/components/schemas/TradingVenueCollectionMeta"},"links":{"$ref":"#/components/schemas/TradingVenueSingleLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9e","marketId":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c","orderId":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9d","side":"buy","priceTick":"1011","quantity":"1000000000000000000","fee":"20220","status":"delivered","undoReason":null,"executedAt":"2026-08-01T09:00:00.000Z"}],"meta":{"total":1},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/blotter"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TRADE_BUST_EXECUTION_REFUSED","WALLET_STEP_UP_CHALLENGE_REFUSED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_STREAM_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TRADING_VENUE_MARKET_NOT_FOUND","TRADING_VENUE_ORDER_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"MARKET_STREAM_NOT_FOUND","status":404,"message":"The market-data stream could not be opened.","data":{"id":"DALP-9306","why":"The stream request named a market this deployment does not serve, or the request came from another origin.","fix":"Open the stream same-origin against a live market id from the markets list.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","MARKET_LISTING_REFUSED","MARKET_STATE_INVALID","ORDER_PLACEMENT_IN_FLIGHT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","RESERVATION_BUDGET_EXCEEDED","SETTLEMENT_LEG_BLOCKED","TRADE_BUST_APPROVAL_INVALID","VENUE_CONFIGURATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_CALENDAR_INVALID","MARKET_FIELD_IMMUTABLE","ORDER_INTAKE_REJECTED","TRADE_BUST_REFUSED"]}},"required":["code"]}],"examples":[{"code":"MARKET_CALENDAR_INVALID","status":422,"message":"The market calendar cannot produce trading sessions","data":{"id":"DALP-12263","why":"The calendar names a timezone the platform cannot resolve, session times or an exception that never open a session, or a private continuous market schedules a pre-open.","fix":"Use an IANA timezone and session times with pre-open at or before open and open before close. Leave pre-open empty for every weekday and open exception on a private continuous market, then submit the calendar again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","OIDC_MFA_UNAVAILABLE","ORDER_SIGNING_FAILED","SESSION_RESOLUTION_FAILED","VENUE_DEPLOYMENT_PENDING","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the selected participant's fills, newest first, with the participant's side and fee per fill. Repeating the request is safe.","summary":"Read the trade blotter","x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/trading-venues/{venueAddress}/reservations":{"get":{"tags":["Trading venue"],"operationId":"v2/addons/tradingVenue/reservationsList","parameters":[{"name":"venueAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true}],"responses":{"200":{"description":"Reserved balances backing the selected participant's open orders.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/TradingVenueReservation"}},"meta":{"$ref":"#/components/schemas/TradingVenueCollectionMeta"},"links":{"$ref":"#/components/schemas/TradingVenueSingleLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","orderId":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9d","marketId":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c","walletAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","tokenAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","amount":"1010000000","status":"active","createdAt":"2026-08-01T09:00:00.000Z","unconfirmedPull":"1"}],"meta":{"total":1},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/reservations"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TRADE_BUST_EXECUTION_REFUSED","WALLET_STEP_UP_CHALLENGE_REFUSED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_STREAM_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TRADING_VENUE_MARKET_NOT_FOUND","TRADING_VENUE_ORDER_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"MARKET_STREAM_NOT_FOUND","status":404,"message":"The market-data stream could not be opened.","data":{"id":"DALP-9306","why":"The stream request named a market this deployment does not serve, or the request came from another origin.","fix":"Open the stream same-origin against a live market id from the markets list.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","MARKET_LISTING_REFUSED","MARKET_STATE_INVALID","ORDER_PLACEMENT_IN_FLIGHT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","RESERVATION_BUDGET_EXCEEDED","SETTLEMENT_LEG_BLOCKED","TRADE_BUST_APPROVAL_INVALID","VENUE_CONFIGURATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_CALENDAR_INVALID","MARKET_FIELD_IMMUTABLE","ORDER_INTAKE_REJECTED","TRADE_BUST_REFUSED"]}},"required":["code"]}],"examples":[{"code":"MARKET_CALENDAR_INVALID","status":422,"message":"The market calendar cannot produce trading sessions","data":{"id":"DALP-12263","why":"The calendar names a timezone the platform cannot resolve, session times or an exception that never open a session, or a private continuous market schedules a pre-open.","fix":"Use an IANA timezone and session times with pre-open at or before open and open before close. Leave pre-open empty for every weekday and open exception on a private continuous market, then submit the calendar again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","OIDC_MFA_UNAVAILABLE","ORDER_SIGNING_FAILED","SESSION_RESOLUTION_FAILED","VENUE_DEPLOYMENT_PENDING","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the reserved balances backing the selected participant's open orders. Repeating the request is safe.","summary":"List reserved balances","x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/trading-venues/{venueAddress}/orders/{orderId}":{"delete":{"tags":["Trading venue"],"operationId":"v2/addons/tradingVenue/ordersCancel","parameters":[{"name":"venueAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"name":"orderId","in":"path","schema":{"type":"string","minLength":1,"description":"Trading Venue order identifier"},"required":true},{"name":"X-Wallet-Verification","in":"header","schema":{"type":"string","minLength":1},"required":false},{"name":"X-Step-Up-Challenge","in":"header","schema":{"type":"string","minLength":1},"required":false},{"name":"Idempotency-Key","in":"header","schema":{"type":"string"},"required":false},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Accepted Trading Venue write. A 202 body carries `transactionId` and `statusUrl`. Poll that URL until the write is confirmed.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TradingVenueOrderCancelled"},"meta":{"$ref":"#/components/schemas/TradingVenueMutationMeta"},"links":{"$ref":"#/components/schemas/TradingVenueSingleLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"orderId":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9d","status":"pending_reservation"},"meta":{"txHashes":["0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"]},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/orders"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original POST unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TradingVenueQueuedMutation"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TRADE_BUST_EXECUTION_REFUSED","WALLET_STEP_UP_CHALLENGE_REFUSED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_STREAM_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TRADING_VENUE_MARKET_NOT_FOUND","TRADING_VENUE_ORDER_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"MARKET_STREAM_NOT_FOUND","status":404,"message":"The market-data stream could not be opened.","data":{"id":"DALP-9306","why":"The stream request named a market this deployment does not serve, or the request came from another origin.","fix":"Open the stream same-origin against a live market id from the markets list.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","MARKET_LISTING_REFUSED","MARKET_STATE_INVALID","ORDER_PLACEMENT_IN_FLIGHT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","RESERVATION_BUDGET_EXCEEDED","SETTLEMENT_LEG_BLOCKED","TRADE_BUST_APPROVAL_INVALID","VENUE_CONFIGURATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_CALENDAR_INVALID","MARKET_FIELD_IMMUTABLE","ORDER_INTAKE_REJECTED","TRADE_BUST_REFUSED"]}},"required":["code"]}],"examples":[{"code":"MARKET_CALENDAR_INVALID","status":422,"message":"The market calendar cannot produce trading sessions","data":{"id":"DALP-12263","why":"The calendar names a timezone the platform cannot resolve, session times or an exception that never open a session, or a private continuous market schedules a pre-open.","fix":"Use an IANA timezone and session times with pre-open at or before open and open before close. Leave pre-open empty for every weekday and open exception on a private continuous market, then submit the calendar again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","OIDC_MFA_UNAVAILABLE","ORDER_SIGNING_FAILED","SESSION_RESOLUTION_FAILED","VENUE_DEPLOYMENT_PENDING","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Queues the on-chain cancellation of one order the selected participant controls, so the signed order can never fill again, and marks it cancelled on the book. Its reserved balance is released when the cancellation confirms. Poll the 202 `statusUrl` before you treat the order as cancelled on chain.","summary":"Cancel an order","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TradingVenueOrderCancelRequest"}}},"required":false},"x-dalp-auth":"session-or-api-key"},"patch":{"tags":["Trading venue"],"operationId":"v2/addons/tradingVenue/ordersAmend","parameters":[{"name":"venueAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"name":"orderId","in":"path","schema":{"type":"string","minLength":1,"description":"Trading Venue order identifier"},"required":true},{"name":"X-Wallet-Verification","in":"header","schema":{"type":"string","minLength":1},"required":false},{"name":"X-Step-Up-Challenge","in":"header","schema":{"type":"string","minLength":1},"required":false},{"name":"Idempotency-Key","in":"header","schema":{"type":"string"},"required":false},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The amended order: `orderId` is the order now on the book and `priority` says whether it kept its place in the queue.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TradingVenueOrderAmended"},"meta":{"$ref":"#/components/schemas/TradingVenueMutationMeta"},"links":{"$ref":"#/components/schemas/TradingVenueSingleLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"amendedOrderId":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9d","orderId":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9d","priority":"kept"},"meta":{"txHashes":["0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"]},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants"}}}}}},"headers":{}},"202":{"description":"HTTP 202 accepted handle for an async mutation. The write is queued, not finished. Poll `statusUrl` (also sent as `Location`) and honor `Preference-Applied`. Do not retry the original request unless the queue reports a retryable failure.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TradingVenueQueuedMutation"},"examples":{"example-1":{"value":{"transactionId":"0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b","status":"QUEUED","statusUrl":"/api/v2/transaction-requests/0198f1a2-3c4d-7e8f-9a0b-1c2d3e4f5a6b"}}}}},"headers":{"Location":{"$ref":"#/components/headers/Location"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TRADE_BUST_EXECUTION_REFUSED","WALLET_STEP_UP_CHALLENGE_REFUSED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_STREAM_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TRADING_VENUE_MARKET_NOT_FOUND","TRADING_VENUE_ORDER_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"MARKET_STREAM_NOT_FOUND","status":404,"message":"The market-data stream could not be opened.","data":{"id":"DALP-9306","why":"The stream request named a market this deployment does not serve, or the request came from another origin.","fix":"Open the stream same-origin against a live market id from the markets list.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","MARKET_LISTING_REFUSED","MARKET_STATE_INVALID","ORDER_PLACEMENT_IN_FLIGHT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","RESERVATION_BUDGET_EXCEEDED","SETTLEMENT_LEG_BLOCKED","TRADE_BUST_APPROVAL_INVALID","VENUE_CONFIGURATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_CALENDAR_INVALID","MARKET_FIELD_IMMUTABLE","ORDER_INTAKE_REJECTED","TRADE_BUST_REFUSED"]}},"required":["code"]}],"examples":[{"code":"MARKET_CALENDAR_INVALID","status":422,"message":"The market calendar cannot produce trading sessions","data":{"id":"DALP-12263","why":"The calendar names a timezone the platform cannot resolve, session times or an exception that never open a session, or a private continuous market schedules a pre-open.","fix":"Use an IANA timezone and session times with pre-open at or before open and open before close. Leave pre-open empty for every weekday and open exception on a private continuous market, then submit the calendar again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","OIDC_MFA_UNAVAILABLE","ORDER_SIGNING_FAILED","SESSION_RESOLUTION_FAILED","VENUE_DEPLOYMENT_PENDING","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Changes a resting order the selected participant controls without cancelling it first. A `reduce` amendment lowers the order's total quantity in place: the order keeps its id and its place in the queue, and the reservation behind the removed quantity is released. A `replace` amendment swaps the order for a newly signed one at a new price or a larger quantity: the original closes as replaced, the replacement takes a new order id and joins the back of the queue, and it may trade at once if its price crosses. The replacement inherits the original's reservation, so only the difference is reserved or released. A signed replacement is accepted once; retry a refused replace with a newly signed one.","summary":"Amend a resting order","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TradingVenueOrderAmendRequest"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/trading-venues/{venueAddress}/order-signatures":{"post":{"tags":["Trading venue"],"operationId":"v2/addons/tradingVenue/ordersSign","parameters":[{"name":"venueAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"name":"X-Wallet-Verification","in":"header","schema":{"type":"string","minLength":1},"required":false},{"name":"X-Step-Up-Challenge","in":"header","schema":{"type":"string","minLength":1},"required":false},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The maker wallet, recipient, and EIP-712 signature for the order fields you sent.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TradingVenueOrderSignature"},"links":{"$ref":"#/components/schemas/TradingVenueSingleLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"maker":"0x14dC79964da2C08b23698B3D3cc7Ca32193d9955","recipient":"0x14dC79964da2C08b23698B3D3cc7Ca32193d9955","signature":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae1b","orderHash":"0x2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae"},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/order-signatures"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TRADE_BUST_EXECUTION_REFUSED","WALLET_STEP_UP_CHALLENGE_REFUSED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_STREAM_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TRADING_VENUE_MARKET_NOT_FOUND","TRADING_VENUE_ORDER_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"MARKET_STREAM_NOT_FOUND","status":404,"message":"The market-data stream could not be opened.","data":{"id":"DALP-9306","why":"The stream request named a market this deployment does not serve, or the request came from another origin.","fix":"Open the stream same-origin against a live market id from the markets list.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","MARKET_LISTING_REFUSED","MARKET_STATE_INVALID","ORDER_PLACEMENT_IN_FLIGHT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","RESERVATION_BUDGET_EXCEEDED","SETTLEMENT_LEG_BLOCKED","TRADE_BUST_APPROVAL_INVALID","VENUE_CONFIGURATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_CALENDAR_INVALID","MARKET_FIELD_IMMUTABLE","ORDER_INTAKE_REJECTED","TRADE_BUST_REFUSED"]}},"required":["code"]}],"examples":[{"code":"MARKET_CALENDAR_INVALID","status":422,"message":"The market calendar cannot produce trading sessions","data":{"id":"DALP-12263","why":"The calendar names a timezone the platform cannot resolve, session times or an exception that never open a session, or a private continuous market schedules a pre-open.","fix":"Use an IANA timezone and session times with pre-open at or before open and open before close. Leave pre-open empty for every weekday and open exception on a private continuous market, then submit the calendar again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","OIDC_MFA_UNAVAILABLE","ORDER_SIGNING_FAILED","SESSION_RESOLUTION_FAILED","VENUE_DEPLOYMENT_PENDING","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Signs the order fields with the selected participant's executing wallet and returns the EIP-712 signature. The platform places nothing and queues no transaction: send the signature with the same fields to place the order. An external wallet answers 409 with the payload to sign, then repeats the request with that signature.","summary":"Sign an order","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TradingVenueOrderSignRequest"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/trading-venues/{venueAddress}/markets/{marketId}/book":{"get":{"tags":["Trading venue"],"operationId":"v2/addons/tradingVenue/book","parameters":[{"name":"venueAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"name":"marketId","in":"path","schema":{"type":"string","minLength":1,"description":"Trading Venue market identifier"},"required":true}],"responses":{"200":{"description":"A sequence-numbered depth snapshot: aggregated bid and offer levels, best price first.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TradingVenueMarketDepth"},"links":{"$ref":"#/components/schemas/TradingVenueSingleLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"marketId":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c","sequence":"42","bids":[{"priceTick":"1010","quantity":"5000000000000000000","orderCount":2}],"asks":[{"priceTick":"1012","quantity":"3000000000000000000","orderCount":1}],"lastTradeTick":"1011","indicativePriceTick":null,"indicativeQuantity":null,"asOf":"2026-08-01T09:00:00.000Z"},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/book"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TRADE_BUST_EXECUTION_REFUSED","WALLET_STEP_UP_CHALLENGE_REFUSED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_STREAM_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TRADING_VENUE_MARKET_NOT_FOUND","TRADING_VENUE_ORDER_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"MARKET_STREAM_NOT_FOUND","status":404,"message":"The market-data stream could not be opened.","data":{"id":"DALP-9306","why":"The stream request named a market this deployment does not serve, or the request came from another origin.","fix":"Open the stream same-origin against a live market id from the markets list.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","MARKET_LISTING_REFUSED","MARKET_STATE_INVALID","ORDER_PLACEMENT_IN_FLIGHT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","RESERVATION_BUDGET_EXCEEDED","SETTLEMENT_LEG_BLOCKED","TRADE_BUST_APPROVAL_INVALID","VENUE_CONFIGURATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_CALENDAR_INVALID","MARKET_FIELD_IMMUTABLE","ORDER_INTAKE_REJECTED","TRADE_BUST_REFUSED"]}},"required":["code"]}],"examples":[{"code":"MARKET_CALENDAR_INVALID","status":422,"message":"The market calendar cannot produce trading sessions","data":{"id":"DALP-12263","why":"The calendar names a timezone the platform cannot resolve, session times or an exception that never open a session, or a private continuous market schedules a pre-open.","fix":"Use an IANA timezone and session times with pre-open at or before open and open before close. Leave pre-open empty for every weekday and open exception on a private continuous market, then submit the calendar again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","OIDC_MFA_UNAVAILABLE","ORDER_SIGNING_FAILED","SESSION_RESOLUTION_FAILED","VENUE_DEPLOYMENT_PENDING","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the market's aggregated depth as bid and offer levels with a sequence number for stream resynchronization. Repeating the request is safe.","summary":"Read the order book","x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/trading-venues/{venueAddress}/markets/{marketId}/trades":{"get":{"tags":["Trading venue"],"operationId":"v2/addons/tradingVenue/trades","parameters":[{"name":"venueAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"name":"marketId","in":"path","schema":{"type":"string","minLength":1,"description":"Trading Venue market identifier"},"required":true},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":500},"required":false}],"responses":{"200":{"description":"Most recent trades on the market, newest first.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/TradingVenueTrade"}},"meta":{"$ref":"#/components/schemas/TradingVenueCollectionMeta"},"links":{"$ref":"#/components/schemas/TradingVenueSingleLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9e","marketId":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c","sequence":"42","priceTick":"1011","quantity":"1000000000000000000","status":"delivered","undoReason":null,"executedAt":"2026-08-01T09:00:00.000Z"}],"meta":{"total":1},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/trades"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TRADE_BUST_EXECUTION_REFUSED","WALLET_STEP_UP_CHALLENGE_REFUSED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_STREAM_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TRADING_VENUE_MARKET_NOT_FOUND","TRADING_VENUE_ORDER_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"MARKET_STREAM_NOT_FOUND","status":404,"message":"The market-data stream could not be opened.","data":{"id":"DALP-9306","why":"The stream request named a market this deployment does not serve, or the request came from another origin.","fix":"Open the stream same-origin against a live market id from the markets list.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","MARKET_LISTING_REFUSED","MARKET_STATE_INVALID","ORDER_PLACEMENT_IN_FLIGHT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","RESERVATION_BUDGET_EXCEEDED","SETTLEMENT_LEG_BLOCKED","TRADE_BUST_APPROVAL_INVALID","VENUE_CONFIGURATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_CALENDAR_INVALID","MARKET_FIELD_IMMUTABLE","ORDER_INTAKE_REJECTED","TRADE_BUST_REFUSED"]}},"required":["code"]}],"examples":[{"code":"MARKET_CALENDAR_INVALID","status":422,"message":"The market calendar cannot produce trading sessions","data":{"id":"DALP-12263","why":"The calendar names a timezone the platform cannot resolve, session times or an exception that never open a session, or a private continuous market schedules a pre-open.","fix":"Use an IANA timezone and session times with pre-open at or before open and open before close. Leave pre-open empty for every weekday and open exception on a private continuous market, then submit the calendar again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","OIDC_MFA_UNAVAILABLE","ORDER_SIGNING_FAILED","SESSION_RESOLUTION_FAILED","VENUE_DEPLOYMENT_PENDING","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the market's most recent trades, newest first, capped by `limit`. Repeating the request is safe.","summary":"List recent trades","x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/trading-venues/{venueAddress}/markets/{marketId}/candles":{"get":{"tags":["Trading venue"],"operationId":"v2/addons/tradingVenue/candles","parameters":[{"name":"venueAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"name":"marketId","in":"path","schema":{"type":"string","minLength":1,"description":"Trading Venue market identifier"},"required":true},{"name":"interval","in":"query","schema":{"type":"string","enum":["1m","5m","15m","1h","4h","1d"]},"required":true}],"responses":{"200":{"description":"OHLC candles with volume for one interval, oldest bucket first.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/TradingVenueCandle"}},"meta":{"$ref":"#/components/schemas/TradingVenueCollectionMeta"},"links":{"$ref":"#/components/schemas/TradingVenueSingleLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"marketId":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c","interval":"1m","bucketStart":"2026-08-01T09:00:00.000Z","open":"1010","high":"1012","low":"1009","close":"1011","volume":"4000000000000000000","tradeCount":6}],"meta":{"total":1},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/candles?interval=1m"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TRADE_BUST_EXECUTION_REFUSED","WALLET_STEP_UP_CHALLENGE_REFUSED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_STREAM_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TRADING_VENUE_MARKET_NOT_FOUND","TRADING_VENUE_ORDER_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"MARKET_STREAM_NOT_FOUND","status":404,"message":"The market-data stream could not be opened.","data":{"id":"DALP-9306","why":"The stream request named a market this deployment does not serve, or the request came from another origin.","fix":"Open the stream same-origin against a live market id from the markets list.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","MARKET_LISTING_REFUSED","MARKET_STATE_INVALID","ORDER_PLACEMENT_IN_FLIGHT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","RESERVATION_BUDGET_EXCEEDED","SETTLEMENT_LEG_BLOCKED","TRADE_BUST_APPROVAL_INVALID","VENUE_CONFIGURATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_CALENDAR_INVALID","MARKET_FIELD_IMMUTABLE","ORDER_INTAKE_REJECTED","TRADE_BUST_REFUSED"]}},"required":["code"]}],"examples":[{"code":"MARKET_CALENDAR_INVALID","status":422,"message":"The market calendar cannot produce trading sessions","data":{"id":"DALP-12263","why":"The calendar names a timezone the platform cannot resolve, session times or an exception that never open a session, or a private continuous market schedules a pre-open.","fix":"Use an IANA timezone and session times with pre-open at or before open and open before close. Leave pre-open empty for every weekday and open exception on a private continuous market, then submit the calendar again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","OIDC_MFA_UNAVAILABLE","ORDER_SIGNING_FAILED","SESSION_RESOLUTION_FAILED","VENUE_DEPLOYMENT_PENDING","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns OHLC candles with volume for one interval, oldest bucket first. Repeating the request is safe.","summary":"List OHLC candles","x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/trading-venues/{venueAddress}/markets/{marketId}/ticker":{"get":{"tags":["Trading venue"],"operationId":"v2/addons/tradingVenue/ticker","parameters":[{"name":"venueAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"name":"marketId","in":"path","schema":{"type":"string","minLength":1,"description":"Trading Venue market identifier"},"required":true}],"responses":{"200":{"description":"The market's trailing 24-hour statistics: last price, open, high, low, volume, trade count.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TradingVenueMarketTicker"},"links":{"$ref":"#/components/schemas/TradingVenueSingleLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"marketId":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c","lastTradeTick":"1011","openTick":"1005","highTick":"1012","lowTick":"1001","baseVolume":"4000000000000000000","tradeCount":6,"asOf":"2026-08-01T09:00:00.000Z"},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/ticker"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TRADE_BUST_EXECUTION_REFUSED","WALLET_STEP_UP_CHALLENGE_REFUSED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_STREAM_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TRADING_VENUE_MARKET_NOT_FOUND","TRADING_VENUE_ORDER_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"MARKET_STREAM_NOT_FOUND","status":404,"message":"The market-data stream could not be opened.","data":{"id":"DALP-9306","why":"The stream request named a market this deployment does not serve, or the request came from another origin.","fix":"Open the stream same-origin against a live market id from the markets list.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","MARKET_LISTING_REFUSED","MARKET_STATE_INVALID","ORDER_PLACEMENT_IN_FLIGHT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","RESERVATION_BUDGET_EXCEEDED","SETTLEMENT_LEG_BLOCKED","TRADE_BUST_APPROVAL_INVALID","VENUE_CONFIGURATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_CALENDAR_INVALID","MARKET_FIELD_IMMUTABLE","ORDER_INTAKE_REJECTED","TRADE_BUST_REFUSED"]}},"required":["code"]}],"examples":[{"code":"MARKET_CALENDAR_INVALID","status":422,"message":"The market calendar cannot produce trading sessions","data":{"id":"DALP-12263","why":"The calendar names a timezone the platform cannot resolve, session times or an exception that never open a session, or a private continuous market schedules a pre-open.","fix":"Use an IANA timezone and session times with pre-open at or before open and open before close. Leave pre-open empty for every weekday and open exception on a private continuous market, then submit the calendar again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","OIDC_MFA_UNAVAILABLE","ORDER_SIGNING_FAILED","SESSION_RESOLUTION_FAILED","VENUE_DEPLOYMENT_PENDING","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns last-trade price and trailing 24-hour open, high, low, volume, and trade count for one market. Repeating the request is safe.","summary":"Read the market ticker","x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/trading-venues/{venueAddress}/markets/{marketId}/stream":{"get":{"tags":["Trading venue"],"operationId":"v2/addons/tradingVenue/stream","parameters":[{"name":"venueAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"name":"marketId","in":"path","schema":{"type":"string","minLength":1,"description":"Trading Venue market identifier"},"required":true}],"responses":{"200":{"description":"Each SSE data event is a depth snapshot, a depth diff, a batch of trades, a heartbeat, or a terminal error.","content":{"text/event-stream":{"schema":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","enum":["snapshot"]},"snapshot":{"type":"object","properties":{"marketId":{"type":"string","minLength":1,"description":"Trading Venue market identifier"},"sequence":{"type":"string","pattern":"^-?\\d+$"},"bids":{"type":"array","items":{"type":"object","properties":{"priceTick":{"type":"string","pattern":"^-?\\d+$"},"quantity":{"type":"string","pattern":"^-?\\d+$"},"orderCount":{"type":"integer"}},"required":["priceTick","quantity","orderCount"],"additionalProperties":true}},"asks":{"type":"array","items":{"type":"object","properties":{"priceTick":{"type":"string","pattern":"^-?\\d+$"},"quantity":{"type":"string","pattern":"^-?\\d+$"},"orderCount":{"type":"integer"}},"required":["priceTick","quantity","orderCount"],"additionalProperties":true}},"lastTradeTick":{"anyOf":[{"type":"string","pattern":"^-?\\d+$"},{"type":"null"}]},"indicativePriceTick":{"anyOf":[{"type":"string","pattern":"^-?\\d+$"},{"type":"null"}]},"indicativeQuantity":{"anyOf":[{"type":"string","pattern":"^-?\\d+$"},{"type":"null"}]},"asOf":{"anyOf":[{"type":"string","description":"Epoch milliseconds as a digit string, or a readable datetime.","format":"timestamp"},{"type":"integer","minimum":0}]}},"required":["marketId","sequence","bids","asks","lastTradeTick","indicativePriceTick","indicativeQuantity","asOf"],"additionalProperties":true}},"required":["type","snapshot"],"additionalProperties":true},{"type":"object","properties":{"type":{"type":"string","enum":["diff"]},"diff":{"type":"object","properties":{"marketId":{"type":"string","minLength":1,"description":"Trading Venue market identifier"},"fromSequence":{"type":"string","pattern":"^-?\\d+$"},"toSequence":{"type":"string","pattern":"^-?\\d+$"},"bids":{"type":"array","items":{"type":"object","properties":{"priceTick":{"type":"string","pattern":"^-?\\d+$"},"quantity":{"type":"string","pattern":"^-?\\d+$"},"orderCount":{"type":"integer"}},"required":["priceTick","quantity","orderCount"],"additionalProperties":true}},"asks":{"type":"array","items":{"type":"object","properties":{"priceTick":{"type":"string","pattern":"^-?\\d+$"},"quantity":{"type":"string","pattern":"^-?\\d+$"},"orderCount":{"type":"integer"}},"required":["priceTick","quantity","orderCount"],"additionalProperties":true}},"lastTradeTick":{"anyOf":[{"type":"string","pattern":"^-?\\d+$"},{"type":"null"}]},"asOf":{"anyOf":[{"type":"string","description":"Epoch milliseconds as a digit string, or a readable datetime.","format":"timestamp"},{"type":"integer","minimum":0}]}},"required":["marketId","fromSequence","toSequence","bids","asks","lastTradeTick","asOf"],"additionalProperties":true}},"required":["type","diff"],"additionalProperties":true},{"type":"object","properties":{"type":{"type":"string","enum":["trades"]},"trades":{"type":"array","items":{"type":"object","properties":{"sequence":{"type":"string","pattern":"^-?\\d+$"},"priceTick":{"type":"string","pattern":"^-?\\d+$"},"quantity":{"type":"string","pattern":"^-?\\d+$"},"executedAt":{"anyOf":[{"type":"string","description":"Epoch milliseconds as a digit string, or a readable datetime.","format":"timestamp"},{"type":"integer","minimum":0}]}},"required":["sequence","priceTick","quantity","executedAt"],"additionalProperties":true}}},"required":["type","trades"],"additionalProperties":true},{"type":"object","properties":{"type":{"type":"string","enum":["indicative"]},"marketId":{"type":"string","minLength":1,"description":"Trading Venue market identifier"},"sequence":{"type":"string","pattern":"^-?\\d+$"},"priceTick":{"anyOf":[{"type":"string","pattern":"^-?\\d+$"},{"type":"null"}]},"quantity":{"anyOf":[{"type":"string","pattern":"^-?\\d+$"},{"type":"null"}]},"asOf":{"anyOf":[{"type":"string","description":"Epoch milliseconds as a digit string, or a readable datetime.","format":"timestamp"},{"type":"integer","minimum":0}]}},"required":["type","marketId","sequence","priceTick","quantity","asOf"],"additionalProperties":true},{"type":"object","properties":{"type":{"type":"string","enum":["heartbeat"]},"sequence":{"type":"string","pattern":"^-?\\d+$"}},"required":["type","sequence"],"additionalProperties":true},{"type":"object","properties":{"type":{"type":"string","enum":["error"]},"message":{"type":"string","minLength":1},"requestId":{"type":"string"}},"required":["type","message"],"additionalProperties":true}]},"x-effect-stream":{"encoding":"sse","causeSchema":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["Fail"]},"error":{"not":{}}},"required":["_tag","error"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["Die"]},"defect":{}},"required":["_tag","defect"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["Interrupt"]},"fiberId":{"anyOf":[{"type":"number"},{"type":"null"}]}},"required":["_tag","fiberId"],"additionalProperties":false}]}},"errorSchema":{"not":{}},"failureEvent":"effect/http-api/stream/failure"},"examples":{"example-1":{"value":{"type":"snapshot","snapshot":{"marketId":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c","sequence":"42","bids":[{"priceTick":"1011","quantity":"1000000000000000000","orderCount":2}],"asks":[{"priceTick":"1011","quantity":"1000000000000000000","orderCount":2}],"lastTradeTick":"1011","indicativePriceTick":"1","indicativeQuantity":"1","asOf":"2026-08-01T09:00:00.000Z"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TRADE_BUST_EXECUTION_REFUSED","WALLET_STEP_UP_CHALLENGE_REFUSED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_STREAM_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TRADING_VENUE_MARKET_NOT_FOUND","TRADING_VENUE_ORDER_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"MARKET_STREAM_NOT_FOUND","status":404,"message":"The market-data stream could not be opened.","data":{"id":"DALP-9306","why":"The stream request named a market this deployment does not serve, or the request came from another origin.","fix":"Open the stream same-origin against a live market id from the markets list.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","MARKET_LISTING_REFUSED","MARKET_STATE_INVALID","ORDER_PLACEMENT_IN_FLIGHT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","RESERVATION_BUDGET_EXCEEDED","SETTLEMENT_LEG_BLOCKED","TRADE_BUST_APPROVAL_INVALID","VENUE_CONFIGURATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_CALENDAR_INVALID","MARKET_FIELD_IMMUTABLE","ORDER_INTAKE_REJECTED","TRADE_BUST_REFUSED"]}},"required":["code"]}],"examples":[{"code":"MARKET_CALENDAR_INVALID","status":422,"message":"The market calendar cannot produce trading sessions","data":{"id":"DALP-12263","why":"The calendar names a timezone the platform cannot resolve, session times or an exception that never open a session, or a private continuous market schedules a pre-open.","fix":"Use an IANA timezone and session times with pre-open at or before open and open before close. Leave pre-open empty for every weekday and open exception on a private continuous market, then submit the calendar again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","OIDC_MFA_UNAVAILABLE","ORDER_SIGNING_FAILED","SESSION_RESOLUTION_FAILED","VENUE_DEPLOYMENT_PENDING","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Each SSE data event is a depth snapshot, a depth diff, a batch of trades, a heartbeat, or a terminal error. Every event carries the engine log sequence; on a gap, reconnect to receive a fresh snapshot instead of rendering stale depth.","summary":"Stream live market data","x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/trading-venues/watchlists":{"get":{"tags":["Trading venue"],"operationId":"v2/addons/tradingVenue/watchlistsList","parameters":[{"name":"offset","in":"query","schema":{"anyOf":[{"type":"number"},{"type":"string"}]},"required":false},{"name":"limit","in":"query","schema":{"anyOf":[{"type":"number"},{"type":"string"}]},"required":false},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"One page of your personal watchlists, oldest first by default.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/TradingVenueWatchlist"}},"meta":{"$ref":"#/components/schemas/TradingVenueCollectionMeta"},"links":{"$ref":"#/components/schemas/TradingVenueCollectionLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","name":"Core holdings","createdAt":"2026-08-01T09:00:00.000Z","updatedAt":"2026-08-01T09:00:00.000Z"}],"meta":{"total":1},"links":{"self":"/api/v2/addons/trading-venues/watchlists?sort=-createdAt&page[offset]=0&page[limit]=50","first":"/api/v2/addons/trading-venues/watchlists?sort=-createdAt&page[offset]=0&page[limit]=50","prev":null,"next":null,"last":"/api/v2/addons/trading-venues/watchlists?sort=-createdAt&page[offset]=0&page[limit]=50"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TRADE_BUST_EXECUTION_REFUSED","WALLET_STEP_UP_CHALLENGE_REFUSED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_STREAM_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TRADING_VENUE_MARKET_NOT_FOUND","TRADING_VENUE_ORDER_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"MARKET_STREAM_NOT_FOUND","status":404,"message":"The market-data stream could not be opened.","data":{"id":"DALP-9306","why":"The stream request named a market this deployment does not serve, or the request came from another origin.","fix":"Open the stream same-origin against a live market id from the markets list.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","MARKET_LISTING_REFUSED","MARKET_STATE_INVALID","ORDER_PLACEMENT_IN_FLIGHT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","RESERVATION_BUDGET_EXCEEDED","SETTLEMENT_LEG_BLOCKED","TRADE_BUST_APPROVAL_INVALID","VENUE_CONFIGURATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_CALENDAR_INVALID","MARKET_FIELD_IMMUTABLE","ORDER_INTAKE_REJECTED","TRADE_BUST_REFUSED"]}},"required":["code"]}],"examples":[{"code":"MARKET_CALENDAR_INVALID","status":422,"message":"The market calendar cannot produce trading sessions","data":{"id":"DALP-12263","why":"The calendar names a timezone the platform cannot resolve, session times or an exception that never open a session, or a private continuous market schedules a pre-open.","fix":"Use an IANA timezone and session times with pre-open at or before open and open before close. Leave pre-open empty for every weekday and open exception on a private continuous market, then submit the calendar again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","OIDC_MFA_UNAVAILABLE","ORDER_SIGNING_FAILED","SESSION_RESOLUTION_FAILED","VENUE_DEPLOYMENT_PENDING","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one page of your personal watchlists. Watchlists are private to you: nobody else's lists appear, and yours appear to nobody else. Repeating the request is safe.","summary":"List your watchlists","x-dalp-auth":"session-or-api-key"},"post":{"tags":["Trading venue"],"operationId":"v2/addons/tradingVenue/watchlistsCreate","parameters":[{"name":"X-Wallet-Verification","in":"header","schema":{"type":"string","minLength":1},"required":false},{"name":"X-Step-Up-Challenge","in":"header","schema":{"type":"string","minLength":1},"required":false},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The created watchlist.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TradingVenueWatchlist"},"links":{"$ref":"#/components/schemas/TradingVenueSingleLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","name":"Core holdings","createdAt":"2026-08-01T09:00:00.000Z","updatedAt":"2026-08-01T09:00:00.000Z"},"links":{"self":"/v2/addons/trading-venues/watchlists/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TRADE_BUST_EXECUTION_REFUSED","WALLET_STEP_UP_CHALLENGE_REFUSED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_STREAM_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TRADING_VENUE_MARKET_NOT_FOUND","TRADING_VENUE_ORDER_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"MARKET_STREAM_NOT_FOUND","status":404,"message":"The market-data stream could not be opened.","data":{"id":"DALP-9306","why":"The stream request named a market this deployment does not serve, or the request came from another origin.","fix":"Open the stream same-origin against a live market id from the markets list.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","MARKET_LISTING_REFUSED","MARKET_STATE_INVALID","ORDER_PLACEMENT_IN_FLIGHT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","RESERVATION_BUDGET_EXCEEDED","SETTLEMENT_LEG_BLOCKED","TRADE_BUST_APPROVAL_INVALID","VENUE_CONFIGURATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_CALENDAR_INVALID","MARKET_FIELD_IMMUTABLE","ORDER_INTAKE_REJECTED","TRADE_BUST_REFUSED"]}},"required":["code"]}],"examples":[{"code":"MARKET_CALENDAR_INVALID","status":422,"message":"The market calendar cannot produce trading sessions","data":{"id":"DALP-12263","why":"The calendar names a timezone the platform cannot resolve, session times or an exception that never open a session, or a private continuous market schedules a pre-open.","fix":"Use an IANA timezone and session times with pre-open at or before open and open before close. Leave pre-open empty for every weekday and open exception on a private continuous market, then submit the calendar again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","OIDC_MFA_UNAVAILABLE","ORDER_SIGNING_FAILED","SESSION_RESOLUTION_FAILED","VENUE_DEPLOYMENT_PENDING","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Creates a named personal watchlist. You can keep several lists side by side and add any market you can see.","summary":"Create a watchlist","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TradingVenueWatchlistName"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/trading-venues/watchlists/{watchlistId}":{"get":{"tags":["Trading venue"],"operationId":"v2/addons/tradingVenue/watchlistsRead","parameters":[{"name":"watchlistId","in":"path","schema":{"type":"string","minLength":1},"required":true}],"responses":{"200":{"description":"The watchlist with the watched markets currently visible to you. A market you can no longer see is silently absent and reappears when your access returns.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TradingVenueWatchlistDetail"},"links":{"$ref":"#/components/schemas/TradingVenueSingleLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","name":"Core holdings","createdAt":"2026-08-01T09:00:00.000Z","updatedAt":"2026-08-01T09:00:00.000Z","entries":[{"marketId":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c","createdAt":"2026-08-01T09:05:00.000Z"}]},"links":{"self":"/v2/addons/trading-venues/watchlists/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TRADE_BUST_EXECUTION_REFUSED","WALLET_STEP_UP_CHALLENGE_REFUSED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_STREAM_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TRADING_VENUE_MARKET_NOT_FOUND","TRADING_VENUE_ORDER_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"MARKET_STREAM_NOT_FOUND","status":404,"message":"The market-data stream could not be opened.","data":{"id":"DALP-9306","why":"The stream request named a market this deployment does not serve, or the request came from another origin.","fix":"Open the stream same-origin against a live market id from the markets list.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","MARKET_LISTING_REFUSED","MARKET_STATE_INVALID","ORDER_PLACEMENT_IN_FLIGHT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","RESERVATION_BUDGET_EXCEEDED","SETTLEMENT_LEG_BLOCKED","TRADE_BUST_APPROVAL_INVALID","VENUE_CONFIGURATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_CALENDAR_INVALID","MARKET_FIELD_IMMUTABLE","ORDER_INTAKE_REJECTED","TRADE_BUST_REFUSED"]}},"required":["code"]}],"examples":[{"code":"MARKET_CALENDAR_INVALID","status":422,"message":"The market calendar cannot produce trading sessions","data":{"id":"DALP-12263","why":"The calendar names a timezone the platform cannot resolve, session times or an exception that never open a session, or a private continuous market schedules a pre-open.","fix":"Use an IANA timezone and session times with pre-open at or before open and open before close. Leave pre-open empty for every weekday and open exception on a private continuous market, then submit the calendar again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","OIDC_MFA_UNAVAILABLE","ORDER_SIGNING_FAILED","SESSION_RESOLUTION_FAILED","VENUE_DEPLOYMENT_PENDING","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one of your watchlists with its watched markets. Markets you can no longer see are silently absent and reappear when your access returns. Another user's watchlist id answers 404. Repeating the request is safe.","summary":"Read a watchlist","x-dalp-auth":"session-or-api-key"},"patch":{"tags":["Trading venue"],"operationId":"v2/addons/tradingVenue/watchlistsRename","parameters":[{"name":"watchlistId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"name":"X-Wallet-Verification","in":"header","schema":{"type":"string","minLength":1},"required":false},{"name":"X-Step-Up-Challenge","in":"header","schema":{"type":"string","minLength":1},"required":false},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The watchlist after the rename.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TradingVenueWatchlist"},"links":{"$ref":"#/components/schemas/TradingVenueSingleLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","name":"Core holdings","createdAt":"2026-08-01T09:00:00.000Z","updatedAt":"2026-08-01T09:00:00.000Z"},"links":{"self":"/v2/addons/trading-venues/watchlists/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TRADE_BUST_EXECUTION_REFUSED","WALLET_STEP_UP_CHALLENGE_REFUSED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_STREAM_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TRADING_VENUE_MARKET_NOT_FOUND","TRADING_VENUE_ORDER_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"MARKET_STREAM_NOT_FOUND","status":404,"message":"The market-data stream could not be opened.","data":{"id":"DALP-9306","why":"The stream request named a market this deployment does not serve, or the request came from another origin.","fix":"Open the stream same-origin against a live market id from the markets list.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","MARKET_LISTING_REFUSED","MARKET_STATE_INVALID","ORDER_PLACEMENT_IN_FLIGHT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","RESERVATION_BUDGET_EXCEEDED","SETTLEMENT_LEG_BLOCKED","TRADE_BUST_APPROVAL_INVALID","VENUE_CONFIGURATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_CALENDAR_INVALID","MARKET_FIELD_IMMUTABLE","ORDER_INTAKE_REJECTED","TRADE_BUST_REFUSED"]}},"required":["code"]}],"examples":[{"code":"MARKET_CALENDAR_INVALID","status":422,"message":"The market calendar cannot produce trading sessions","data":{"id":"DALP-12263","why":"The calendar names a timezone the platform cannot resolve, session times or an exception that never open a session, or a private continuous market schedules a pre-open.","fix":"Use an IANA timezone and session times with pre-open at or before open and open before close. Leave pre-open empty for every weekday and open exception on a private continuous market, then submit the calendar again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","OIDC_MFA_UNAVAILABLE","ORDER_SIGNING_FAILED","SESSION_RESOLUTION_FAILED","VENUE_DEPLOYMENT_PENDING","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Renames one of your watchlists. Another user's watchlist id answers 404 and changes nothing.","summary":"Rename a watchlist","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TradingVenueWatchlistName"}}},"required":true},"x-dalp-auth":"session-or-api-key"},"delete":{"tags":["Trading venue"],"operationId":"v2/addons/tradingVenue/watchlistsDelete","parameters":[{"name":"watchlistId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"name":"X-Wallet-Verification","in":"header","schema":{"type":"string","minLength":1},"required":false},{"name":"X-Step-Up-Challenge","in":"header","schema":{"type":"string","minLength":1},"required":false},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The deleted watchlist; its entries are removed with it.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TradingVenueWatchlist"},"links":{"$ref":"#/components/schemas/TradingVenueSingleLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","name":"Core holdings","createdAt":"2026-08-01T09:00:00.000Z","updatedAt":"2026-08-01T09:00:00.000Z"},"links":{"self":"/v2/addons/trading-venues/watchlists"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TRADE_BUST_EXECUTION_REFUSED","WALLET_STEP_UP_CHALLENGE_REFUSED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_STREAM_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TRADING_VENUE_MARKET_NOT_FOUND","TRADING_VENUE_ORDER_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"MARKET_STREAM_NOT_FOUND","status":404,"message":"The market-data stream could not be opened.","data":{"id":"DALP-9306","why":"The stream request named a market this deployment does not serve, or the request came from another origin.","fix":"Open the stream same-origin against a live market id from the markets list.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","MARKET_LISTING_REFUSED","MARKET_STATE_INVALID","ORDER_PLACEMENT_IN_FLIGHT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","RESERVATION_BUDGET_EXCEEDED","SETTLEMENT_LEG_BLOCKED","TRADE_BUST_APPROVAL_INVALID","VENUE_CONFIGURATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_CALENDAR_INVALID","MARKET_FIELD_IMMUTABLE","ORDER_INTAKE_REJECTED","TRADE_BUST_REFUSED"]}},"required":["code"]}],"examples":[{"code":"MARKET_CALENDAR_INVALID","status":422,"message":"The market calendar cannot produce trading sessions","data":{"id":"DALP-12263","why":"The calendar names a timezone the platform cannot resolve, session times or an exception that never open a session, or a private continuous market schedules a pre-open.","fix":"Use an IANA timezone and session times with pre-open at or before open and open before close. Leave pre-open empty for every weekday and open exception on a private continuous market, then submit the calendar again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","OIDC_MFA_UNAVAILABLE","ORDER_SIGNING_FAILED","SESSION_RESOLUTION_FAILED","VENUE_DEPLOYMENT_PENDING","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Deletes one of your watchlists and all its entries. Another user's watchlist id answers 404 and changes nothing.","summary":"Delete a watchlist","x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/trading-venues/watchlists/{watchlistId}/entries":{"post":{"tags":["Trading venue"],"operationId":"v2/addons/tradingVenue/watchlistEntriesAdd","parameters":[{"name":"watchlistId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"name":"X-Wallet-Verification","in":"header","schema":{"type":"string","minLength":1},"required":false},{"name":"X-Step-Up-Challenge","in":"header","schema":{"type":"string","minLength":1},"required":false},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The stored watchlist entry.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TradingVenueWatchlistEntryAdded"},"links":{"$ref":"#/components/schemas/TradingVenueSingleLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"watchlistId":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","marketId":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c","createdAt":"2026-08-01T09:05:00.000Z"},"links":{"self":"/v2/addons/trading-venues/watchlists/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TRADE_BUST_EXECUTION_REFUSED","WALLET_STEP_UP_CHALLENGE_REFUSED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_STREAM_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TRADING_VENUE_MARKET_NOT_FOUND","TRADING_VENUE_ORDER_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"MARKET_STREAM_NOT_FOUND","status":404,"message":"The market-data stream could not be opened.","data":{"id":"DALP-9306","why":"The stream request named a market this deployment does not serve, or the request came from another origin.","fix":"Open the stream same-origin against a live market id from the markets list.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","MARKET_LISTING_REFUSED","MARKET_STATE_INVALID","ORDER_PLACEMENT_IN_FLIGHT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","RESERVATION_BUDGET_EXCEEDED","SETTLEMENT_LEG_BLOCKED","TRADE_BUST_APPROVAL_INVALID","VENUE_CONFIGURATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_CALENDAR_INVALID","MARKET_FIELD_IMMUTABLE","ORDER_INTAKE_REJECTED","TRADE_BUST_REFUSED"]}},"required":["code"]}],"examples":[{"code":"MARKET_CALENDAR_INVALID","status":422,"message":"The market calendar cannot produce trading sessions","data":{"id":"DALP-12263","why":"The calendar names a timezone the platform cannot resolve, session times or an exception that never open a session, or a private continuous market schedules a pre-open.","fix":"Use an IANA timezone and session times with pre-open at or before open and open before close. Leave pre-open empty for every weekday and open exception on a private continuous market, then submit the calendar again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","OIDC_MFA_UNAVAILABLE","ORDER_SIGNING_FAILED","SESSION_RESOLUTION_FAILED","VENUE_DEPLOYMENT_PENDING","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Adds one market to one of your watchlists. Only markets you can see can be added; a market outside your view answers 404. Re-adding a watched market changes nothing.","summary":"Watch a market","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TradingVenueWatchlistEntryAddRequest"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/trading-venues/watchlists/{watchlistId}/entries/{marketId}":{"delete":{"tags":["Trading venue"],"operationId":"v2/addons/tradingVenue/watchlistEntriesRemove","parameters":[{"name":"watchlistId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"name":"marketId","in":"path","schema":{"type":"string","minLength":1,"description":"Trading Venue market identifier"},"required":true},{"name":"X-Wallet-Verification","in":"header","schema":{"type":"string","minLength":1},"required":false},{"name":"X-Step-Up-Challenge","in":"header","schema":{"type":"string","minLength":1},"required":false},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The removal report; removing a market that was not watched changes nothing.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TradingVenueWatchlistEntryRemoved"},"links":{"$ref":"#/components/schemas/TradingVenueSingleLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"watchlistId":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","marketId":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c","removed":true},"links":{"self":"/v2/addons/trading-venues/watchlists/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TRADE_BUST_EXECUTION_REFUSED","WALLET_STEP_UP_CHALLENGE_REFUSED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_STREAM_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TRADING_VENUE_MARKET_NOT_FOUND","TRADING_VENUE_ORDER_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"MARKET_STREAM_NOT_FOUND","status":404,"message":"The market-data stream could not be opened.","data":{"id":"DALP-9306","why":"The stream request named a market this deployment does not serve, or the request came from another origin.","fix":"Open the stream same-origin against a live market id from the markets list.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","MARKET_LISTING_REFUSED","MARKET_STATE_INVALID","ORDER_PLACEMENT_IN_FLIGHT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","RESERVATION_BUDGET_EXCEEDED","SETTLEMENT_LEG_BLOCKED","TRADE_BUST_APPROVAL_INVALID","VENUE_CONFIGURATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_CALENDAR_INVALID","MARKET_FIELD_IMMUTABLE","ORDER_INTAKE_REJECTED","TRADE_BUST_REFUSED"]}},"required":["code"]}],"examples":[{"code":"MARKET_CALENDAR_INVALID","status":422,"message":"The market calendar cannot produce trading sessions","data":{"id":"DALP-12263","why":"The calendar names a timezone the platform cannot resolve, session times or an exception that never open a session, or a private continuous market schedules a pre-open.","fix":"Use an IANA timezone and session times with pre-open at or before open and open before close. Leave pre-open empty for every weekday and open exception on a private continuous market, then submit the calendar again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","OIDC_MFA_UNAVAILABLE","ORDER_SIGNING_FAILED","SESSION_RESOLUTION_FAILED","VENUE_DEPLOYMENT_PENDING","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Removes one market from one of your watchlists. Removing a market that was not watched changes nothing. Another user's watchlist id answers 404.","summary":"Unwatch a market","x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/trading-venues/{venueAddress}/markets/{marketId}/calendar":{"get":{"tags":["Trading venue"],"operationId":"v2/addons/tradingVenue/calendarRead","parameters":[{"name":"venueAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"name":"marketId","in":"path","schema":{"type":"string","minLength":1,"description":"Trading Venue market identifier"},"required":true}],"responses":{"200":{"description":"The market's trading calendar: timezone, weekly template, dated exceptions, and upcoming session occurrences with their scheduled boundaries. The opening auction's exact uncross instant is never disclosed; only the window width is.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TradingVenueCalendar"},"links":{"$ref":"#/components/schemas/TradingVenueSingleLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","marketId":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c","timezone":"Europe/Brussels","uncrossWindowMs":30000,"days":[{"weekday":1,"preopenTime":"08:00","openTime":"09:00","closeTime":"17:30"}],"exceptions":[{"date":"2026-12-25","closed":true,"preopenTime":"08:00","openTime":"09:00","closeTime":"17:30"}],"occurrences":[{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","marketId":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c","kind":"session","sessionDate":"2026-08-24","preopenAt":"2026-08-24T06:00:00.000Z","openAt":"2026-08-24T07:00:00.000Z","closeAt":"2026-08-24T15:30:00.000Z","appliedState":"none","officialCloseTick":null,"auctionPriceTick":"1"}]},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/calendar"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TRADE_BUST_EXECUTION_REFUSED","WALLET_STEP_UP_CHALLENGE_REFUSED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_STREAM_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TRADING_VENUE_MARKET_NOT_FOUND","TRADING_VENUE_ORDER_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"MARKET_STREAM_NOT_FOUND","status":404,"message":"The market-data stream could not be opened.","data":{"id":"DALP-9306","why":"The stream request named a market this deployment does not serve, or the request came from another origin.","fix":"Open the stream same-origin against a live market id from the markets list.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","MARKET_LISTING_REFUSED","MARKET_STATE_INVALID","ORDER_PLACEMENT_IN_FLIGHT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","RESERVATION_BUDGET_EXCEEDED","SETTLEMENT_LEG_BLOCKED","TRADE_BUST_APPROVAL_INVALID","VENUE_CONFIGURATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_CALENDAR_INVALID","MARKET_FIELD_IMMUTABLE","ORDER_INTAKE_REJECTED","TRADE_BUST_REFUSED"]}},"required":["code"]}],"examples":[{"code":"MARKET_CALENDAR_INVALID","status":422,"message":"The market calendar cannot produce trading sessions","data":{"id":"DALP-12263","why":"The calendar names a timezone the platform cannot resolve, session times or an exception that never open a session, or a private continuous market schedules a pre-open.","fix":"Use an IANA timezone and session times with pre-open at or before open and open before close. Leave pre-open empty for every weekday and open exception on a private continuous market, then submit the calendar again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","OIDC_MFA_UNAVAILABLE","ORDER_SIGNING_FAILED","SESSION_RESOLUTION_FAILED","VENUE_DEPLOYMENT_PENDING","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the market's timezone, weekly session template, dated exceptions, and upcoming session occurrences with scheduled boundaries. A market without a calendar trades continuously around the clock. Repeating the request is safe.","summary":"Read a market's trading calendar","x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/trading-venues/{venueAddress}/markets/{marketId}/collection-windows":{"get":{"tags":["Trading venue"],"operationId":"v2/addons/tradingVenue/collectionWindowsRead","parameters":[{"name":"venueAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"name":"marketId","in":"path","schema":{"type":"string","minLength":1,"description":"Trading Venue market identifier"},"required":true}],"responses":{"200":{"description":"The market's collection windows, their scheduled boundaries, clearing dates, and current states.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TradingVenueCollectionWindowSchedule"},"links":{"$ref":"#/components/schemas/TradingVenueSingleLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"marketId":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c","windows":[{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9d","marketId":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c","clearingDate":"2026-10-09","startAt":"2026-10-05T07:00:00.000Z","endAt":"2026-10-09T12:00:00.000Z","appliedState":"none","officialCloseTick":null}]},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/collection-windows"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TRADE_BUST_EXECUTION_REFUSED","WALLET_STEP_UP_CHALLENGE_REFUSED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_STREAM_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TRADING_VENUE_MARKET_NOT_FOUND","TRADING_VENUE_ORDER_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"MARKET_STREAM_NOT_FOUND","status":404,"message":"The market-data stream could not be opened.","data":{"id":"DALP-9306","why":"The stream request named a market this deployment does not serve, or the request came from another origin.","fix":"Open the stream same-origin against a live market id from the markets list.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","MARKET_LISTING_REFUSED","MARKET_STATE_INVALID","ORDER_PLACEMENT_IN_FLIGHT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","RESERVATION_BUDGET_EXCEEDED","SETTLEMENT_LEG_BLOCKED","TRADE_BUST_APPROVAL_INVALID","VENUE_CONFIGURATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_CALENDAR_INVALID","MARKET_FIELD_IMMUTABLE","ORDER_INTAKE_REJECTED","TRADE_BUST_REFUSED"]}},"required":["code"]}],"examples":[{"code":"MARKET_CALENDAR_INVALID","status":422,"message":"The market calendar cannot produce trading sessions","data":{"id":"DALP-12263","why":"The calendar names a timezone the platform cannot resolve, session times or an exception that never open a session, or a private continuous market schedules a pre-open.","fix":"Use an IANA timezone and session times with pre-open at or before open and open before close. Leave pre-open empty for every weekday and open exception on a private continuous market, then submit the calendar again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","OIDC_MFA_UNAVAILABLE","ORDER_SIGNING_FAILED","SESSION_RESOLUTION_FAILED","VENUE_DEPLOYMENT_PENDING","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the auction collection windows scheduled for this market, including windows already collecting and closed. Each window collects orders from startAt until endAt and clears once at endAt. Repeating this read is safe.","summary":"Read a market's auction collection windows","x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/trading-venues/{venueAddress}/markets/{marketId}/bands":{"get":{"tags":["Trading venue"],"operationId":"v2/addons/tradingVenue/bandsRead","parameters":[{"name":"venueAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true},{"name":"marketId","in":"path","schema":{"type":"string","minLength":1,"description":"Trading Venue market identifier"},"required":true}],"responses":{"200":{"description":"The market's price bands and order thresholds, with the static band's current session-reference anchor. Null fields are inactive.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TradingVenueBandConfig"},"links":{"$ref":"#/components/schemas/TradingVenueSingleLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"marketId":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c","staticBandBps":1000,"staticBandAnchorTick":"1000","dynamicBandBps":300,"maxOrderQuantity":"100000000000000000000","maxOrderNotional":"50000000000"},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/bands"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TRADE_BUST_EXECUTION_REFUSED","WALLET_STEP_UP_CHALLENGE_REFUSED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_STREAM_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TRADING_VENUE_MARKET_NOT_FOUND","TRADING_VENUE_ORDER_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"MARKET_STREAM_NOT_FOUND","status":404,"message":"The market-data stream could not be opened.","data":{"id":"DALP-9306","why":"The stream request named a market this deployment does not serve, or the request came from another origin.","fix":"Open the stream same-origin against a live market id from the markets list.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","MARKET_LISTING_REFUSED","MARKET_STATE_INVALID","ORDER_PLACEMENT_IN_FLIGHT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","RESERVATION_BUDGET_EXCEEDED","SETTLEMENT_LEG_BLOCKED","TRADE_BUST_APPROVAL_INVALID","VENUE_CONFIGURATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_CALENDAR_INVALID","MARKET_FIELD_IMMUTABLE","ORDER_INTAKE_REJECTED","TRADE_BUST_REFUSED"]}},"required":["code"]}],"examples":[{"code":"MARKET_CALENDAR_INVALID","status":422,"message":"The market calendar cannot produce trading sessions","data":{"id":"DALP-12263","why":"The calendar names a timezone the platform cannot resolve, session times or an exception that never open a session, or a private continuous market schedules a pre-open.","fix":"Use an IANA timezone and session times with pre-open at or before open and open before close. Leave pre-open empty for every weekday and open exception on a private continuous market, then submit the calendar again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","OIDC_MFA_UNAVAILABLE","ORDER_SIGNING_FAILED","SESSION_RESOLUTION_FAILED","VENUE_DEPLOYMENT_PENDING","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the market's static and dynamic price bands and its per-order quantity and notional thresholds, with the static band's session-reference anchor. Null fields are inactive. Repeating the request is safe.","summary":"Read a market's price bands","x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/trading-venues/{venueAddress}/calendar":{"get":{"tags":["Trading venue"],"operationId":"v2/addons/tradingVenue/venueCalendarRead","parameters":[{"name":"venueAddress","in":"path","schema":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"required":true}],"responses":{"200":{"description":"The venue's own calendar layer: its timezone, weekly template, dated time overrides, and every closed day its leaf holiday calendar and that leaf's whole parent chain carry.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TradingVenueVenueCalendar"},"links":{"$ref":"#/components/schemas/TradingVenueSingleLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"venueAddress":"0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0","timezone":"Europe/Brussels","calendarId":"venue:31337:0x1111111111111111111111111111111111111111","parentCalendarId":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9d","calendarVersion":3,"days":[{"weekday":1,"preopenTime":"08:00","openTime":"09:00","closeTime":"17:30"}],"exceptions":[{"date":"2026-12-24","preopenTime":"08:00","openTime":"09:00","closeTime":"13:00"}],"closures":[{"observedOn":"2026-12-25","kind":"public","source":"platform:admin-1","calendarId":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9d"}]},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/calendar"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TRADE_BUST_EXECUTION_REFUSED","WALLET_STEP_UP_CHALLENGE_REFUSED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_STREAM_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TRADING_VENUE_MARKET_NOT_FOUND","TRADING_VENUE_ORDER_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"MARKET_STREAM_NOT_FOUND","status":404,"message":"The market-data stream could not be opened.","data":{"id":"DALP-9306","why":"The stream request named a market this deployment does not serve, or the request came from another origin.","fix":"Open the stream same-origin against a live market id from the markets list.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","MARKET_LISTING_REFUSED","MARKET_STATE_INVALID","ORDER_PLACEMENT_IN_FLIGHT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","RESERVATION_BUDGET_EXCEEDED","SETTLEMENT_LEG_BLOCKED","TRADE_BUST_APPROVAL_INVALID","VENUE_CONFIGURATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_CALENDAR_INVALID","MARKET_FIELD_IMMUTABLE","ORDER_INTAKE_REJECTED","TRADE_BUST_REFUSED"]}},"required":["code"]}],"examples":[{"code":"MARKET_CALENDAR_INVALID","status":422,"message":"The market calendar cannot produce trading sessions","data":{"id":"DALP-12263","why":"The calendar names a timezone the platform cannot resolve, session times or an exception that never open a session, or a private continuous market schedules a pre-open.","fix":"Use an IANA timezone and session times with pre-open at or before open and open before close. Leave pre-open empty for every weekday and open exception on a private continuous market, then submit the calendar again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","OIDC_MFA_UNAVAILABLE","ORDER_SIGNING_FAILED","SESSION_RESOLUTION_FAILED","VENUE_DEPLOYMENT_PENDING","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the week every market of this venue trades unless it declares one of its own, the venue's dated time overrides, and the closed days the venue inherits from the shared holiday calendar its leaf extends. Repeating the request is safe.","summary":"Read a venue's calendar layer","x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/trading-venues/price-alerts":{"get":{"tags":["Trading venue"],"operationId":"v2/addons/tradingVenue/priceAlertsList","parameters":[{"name":"offset","in":"query","schema":{"anyOf":[{"type":"number"},{"type":"string"}]},"required":false},{"name":"limit","in":"query","schema":{"anyOf":[{"type":"number"},{"type":"string"}]},"required":false},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/TradingVenuePriceAlert"}},"meta":{"$ref":"#/components/schemas/TradingVenueCollectionMeta"},"links":{"$ref":"#/components/schemas/TradingVenueCollectionLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","marketId":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c","direction":"above","thresholdTick":"1","status":"active","createdAt":"2026-08-01T09:00:00.000Z","triggeredAt":0,"triggeredPriceTick":"1"}],"meta":{"total":1},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants","first":"/v2/accounts?sort=-firstSeenBlock&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/accounts?sort=-firstSeenBlock&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TRADE_BUST_EXECUTION_REFUSED","WALLET_STEP_UP_CHALLENGE_REFUSED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_STREAM_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TRADING_VENUE_MARKET_NOT_FOUND","TRADING_VENUE_ORDER_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"MARKET_STREAM_NOT_FOUND","status":404,"message":"The market-data stream could not be opened.","data":{"id":"DALP-9306","why":"The stream request named a market this deployment does not serve, or the request came from another origin.","fix":"Open the stream same-origin against a live market id from the markets list.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","MARKET_LISTING_REFUSED","MARKET_STATE_INVALID","ORDER_PLACEMENT_IN_FLIGHT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","RESERVATION_BUDGET_EXCEEDED","SETTLEMENT_LEG_BLOCKED","TRADE_BUST_APPROVAL_INVALID","VENUE_CONFIGURATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_CALENDAR_INVALID","MARKET_FIELD_IMMUTABLE","ORDER_INTAKE_REJECTED","TRADE_BUST_REFUSED"]}},"required":["code"]}],"examples":[{"code":"MARKET_CALENDAR_INVALID","status":422,"message":"The market calendar cannot produce trading sessions","data":{"id":"DALP-12263","why":"The calendar names a timezone the platform cannot resolve, session times or an exception that never open a session, or a private continuous market schedules a pre-open.","fix":"Use an IANA timezone and session times with pre-open at or before open and open before close. Leave pre-open empty for every weekday and open exception on a private continuous market, then submit the calendar again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","OIDC_MFA_UNAVAILABLE","ORDER_SIGNING_FAILED","SESSION_RESOLUTION_FAILED","VENUE_DEPLOYMENT_PENDING","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"x-dalp-auth":"session-or-api-key"},"post":{"tags":["Trading venue"],"operationId":"v2/addons/tradingVenue/priceAlertsCreate","parameters":[{"name":"X-Wallet-Verification","in":"header","schema":{"type":"string","minLength":1},"required":false},{"name":"X-Step-Up-Challenge","in":"header","schema":{"type":"string","minLength":1},"required":false},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TradingVenuePriceAlert"},"links":{"$ref":"#/components/schemas/TradingVenueSingleLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","marketId":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c","direction":"above","thresholdTick":"1","status":"active","createdAt":"2026-08-01T09:00:00.000Z","triggeredAt":0,"triggeredPriceTick":"1"},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TRADE_BUST_EXECUTION_REFUSED","WALLET_STEP_UP_CHALLENGE_REFUSED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_STREAM_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TRADING_VENUE_MARKET_NOT_FOUND","TRADING_VENUE_ORDER_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"MARKET_STREAM_NOT_FOUND","status":404,"message":"The market-data stream could not be opened.","data":{"id":"DALP-9306","why":"The stream request named a market this deployment does not serve, or the request came from another origin.","fix":"Open the stream same-origin against a live market id from the markets list.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","MARKET_LISTING_REFUSED","MARKET_STATE_INVALID","ORDER_PLACEMENT_IN_FLIGHT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","RESERVATION_BUDGET_EXCEEDED","SETTLEMENT_LEG_BLOCKED","TRADE_BUST_APPROVAL_INVALID","VENUE_CONFIGURATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_CALENDAR_INVALID","MARKET_FIELD_IMMUTABLE","ORDER_INTAKE_REJECTED","TRADE_BUST_REFUSED"]}},"required":["code"]}],"examples":[{"code":"MARKET_CALENDAR_INVALID","status":422,"message":"The market calendar cannot produce trading sessions","data":{"id":"DALP-12263","why":"The calendar names a timezone the platform cannot resolve, session times or an exception that never open a session, or a private continuous market schedules a pre-open.","fix":"Use an IANA timezone and session times with pre-open at or before open and open before close. Leave pre-open empty for every weekday and open exception on a private continuous market, then submit the calendar again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","OIDC_MFA_UNAVAILABLE","ORDER_SIGNING_FAILED","SESSION_RESOLUTION_FAILED","VENUE_DEPLOYMENT_PENDING","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TradingVenuePriceAlertCreateRequest"}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/trading-venues/price-alerts/{alertId}":{"delete":{"tags":["Trading venue"],"operationId":"v2/addons/tradingVenue/priceAlertsDelete","parameters":[{"name":"alertId","in":"path","schema":{"type":"string","minLength":1},"required":true},{"name":"X-Wallet-Verification","in":"header","schema":{"type":"string","minLength":1},"required":false},{"name":"X-Step-Up-Challenge","in":"header","schema":{"type":"string","minLength":1},"required":false},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TradingVenuePriceAlert"},"links":{"$ref":"#/components/schemas/TradingVenueSingleLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","marketId":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c","direction":"above","thresholdTick":"1","status":"active","createdAt":"2026-08-01T09:00:00.000Z","triggeredAt":0,"triggeredPriceTick":"1"},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TRADE_BUST_EXECUTION_REFUSED","WALLET_STEP_UP_CHALLENGE_REFUSED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_STREAM_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TRADING_VENUE_MARKET_NOT_FOUND","TRADING_VENUE_ORDER_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"MARKET_STREAM_NOT_FOUND","status":404,"message":"The market-data stream could not be opened.","data":{"id":"DALP-9306","why":"The stream request named a market this deployment does not serve, or the request came from another origin.","fix":"Open the stream same-origin against a live market id from the markets list.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","MARKET_LISTING_REFUSED","MARKET_STATE_INVALID","ORDER_PLACEMENT_IN_FLIGHT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","RESERVATION_BUDGET_EXCEEDED","SETTLEMENT_LEG_BLOCKED","TRADE_BUST_APPROVAL_INVALID","VENUE_CONFIGURATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_CALENDAR_INVALID","MARKET_FIELD_IMMUTABLE","ORDER_INTAKE_REJECTED","TRADE_BUST_REFUSED"]}},"required":["code"]}],"examples":[{"code":"MARKET_CALENDAR_INVALID","status":422,"message":"The market calendar cannot produce trading sessions","data":{"id":"DALP-12263","why":"The calendar names a timezone the platform cannot resolve, session times or an exception that never open a session, or a private continuous market schedules a pre-open.","fix":"Use an IANA timezone and session times with pre-open at or before open and open before close. Leave pre-open empty for every weekday and open exception on a private continuous market, then submit the calendar again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","OIDC_MFA_UNAVAILABLE","ORDER_SIGNING_FAILED","SESSION_RESOLUTION_FAILED","VENUE_DEPLOYMENT_PENDING","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/trading-venues/announcements":{"get":{"tags":["Trading venue"],"operationId":"v2/addons/tradingVenue/announcementsList","parameters":[{"name":"offset","in":"query","schema":{"anyOf":[{"type":"number"},{"type":"string"}]},"required":false},{"name":"limit","in":"query","schema":{"anyOf":[{"type":"number"},{"type":"string"}]},"required":false},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/TradingVenueAnnouncement"}},"meta":{"$ref":"#/components/schemas/TradingVenueCollectionMeta"},"links":{"$ref":"#/components/schemas/TradingVenueCollectionLinks"}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","venueAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","marketId":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c","title":"Extend the Series A coupon window","body":"{\"received\":true}","category":"notice","severity":"info","status":"published","publishedAt":"2026-03-04T09:12:41.000Z","publishedBy":"usr_compliance_lead","withdrawnAt":0,"withdrawnBy":"user_northwind_treasury"}],"meta":{"total":1},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants","first":"/v2/accounts?sort=-firstSeenBlock&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/accounts?sort=-firstSeenBlock&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TRADE_BUST_EXECUTION_REFUSED","WALLET_STEP_UP_CHALLENGE_REFUSED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_STREAM_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TRADING_VENUE_MARKET_NOT_FOUND","TRADING_VENUE_ORDER_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"MARKET_STREAM_NOT_FOUND","status":404,"message":"The market-data stream could not be opened.","data":{"id":"DALP-9306","why":"The stream request named a market this deployment does not serve, or the request came from another origin.","fix":"Open the stream same-origin against a live market id from the markets list.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","MARKET_LISTING_REFUSED","MARKET_STATE_INVALID","ORDER_PLACEMENT_IN_FLIGHT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","RESERVATION_BUDGET_EXCEEDED","SETTLEMENT_LEG_BLOCKED","TRADE_BUST_APPROVAL_INVALID","VENUE_CONFIGURATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_CALENDAR_INVALID","MARKET_FIELD_IMMUTABLE","ORDER_INTAKE_REJECTED","TRADE_BUST_REFUSED"]}},"required":["code"]}],"examples":[{"code":"MARKET_CALENDAR_INVALID","status":422,"message":"The market calendar cannot produce trading sessions","data":{"id":"DALP-12263","why":"The calendar names a timezone the platform cannot resolve, session times or an exception that never open a session, or a private continuous market schedules a pre-open.","fix":"Use an IANA timezone and session times with pre-open at or before open and open before close. Leave pre-open empty for every weekday and open exception on a private continuous market, then submit the calendar again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","OIDC_MFA_UNAVAILABLE","ORDER_SIGNING_FAILED","SESSION_RESOLUTION_FAILED","VENUE_DEPLOYMENT_PENDING","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"x-dalp-auth":"session-or-api-key"}},"/api/v2/addons/trading-venues/announcements/{announcementId}":{"get":{"tags":["Trading venue"],"operationId":"v2/addons/tradingVenue/announcementsRead","parameters":[{"name":"announcementId","in":"path","schema":{"type":"string","minLength":1},"required":true}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TradingVenueAnnouncement"},"links":{"$ref":"#/components/schemas/TradingVenueSingleLinks"}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1","venueAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F","marketId":"0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c","title":"Extend the Series A coupon window","body":"{\"received\":true}","category":"notice","severity":"info","status":"published","publishedAt":"2026-03-04T09:12:41.000Z","publishedBy":"usr_compliance_lead","withdrawnAt":0,"withdrawnBy":"user_northwind_treasury"},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WALLET_VERIFICATION_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","USER_MISSING_2FA","WALLET_VERIFICATION_NOT_CONFIGURED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","TRADE_BUST_EXECUTION_REFUSED","WALLET_STEP_UP_CHALLENGE_REFUSED","WALLET_VERIFICATION_INVALID","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_STREAM_NOT_FOUND","REQUEST_CHAIN_SYSTEM_REQUIRED","TRADING_VENUE_MARKET_NOT_FOUND","TRADING_VENUE_ORDER_NOT_FOUND"]}},"required":["code"]}],"examples":[{"code":"MARKET_STREAM_NOT_FOUND","status":404,"message":"The market-data stream could not be opened.","data":{"id":"DALP-9306","why":"The stream request named a market this deployment does not serve, or the request came from another origin.","fix":"Open the stream same-origin against a live market id from the markets list.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONFLICT","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","MARKET_LISTING_REFUSED","MARKET_STATE_INVALID","ORDER_PLACEMENT_IN_FLIGHT","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","RESERVATION_BUDGET_EXCEEDED","SETTLEMENT_LEG_BLOCKED","TRADE_BUST_APPROVAL_INVALID","VENUE_CONFIGURATION_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","MARKET_CALENDAR_INVALID","MARKET_FIELD_IMMUTABLE","ORDER_INTAKE_REJECTED","TRADE_BUST_REFUSED"]}},"required":["code"]}],"examples":[{"code":"MARKET_CALENDAR_INVALID","status":422,"message":"The market calendar cannot produce trading sessions","data":{"id":"DALP-12263","why":"The calendar names a timezone the platform cannot resolve, session times or an exception that never open a session, or a private continuous market schedules a pre-open.","fix":"Use an IANA timezone and session times with pre-open at or before open and open before close. Leave pre-open empty for every weekday and open exception on a private continuous market, then submit the calendar again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WALLET_VERIFICATION_THROTTLED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["DALP-0083","OIDC_MFA_UNAVAILABLE","ORDER_SIGNING_FAILED","SESSION_RESOLUTION_FAILED","VENUE_DEPLOYMENT_PENDING","WALLET_VERIFICATION_DEPENDENCY_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED","status":503,"message":"The organization's network settings are temporarily unavailable","data":{"id":"DALP-12307","why":"The platform could not load the organization's network configuration for this request.","fix":"Retry after a short backoff. If the problem continues, contact support with the X-Request-Id response header.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"x-dalp-auth":"session-or-api-key"}},"/api/v2/webhooks":{"get":{"tags":["Webhooks"],"operationId":"webhooks.list","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000},"displayName":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"url":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"systemId":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"defaultPayloadShape":{"anyOf":[{"type":"string","enum":["thin","fat"]},{"type":"object","properties":{"eq":{"type":"string","enum":["thin","fat"]},"ne":{"type":"string","enum":["thin","fat"]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"breakerState":{"anyOf":[{"type":"string","enum":["closed","half_open","open"]},{"type":"object","properties":{"eq":{"type":"string","enum":["closed","half_open","open"]},"ne":{"type":"string","enum":["closed","half_open","open"]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"disabled":{"anyOf":[{"type":"string","enum":["true","false"]},{"type":"object","properties":{"eq":{"type":"string","enum":["true","false"]},"ne":{"type":"string","enum":["true","false"]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]}},"additionalProperties":false}]},"createdAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"updatedAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false},{"name":"q","in":"query","schema":{"type":"string","minLength":1,"maxLength":1000},"required":false},{"name":"displayName","in":"query","schema":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"url","in":"query","schema":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"systemId","in":"query","schema":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"defaultPayloadShape","in":"query","schema":{"anyOf":[{"type":"string","enum":["thin","fat"]},{"type":"object","properties":{"eq":{"type":"string","enum":["thin","fat"]},"ne":{"type":"string","enum":["thin","fat"]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"breakerState","in":"query","schema":{"anyOf":[{"type":"string","enum":["closed","half_open","open"]},{"type":"object","properties":{"eq":{"type":"string","enum":["closed","half_open","open"]},"ne":{"type":"string","enum":["closed","half_open","open"]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"disabled","in":"query","schema":{"anyOf":[{"type":"string","enum":["true","false"]},{"type":"object","properties":{"eq":{"type":"string","enum":["true","false"]},"ne":{"type":"string","enum":["true","false"]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"createdAt","in":"query","schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"updatedAt","in":"query","schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true}],"responses":{"200":{"description":"One page of webhook endpoints for the calling organization. `meta.total` counts every matching endpoint rather than the ones on this page, and `links` carries relative URLs for the surrounding pages with `prev` and `next` set to null at the ends of the collection.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"tenantId":{"$ref":"#/components/schemas/OrganizationId"},"systemId":{"type":"string"},"url":{"type":"string"},"displayName":{"anyOf":[{"type":"string"},{"type":"null"}]},"subscriptions":{"type":"array","items":{"type":"string","pattern":"^(?:\\*|\\*\\.[a-z0-9]+(?:-[a-z0-9]+)*|[a-z0-9]+(?:-[a-z0-9]+)*(?:\\.[a-z0-9]+(?:-[a-z0-9]+)*)*\\.\\*|[a-z0-9]+(?:-[a-z0-9]+)*(?:\\.[a-z0-9]+(?:-[a-z0-9]+)*){2})$"}},"defaultPayloadShape":{"type":"string","enum":["thin","fat"]},"counterSignedReceipts":{"type":"boolean"},"breakerState":{"type":"string","enum":["closed","half_open","open"]},"disabledAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"disabledReason":{"anyOf":[{"type":"string","minLength":1,"maxLength":500},{"type":"null"}]},"fatEventsAcknowledgment":{"anyOf":[{"type":"object","properties":{"acknowledgedAt":{"$ref":"#/components/schemas/TimestampEncoded"},"acknowledgedByUserId":{"$ref":"#/components/schemas/UserId"},"fieldsAcknowledged":{"type":"array","items":{"type":"string"}}},"required":["acknowledgedAt","acknowledgedByUserId","fieldsAcknowledged"],"additionalProperties":false},{"type":"null"}]},"secret":{"type":"object","properties":{"activeVersion":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"previousVersion":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"previousRevokesAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"lastUsedAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]}},"required":["activeVersion","previousVersion","previousRevokesAt","lastUsedAt"],"additionalProperties":false},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"},"createdByUserId":{"anyOf":[{"$ref":"#/components/schemas/UserId"},{"type":"null"}]}},"required":["id","tenantId","systemId","url","displayName","subscriptions","defaultPayloadShape","counterSignedReceipts","breakerState","disabledAt","disabledReason","fatEventsAcknowledgment","secret","createdAt","updatedAt","createdByUserId"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0},"facets":{"type":"object","additionalProperties":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"count":{"type":"integer","minimum":0}},"required":["value","count"],"additionalProperties":false}}}},"required":["total"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"},"first":{"type":"string"},"prev":{"anyOf":[{"type":"string"},{"type":"null"}]},"next":{"anyOf":[{"type":"string"},{"type":"null"}]},"last":{"type":"string"}},"required":["self","first","prev","next","last"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"01934567-89ab-7def-8123-456789abcdef","tenantId":"org_northwind_coffee_treasury","systemId":"sys_northwind_mainnet","url":"https://webhooks.northwind.example/settlement","displayName":"Northwind Coffee settlement","subscriptions":["*.final","*.retracted","*.recalled"],"defaultPayloadShape":"thin","counterSignedReceipts":false,"breakerState":"closed","disabledAt":null,"disabledReason":null,"fatEventsAcknowledgment":null,"secret":{"activeVersion":1,"previousVersion":null,"previousRevokesAt":null,"lastUsedAt":"2026-03-04T15:42:18.000Z"},"createdAt":"2026-02-11T09:14:07.000Z","updatedAt":"2026-03-04T15:42:18.000Z","createdByUserId":"user_northwind_ops"}],"meta":{"total":1},"links":{"self":"/v2/webhooks?sort=createdAt&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/webhooks?sort=createdAt&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/webhooks?sort=createdAt&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","WEBHOOK_REPLAY_RANGE_TOO_LARGE","WEBHOOK_SUBSCRIPTION_INVALID","WEBHOOK_URL_PRIVATE_RANGE","WEBHOOK_URL_SCHEME_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","WEBHOOK_SIGNING_VERIFICATION_FAILED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","OFFCHAIN_ORGANIZATION_PERMISSION_REQUIRED","OFFCHAIN_USER_PERMISSION_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","WEBHOOK_DELIVERY_NOT_FOUND","WEBHOOK_ENDPOINT_NOT_FOUND","WEBHOOK_RECALL_NOT_AUTHORIZED","WEBHOOK_RECEIPT_NOT_FOUND","WEBHOOK_SYSTEM_SCOPE_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_CHAIN_SYSTEM_REQUIRED","status":404,"message":"The organization has no deployed system on chain 1","data":{"id":"DALP-9524","why":"The active organization has no deployed system on its default network.","fix":"Deploy the organization system before using system-scoped APIs.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","WEBHOOK_ENDPOINT_DISABLED","WEBHOOK_ENDPOINT_LIMIT_REACHED","WEBHOOK_PENDING_RETARGET_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","WEBHOOK_FAT_ACK_INCOMPLETE"]}},"required":["code"]}],"examples":[{"code":"WEBHOOK_FAT_ACK_INCOMPLETE","status":422,"message":"Fat-event acknowledgment is missing required field paths","data":{"id":"DALP-0517","why":"A fat endpoint delivers unredacted personal data for its active subscriptions. Every `<eventType>.<fieldPath>` that the thin shape would strip must be named in `fatEventsAcknowledgment.fieldsAcknowledged` for the resulting subscription set. The acknowledgment on this request (or the stored one, when the request omits it) does not cover that set, so the platform rejected the update rather than silently widening consent.","fix":"Resend the PATCH with `fatEventsAcknowledgment.fieldsAcknowledged` set to the full list returned by `getWebhookFatAcknowledgmentFields` for the subscriptions that will be active after the update. The Console's switch-to-fat dialog computes this list automatically.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["AUTHORIZATION_CHECK_FAILED","DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"AUTHORIZATION_CHECK_FAILED","status":503,"message":"The permission check could not be completed","data":{"id":"DALP-0536","why":"The authentication provider could not evaluate whether the caller holds the permission this route requires, so the platform refused the request rather than admitting or denying it on a guess.","fix":"Retry the request. If the failure continues, ask your operator to confirm the authentication provider is reachable.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the webhook endpoints registered for the calling organization, sorted by `createdAt` unless you name another sort field. Filter on display name, URL, system id, payload shape, circuit breaker state, disabled state, and creation or update time. Secret material never appears in this list.","summary":"List webhook endpoints","x-dalp-auth":"session-or-api-key"},"post":{"tags":["Webhooks"],"operationId":"webhooks.create","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The registered endpoint and a `self` link to its canonical URL. `data.signingSecret` is the cleartext secret on the first response.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"tenantId":{"$ref":"#/components/schemas/OrganizationId"},"systemId":{"type":"string"},"url":{"type":"string"},"displayName":{"anyOf":[{"type":"string"},{"type":"null"}]},"subscriptions":{"type":"array","items":{"type":"string","pattern":"^(?:\\*|\\*\\.[a-z0-9]+(?:-[a-z0-9]+)*|[a-z0-9]+(?:-[a-z0-9]+)*(?:\\.[a-z0-9]+(?:-[a-z0-9]+)*)*\\.\\*|[a-z0-9]+(?:-[a-z0-9]+)*(?:\\.[a-z0-9]+(?:-[a-z0-9]+)*){2})$"}},"defaultPayloadShape":{"type":"string","enum":["thin","fat"]},"counterSignedReceipts":{"type":"boolean"},"breakerState":{"type":"string","enum":["closed","half_open","open"]},"disabledAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"disabledReason":{"anyOf":[{"type":"string","minLength":1,"maxLength":500},{"type":"null"}]},"fatEventsAcknowledgment":{"anyOf":[{"type":"object","properties":{"acknowledgedAt":{"$ref":"#/components/schemas/TimestampEncoded"},"acknowledgedByUserId":{"$ref":"#/components/schemas/UserId"},"fieldsAcknowledged":{"type":"array","items":{"type":"string"}}},"required":["acknowledgedAt","acknowledgedByUserId","fieldsAcknowledged"],"additionalProperties":false},{"type":"null"}]},"secret":{"type":"object","properties":{"activeVersion":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"previousVersion":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"previousRevokesAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"lastUsedAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]}},"required":["activeVersion","previousVersion","previousRevokesAt","lastUsedAt"],"additionalProperties":false},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"},"createdByUserId":{"anyOf":[{"$ref":"#/components/schemas/UserId"},{"type":"null"}]},"signingSecret":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","tenantId","systemId","url","displayName","subscriptions","defaultPayloadShape","counterSignedReceipts","breakerState","disabledAt","disabledReason","fatEventsAcknowledgment","secret","createdAt","updatedAt","createdByUserId","signingSecret"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"01934567-89ab-7def-8123-456789abcdef","tenantId":"org_northwind_coffee_treasury","systemId":"sys_northwind_mainnet","url":"https://webhooks.northwind.example/settlement","displayName":"Northwind Coffee settlement","subscriptions":["*.final","*.retracted","*.recalled"],"defaultPayloadShape":"thin","counterSignedReceipts":false,"breakerState":"closed","disabledAt":null,"disabledReason":null,"fatEventsAcknowledgment":null,"secret":{"activeVersion":1,"previousVersion":null,"previousRevokesAt":null,"lastUsedAt":"2026-03-04T15:42:18.000Z"},"createdAt":"2026-02-11T09:14:07.000Z","updatedAt":"2026-03-04T15:42:18.000Z","createdByUserId":"user_northwind_ops","signingSecret":"dalp_whsk_sample_not_a_live_secret"},"links":{"self":"/v2/webhooks/01934567-89ab-7def-8123-456789abcdef"}}}}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WEBHOOK_REPLAY_RANGE_TOO_LARGE","WEBHOOK_SUBSCRIPTION_INVALID","WEBHOOK_URL_PRIVATE_RANGE","WEBHOOK_URL_SCHEME_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","WEBHOOK_SIGNING_VERIFICATION_FAILED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","OFFCHAIN_ORGANIZATION_PERMISSION_REQUIRED","OFFCHAIN_USER_PERMISSION_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","WEBHOOK_DELIVERY_NOT_FOUND","WEBHOOK_ENDPOINT_NOT_FOUND","WEBHOOK_RECALL_NOT_AUTHORIZED","WEBHOOK_RECEIPT_NOT_FOUND","WEBHOOK_SYSTEM_SCOPE_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_CHAIN_SYSTEM_REQUIRED","status":404,"message":"The organization has no deployed system on chain 1","data":{"id":"DALP-9524","why":"The active organization has no deployed system on its default network.","fix":"Deploy the organization system before using system-scoped APIs.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","WEBHOOK_CREATE_IN_PROGRESS","WEBHOOK_ENDPOINT_DISABLED","WEBHOOK_ENDPOINT_LIMIT_REACHED","WEBHOOK_IDEMPOTENCY_KEY_REUSED","WEBHOOK_PENDING_RETARGET_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","WEBHOOK_FAT_ACK_INCOMPLETE"]}},"required":["code"]}],"examples":[{"code":"WEBHOOK_FAT_ACK_INCOMPLETE","status":422,"message":"Fat-event acknowledgment is missing required field paths","data":{"id":"DALP-0517","why":"A fat endpoint delivers unredacted personal data for its active subscriptions. Every `<eventType>.<fieldPath>` that the thin shape would strip must be named in `fatEventsAcknowledgment.fieldsAcknowledged` for the resulting subscription set. The acknowledgment on this request (or the stored one, when the request omits it) does not cover that set, so the platform rejected the update rather than silently widening consent.","fix":"Resend the PATCH with `fatEventsAcknowledgment.fieldsAcknowledged` set to the full list returned by `getWebhookFatAcknowledgmentFields` for the subscriptions that will be active after the update. The Console's switch-to-fat dialog computes this list automatically.","retryable":false,"category":"client"}}]}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["AUTHORIZATION_CHECK_FAILED","DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"AUTHORIZATION_CHECK_FAILED","status":503,"message":"The permission check could not be completed","data":{"id":"DALP-0536","why":"The authentication provider could not evaluate whether the caller holds the permission this route requires, so the platform refused the request rather than admitting or denying it on a guess.","fix":"Retry the request. If the failure continues, ask your operator to confirm the authentication provider is reachable.","retryable":true,"category":"dependency"}}]}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"Idempotency-Key":{"$ref":"#/components/headers/Idempotency-Key"},"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Registers a receiving URL and issues its first signing secret. The response carries `signingSecret` in cleartext, so record it now: a response that cannot carry the cleartext value again sets the field to `null`. A new endpoint defaults to the `thin` payload shape, which strips the personal data fields the platform tracks for each event type. A finished create returns 200. When the platform accepts the work and finishes it in the background, the response is 202 with a status URL.","summary":"Register a webhook endpoint","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"displayName":{"type":"string","minLength":1,"maxLength":200},"subscriptions":{"type":"array","items":{"type":"string","pattern":"^(?:\\*|\\*\\.[a-z0-9]+(?:-[a-z0-9]+)*|[a-z0-9]+(?:-[a-z0-9]+)*(?:\\.[a-z0-9]+(?:-[a-z0-9]+)*)*\\.\\*|[a-z0-9]+(?:-[a-z0-9]+)*(?:\\.[a-z0-9]+(?:-[a-z0-9]+)*){2})$"}},"defaultPayloadShape":{"type":"string","enum":["thin","fat"]},"counterSignedReceipts":{"type":"boolean"}},"required":["url"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/webhooks/{id}":{"get":{"tags":["Webhooks"],"operationId":"webhooks.read","parameters":[{"name":"id","in":"path","schema":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"required":true}],"responses":{"200":{"description":"The requested endpoint, with a `self` link to its canonical URL. Secret material never appears in this response.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"tenantId":{"$ref":"#/components/schemas/OrganizationId"},"systemId":{"type":"string"},"url":{"type":"string"},"displayName":{"anyOf":[{"type":"string"},{"type":"null"}]},"subscriptions":{"type":"array","items":{"type":"string","pattern":"^(?:\\*|\\*\\.[a-z0-9]+(?:-[a-z0-9]+)*|[a-z0-9]+(?:-[a-z0-9]+)*(?:\\.[a-z0-9]+(?:-[a-z0-9]+)*)*\\.\\*|[a-z0-9]+(?:-[a-z0-9]+)*(?:\\.[a-z0-9]+(?:-[a-z0-9]+)*){2})$"}},"defaultPayloadShape":{"type":"string","enum":["thin","fat"]},"counterSignedReceipts":{"type":"boolean"},"breakerState":{"type":"string","enum":["closed","half_open","open"]},"disabledAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"disabledReason":{"anyOf":[{"type":"string","minLength":1,"maxLength":500},{"type":"null"}]},"fatEventsAcknowledgment":{"anyOf":[{"type":"object","properties":{"acknowledgedAt":{"$ref":"#/components/schemas/TimestampEncoded"},"acknowledgedByUserId":{"$ref":"#/components/schemas/UserId"},"fieldsAcknowledged":{"type":"array","items":{"type":"string"}}},"required":["acknowledgedAt","acknowledgedByUserId","fieldsAcknowledged"],"additionalProperties":false},{"type":"null"}]},"secret":{"type":"object","properties":{"activeVersion":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"previousVersion":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"previousRevokesAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"lastUsedAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]}},"required":["activeVersion","previousVersion","previousRevokesAt","lastUsedAt"],"additionalProperties":false},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"},"createdByUserId":{"anyOf":[{"$ref":"#/components/schemas/UserId"},{"type":"null"}]}},"required":["id","tenantId","systemId","url","displayName","subscriptions","defaultPayloadShape","counterSignedReceipts","breakerState","disabledAt","disabledReason","fatEventsAcknowledgment","secret","createdAt","updatedAt","createdByUserId"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"01934567-89ab-7def-8123-456789abcdef","tenantId":"org_northwind_coffee_treasury","systemId":"sys_northwind_mainnet","url":"https://webhooks.northwind.example/settlement","displayName":"Northwind Coffee settlement","subscriptions":["*.final","*.retracted","*.recalled"],"defaultPayloadShape":"thin","counterSignedReceipts":false,"breakerState":"closed","disabledAt":null,"disabledReason":null,"fatEventsAcknowledgment":null,"secret":{"activeVersion":1,"previousVersion":null,"previousRevokesAt":null,"lastUsedAt":"2026-03-04T15:42:18.000Z"},"createdAt":"2026-02-11T09:14:07.000Z","updatedAt":"2026-03-04T15:42:18.000Z","createdByUserId":"user_northwind_ops"},"links":{"self":"/v2/webhooks/01934567-89ab-7def-8123-456789abcdef"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WEBHOOK_REPLAY_RANGE_TOO_LARGE","WEBHOOK_SUBSCRIPTION_INVALID","WEBHOOK_URL_PRIVATE_RANGE","WEBHOOK_URL_SCHEME_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","WEBHOOK_SIGNING_VERIFICATION_FAILED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","OFFCHAIN_ORGANIZATION_PERMISSION_REQUIRED","OFFCHAIN_USER_PERMISSION_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","WEBHOOK_DELIVERY_NOT_FOUND","WEBHOOK_ENDPOINT_NOT_FOUND","WEBHOOK_RECALL_NOT_AUTHORIZED","WEBHOOK_RECEIPT_NOT_FOUND","WEBHOOK_SYSTEM_SCOPE_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_CHAIN_SYSTEM_REQUIRED","status":404,"message":"The organization has no deployed system on chain 1","data":{"id":"DALP-9524","why":"The active organization has no deployed system on its default network.","fix":"Deploy the organization system before using system-scoped APIs.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","WEBHOOK_ENDPOINT_DISABLED","WEBHOOK_ENDPOINT_LIMIT_REACHED","WEBHOOK_PENDING_RETARGET_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","WEBHOOK_FAT_ACK_INCOMPLETE"]}},"required":["code"]}],"examples":[{"code":"WEBHOOK_FAT_ACK_INCOMPLETE","status":422,"message":"Fat-event acknowledgment is missing required field paths","data":{"id":"DALP-0517","why":"A fat endpoint delivers unredacted personal data for its active subscriptions. Every `<eventType>.<fieldPath>` that the thin shape would strip must be named in `fatEventsAcknowledgment.fieldsAcknowledged` for the resulting subscription set. The acknowledgment on this request (or the stored one, when the request omits it) does not cover that set, so the platform rejected the update rather than silently widening consent.","fix":"Resend the PATCH with `fatEventsAcknowledgment.fieldsAcknowledged` set to the full list returned by `getWebhookFatAcknowledgmentFields` for the subscriptions that will be active after the update. The Console's switch-to-fat dialog computes this list automatically.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["AUTHORIZATION_CHECK_FAILED","DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"AUTHORIZATION_CHECK_FAILED","status":503,"message":"The permission check could not be completed","data":{"id":"DALP-0536","why":"The authentication provider could not evaluate whether the caller holds the permission this route requires, so the platform refused the request rather than admitting or denying it on a guess.","fix":"Retry the request. If the failure continues, ask your operator to confirm the authentication provider is reachable.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the configuration and current state of one endpoint: its subscription patterns, payload shape, circuit breaker state, signing secret versions, and the acknowledgement recorded for full payload delivery. Secret material never appears in the response. An identifier that belongs to another organization returns 404.","summary":"Read one webhook endpoint","x-dalp-auth":"session-or-api-key"},"patch":{"tags":["Webhooks"],"operationId":"webhooks.update","parameters":[{"name":"id","in":"path","schema":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"required":true},{"name":"acknowledgePending","in":"query","schema":{"type":"boolean","enum":[true]},"required":false},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The endpoint as the platform now holds it, with a `self` link to its canonical URL.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"tenantId":{"$ref":"#/components/schemas/OrganizationId"},"systemId":{"type":"string"},"url":{"type":"string"},"displayName":{"anyOf":[{"type":"string"},{"type":"null"}]},"subscriptions":{"type":"array","items":{"type":"string","pattern":"^(?:\\*|\\*\\.[a-z0-9]+(?:-[a-z0-9]+)*|[a-z0-9]+(?:-[a-z0-9]+)*(?:\\.[a-z0-9]+(?:-[a-z0-9]+)*)*\\.\\*|[a-z0-9]+(?:-[a-z0-9]+)*(?:\\.[a-z0-9]+(?:-[a-z0-9]+)*){2})$"}},"defaultPayloadShape":{"type":"string","enum":["thin","fat"]},"counterSignedReceipts":{"type":"boolean"},"breakerState":{"type":"string","enum":["closed","half_open","open"]},"disabledAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"disabledReason":{"anyOf":[{"type":"string","minLength":1,"maxLength":500},{"type":"null"}]},"fatEventsAcknowledgment":{"anyOf":[{"type":"object","properties":{"acknowledgedAt":{"$ref":"#/components/schemas/TimestampEncoded"},"acknowledgedByUserId":{"$ref":"#/components/schemas/UserId"},"fieldsAcknowledged":{"type":"array","items":{"type":"string"}}},"required":["acknowledgedAt","acknowledgedByUserId","fieldsAcknowledged"],"additionalProperties":false},{"type":"null"}]},"secret":{"type":"object","properties":{"activeVersion":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"previousVersion":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"previousRevokesAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"lastUsedAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]}},"required":["activeVersion","previousVersion","previousRevokesAt","lastUsedAt"],"additionalProperties":false},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"},"createdByUserId":{"anyOf":[{"$ref":"#/components/schemas/UserId"},{"type":"null"}]}},"required":["id","tenantId","systemId","url","displayName","subscriptions","defaultPayloadShape","counterSignedReceipts","breakerState","disabledAt","disabledReason","fatEventsAcknowledgment","secret","createdAt","updatedAt","createdByUserId"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"01934567-89ab-7def-8123-456789abcdef","tenantId":"org_northwind_coffee_treasury","systemId":"sys_northwind_mainnet","url":"https://webhooks.northwind.example/settlement","displayName":"Northwind Coffee settlement","subscriptions":["*.final","*.retracted","*.recalled"],"defaultPayloadShape":"thin","counterSignedReceipts":false,"breakerState":"closed","disabledAt":null,"disabledReason":null,"fatEventsAcknowledgment":null,"secret":{"activeVersion":1,"previousVersion":null,"previousRevokesAt":null,"lastUsedAt":"2026-03-04T15:42:18.000Z"},"createdAt":"2026-02-11T09:14:07.000Z","updatedAt":"2026-03-04T15:42:18.000Z","createdByUserId":"user_northwind_ops"},"links":{"self":"/v2/webhooks/01934567-89ab-7def-8123-456789abcdef"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WEBHOOK_REPLAY_RANGE_TOO_LARGE","WEBHOOK_SUBSCRIPTION_INVALID","WEBHOOK_URL_PRIVATE_RANGE","WEBHOOK_URL_SCHEME_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","WEBHOOK_SIGNING_VERIFICATION_FAILED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","OFFCHAIN_ORGANIZATION_PERMISSION_REQUIRED","OFFCHAIN_USER_PERMISSION_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","WEBHOOK_DELIVERY_NOT_FOUND","WEBHOOK_ENDPOINT_NOT_FOUND","WEBHOOK_RECALL_NOT_AUTHORIZED","WEBHOOK_RECEIPT_NOT_FOUND","WEBHOOK_SYSTEM_SCOPE_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_CHAIN_SYSTEM_REQUIRED","status":404,"message":"The organization has no deployed system on chain 1","data":{"id":"DALP-9524","why":"The active organization has no deployed system on its default network.","fix":"Deploy the organization system before using system-scoped APIs.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","WEBHOOK_ENDPOINT_DISABLED","WEBHOOK_ENDPOINT_LIMIT_REACHED","WEBHOOK_PENDING_RETARGET_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","WEBHOOK_FAT_ACK_INCOMPLETE"]}},"required":["code"]}],"examples":[{"code":"WEBHOOK_FAT_ACK_INCOMPLETE","status":422,"message":"Fat-event acknowledgment is missing required field paths","data":{"id":"DALP-0517","why":"A fat endpoint delivers unredacted personal data for its active subscriptions. Every `<eventType>.<fieldPath>` that the thin shape would strip must be named in `fatEventsAcknowledgment.fieldsAcknowledged` for the resulting subscription set. The acknowledgment on this request (or the stored one, when the request omits it) does not cover that set, so the platform rejected the update rather than silently widening consent.","fix":"Resend the PATCH with `fatEventsAcknowledgment.fieldsAcknowledged` set to the full list returned by `getWebhookFatAcknowledgmentFields` for the subscriptions that will be active after the update. The Console's switch-to-fat dialog computes this list automatically.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["AUTHORIZATION_CHECK_FAILED","DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"AUTHORIZATION_CHECK_FAILED","status":503,"message":"The permission check could not be completed","data":{"id":"DALP-0536","why":"The authentication provider could not evaluate whether the caller holds the permission this route requires, so the platform refused the request rather than admitting or denying it on a guess.","fix":"Retry the request. If the failure continues, ask your operator to confirm the authentication provider is reachable.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Changes endpoint configuration. Every body field is optional and the platform leaves omitted fields untouched. A resulting `fat` payload shape requires `fatEventsAcknowledgment` covering every personal data field implied by the resulting subscriptions, including subscriptions-only updates on an already-fat endpoint. Set `acknowledgePending=true` to consent to the change reaching deliveries that are already queued. A finished update returns 200. When the platform accepts the work and finishes it in the background, the response is 202 with a status URL.","summary":"Update a webhook endpoint","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"displayName":{"anyOf":[{"type":"string","minLength":1,"maxLength":200},{"type":"null"}]},"subscriptions":{"type":"array","items":{"type":"string","pattern":"^(?:\\*|\\*\\.[a-z0-9]+(?:-[a-z0-9]+)*|[a-z0-9]+(?:-[a-z0-9]+)*(?:\\.[a-z0-9]+(?:-[a-z0-9]+)*)*\\.\\*|[a-z0-9]+(?:-[a-z0-9]+)*(?:\\.[a-z0-9]+(?:-[a-z0-9]+)*){2})$"}},"defaultPayloadShape":{"type":"string","enum":["thin","fat"]},"counterSignedReceipts":{"type":"boolean"},"disabled":{"type":"boolean"},"disabledReason":{"anyOf":[{"type":"string","minLength":1,"maxLength":500},{"type":"null"}]},"fatEventsAcknowledgment":{"type":"object","properties":{"acknowledgedAt":{"$ref":"#/components/schemas/TimestampEncoded"},"acknowledgedByUserId":{"$ref":"#/components/schemas/UserId"},"fieldsAcknowledged":{"type":"array","items":{"type":"string"}}},"required":["acknowledgedAt","acknowledgedByUserId","fieldsAcknowledged"],"additionalProperties":false}},"additionalProperties":false}}},"required":false},"x-dalp-auth":"session-or-api-key"},"delete":{"tags":["Webhooks"],"operationId":"webhooks.delete","parameters":[{"name":"id","in":"path","schema":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The endpoint is gone. `data` is null because no resource remains to return.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"null"}},"required":["data"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":null}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WEBHOOK_REPLAY_RANGE_TOO_LARGE","WEBHOOK_SUBSCRIPTION_INVALID","WEBHOOK_URL_PRIVATE_RANGE","WEBHOOK_URL_SCHEME_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","WEBHOOK_SIGNING_VERIFICATION_FAILED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","OFFCHAIN_ORGANIZATION_PERMISSION_REQUIRED","OFFCHAIN_USER_PERMISSION_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","WEBHOOK_DELIVERY_NOT_FOUND","WEBHOOK_ENDPOINT_NOT_FOUND","WEBHOOK_RECALL_NOT_AUTHORIZED","WEBHOOK_RECEIPT_NOT_FOUND","WEBHOOK_SYSTEM_SCOPE_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_CHAIN_SYSTEM_REQUIRED","status":404,"message":"The organization has no deployed system on chain 1","data":{"id":"DALP-9524","why":"The active organization has no deployed system on its default network.","fix":"Deploy the organization system before using system-scoped APIs.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","WEBHOOK_ENDPOINT_DISABLED","WEBHOOK_ENDPOINT_LIMIT_REACHED","WEBHOOK_PENDING_RETARGET_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","WEBHOOK_FAT_ACK_INCOMPLETE"]}},"required":["code"]}],"examples":[{"code":"WEBHOOK_FAT_ACK_INCOMPLETE","status":422,"message":"Fat-event acknowledgment is missing required field paths","data":{"id":"DALP-0517","why":"A fat endpoint delivers unredacted personal data for its active subscriptions. Every `<eventType>.<fieldPath>` that the thin shape would strip must be named in `fatEventsAcknowledgment.fieldsAcknowledged` for the resulting subscription set. The acknowledgment on this request (or the stored one, when the request omits it) does not cover that set, so the platform rejected the update rather than silently widening consent.","fix":"Resend the PATCH with `fatEventsAcknowledgment.fieldsAcknowledged` set to the full list returned by `getWebhookFatAcknowledgmentFields` for the subscriptions that will be active after the update. The Console's switch-to-fat dialog computes this list automatically.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["AUTHORIZATION_CHECK_FAILED","DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"AUTHORIZATION_CHECK_FAILED","status":503,"message":"The permission check could not be completed","data":{"id":"DALP-0536","why":"The authentication provider could not evaluate whether the caller holds the permission this route requires, so the platform refused the request rather than admitting or denying it on a guess.","fix":"Retry the request. If the failure continues, ask your operator to confirm the authentication provider is reachable.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Removes the endpoint. The success body carries `data` set to `null` because no resource remains. A finished delete returns 200. When the platform accepts the work and finishes it in the background, the response is 202 with a status URL.","summary":"Delete a webhook endpoint","x-dalp-auth":"session-or-api-key"}},"/api/v2/webhooks/{id}/test-events":{"post":{"tags":["Webhooks"],"operationId":"webhooks.sendTestEvent","parameters":[{"name":"id","in":"path","schema":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The queued test event and its delivery identifier, with a `self` link to the endpoint.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"evtId":{"type":"string","pattern":"^evt_[a-zA-Z0-9]+$"},"deliveryId":{"anyOf":[{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},{"type":"null"}]},"deliveryState":{"type":"string","enum":["queued"]},"isTest":{"type":"boolean","enum":[true]}},"required":["evtId","deliveryId","deliveryState","isTest"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"evtId":"evt_7d1a5c93b0e24f68","deliveryId":"01934567-89ab-7def-8123-456789abcde0","deliveryState":"queued","isTest":true},"links":{"self":"/v2/webhooks/01934567-89ab-7def-8123-456789abcdef"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WEBHOOK_REPLAY_RANGE_TOO_LARGE","WEBHOOK_SUBSCRIPTION_INVALID","WEBHOOK_URL_PRIVATE_RANGE","WEBHOOK_URL_SCHEME_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","WEBHOOK_SIGNING_VERIFICATION_FAILED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","OFFCHAIN_ORGANIZATION_PERMISSION_REQUIRED","OFFCHAIN_USER_PERMISSION_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","WEBHOOK_DELIVERY_NOT_FOUND","WEBHOOK_ENDPOINT_NOT_FOUND","WEBHOOK_RECALL_NOT_AUTHORIZED","WEBHOOK_RECEIPT_NOT_FOUND","WEBHOOK_SYSTEM_SCOPE_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_CHAIN_SYSTEM_REQUIRED","status":404,"message":"The organization has no deployed system on chain 1","data":{"id":"DALP-9524","why":"The active organization has no deployed system on its default network.","fix":"Deploy the organization system before using system-scoped APIs.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","WEBHOOK_ENDPOINT_DISABLED","WEBHOOK_ENDPOINT_LIMIT_REACHED","WEBHOOK_PENDING_RETARGET_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","WEBHOOK_FAT_ACK_INCOMPLETE"]}},"required":["code"]}],"examples":[{"code":"WEBHOOK_FAT_ACK_INCOMPLETE","status":422,"message":"Fat-event acknowledgment is missing required field paths","data":{"id":"DALP-0517","why":"A fat endpoint delivers unredacted personal data for its active subscriptions. Every `<eventType>.<fieldPath>` that the thin shape would strip must be named in `fatEventsAcknowledgment.fieldsAcknowledged` for the resulting subscription set. The acknowledgment on this request (or the stored one, when the request omits it) does not cover that set, so the platform rejected the update rather than silently widening consent.","fix":"Resend the PATCH with `fatEventsAcknowledgment.fieldsAcknowledged` set to the full list returned by `getWebhookFatAcknowledgmentFields` for the subscriptions that will be active after the update. The Console's switch-to-fat dialog computes this list automatically.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WEBHOOK_REPLAY_RATE_LIMITED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["AUTHORIZATION_CHECK_FAILED","DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"AUTHORIZATION_CHECK_FAILED","status":503,"message":"The permission check could not be completed","data":{"id":"DALP-0536","why":"The authentication provider could not evaluate whether the caller holds the permission this route requires, so the platform refused the request rather than admitting or denying it on a guess.","fix":"Retry the request. If the failure continues, ask your operator to confirm the authentication provider is reachable.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Emits one event to the endpoint so you can confirm the receiving URL and your signature verification. The event type defaults to `webhook.test.final`. The resulting delivery row carries `isTest` set to `true`, so the delivery statistics leave it out. A finished emit returns 200. When the platform accepts the work and finishes it in the background, the response is 202 with a status URL.","summary":"Send a test event to an endpoint","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"eventType":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false}}},"required":false},"x-dalp-auth":"session-or-api-key"}},"/api/v2/webhooks/{id}/deliveries":{"get":{"tags":["Webhooks"],"operationId":"webhooks.listDeliveries","parameters":[{"name":"id","in":"path","schema":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"required":true},{"name":"filter","in":"query","schema":{"type":"object","properties":{"eventType":{"anyOf":[{"type":"string"},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"status":{"anyOf":[{"type":"string","enum":["pending","delivered","failed"]},{"type":"object","properties":{"eq":{"type":"string","enum":["pending","delivered","failed"]},"ne":{"type":"string","enum":["pending","delivered","failed"]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"failureClass":{"anyOf":[{"type":"string","enum":["DNS_FAIL","TLS_FAIL","CONNECT_TIMEOUT","READ_TIMEOUT","HTTP_4XX","HTTP_4XX_RETRYABLE","HTTP_5XX","INVALID_RESPONSE","RECEIPT_TIMEOUT","RECEIPT_INVALID_SIG","RECEIPT_HASH_MISMATCH"]},{"type":"object","properties":{"eq":{"type":"string","enum":["DNS_FAIL","TLS_FAIL","CONNECT_TIMEOUT","READ_TIMEOUT","HTTP_4XX","HTTP_4XX_RETRYABLE","HTTP_5XX","INVALID_RESPONSE","RECEIPT_TIMEOUT","RECEIPT_INVALID_SIG","RECEIPT_HASH_MISMATCH"]},"ne":{"type":"string","enum":["DNS_FAIL","TLS_FAIL","CONNECT_TIMEOUT","READ_TIMEOUT","HTTP_4XX","HTTP_4XX_RETRYABLE","HTTP_5XX","INVALID_RESPONSE","RECEIPT_TIMEOUT","RECEIPT_INVALID_SIG","RECEIPT_HASH_MISMATCH"]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"responseStatus":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"string"}]},{"type":"object","properties":{"eq":{"anyOf":[{"type":"number"},{"type":"string"}]},"ne":{"anyOf":[{"type":"number"},{"type":"string"}]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"anyOf":[{"type":"number"},{"type":"string"}]},"gte":{"anyOf":[{"type":"number"},{"type":"string"}]},"lt":{"anyOf":[{"type":"number"},{"type":"string"}]},"lte":{"anyOf":[{"type":"number"},{"type":"string"}]},"between":{"type":"string","maxLength":64}},"additionalProperties":false}]},"isReplay":{"anyOf":[{"type":"string","enum":["true","false"]},{"type":"object","properties":{"eq":{"type":"string","enum":["true","false"]},"ne":{"type":"string","enum":["true","false"]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]}},"additionalProperties":false}]},"isTest":{"anyOf":[{"type":"string","enum":["true","false"]},{"type":"object","properties":{"eq":{"type":"string","enum":["true","false"]},"ne":{"type":"string","enum":["true","false"]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]}},"additionalProperties":false}]},"attemptedAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"deliveredAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false},{"name":"eventType","in":"query","schema":{"anyOf":[{"type":"string"},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"status","in":"query","schema":{"anyOf":[{"type":"string","enum":["pending","delivered","failed"]},{"type":"object","properties":{"eq":{"type":"string","enum":["pending","delivered","failed"]},"ne":{"type":"string","enum":["pending","delivered","failed"]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"failureClass","in":"query","schema":{"anyOf":[{"type":"string","enum":["DNS_FAIL","TLS_FAIL","CONNECT_TIMEOUT","READ_TIMEOUT","HTTP_4XX","HTTP_4XX_RETRYABLE","HTTP_5XX","INVALID_RESPONSE","RECEIPT_TIMEOUT","RECEIPT_INVALID_SIG","RECEIPT_HASH_MISMATCH"]},{"type":"object","properties":{"eq":{"type":"string","enum":["DNS_FAIL","TLS_FAIL","CONNECT_TIMEOUT","READ_TIMEOUT","HTTP_4XX","HTTP_4XX_RETRYABLE","HTTP_5XX","INVALID_RESPONSE","RECEIPT_TIMEOUT","RECEIPT_INVALID_SIG","RECEIPT_HASH_MISMATCH"]},"ne":{"type":"string","enum":["DNS_FAIL","TLS_FAIL","CONNECT_TIMEOUT","READ_TIMEOUT","HTTP_4XX","HTTP_4XX_RETRYABLE","HTTP_5XX","INVALID_RESPONSE","RECEIPT_TIMEOUT","RECEIPT_INVALID_SIG","RECEIPT_HASH_MISMATCH"]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"responseStatus","in":"query","schema":{"anyOf":[{"anyOf":[{"type":"number"},{"type":"string"}]},{"type":"object","properties":{"eq":{"anyOf":[{"type":"number"},{"type":"string"}]},"ne":{"anyOf":[{"type":"number"},{"type":"string"}]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"anyOf":[{"type":"number"},{"type":"string"}]},"gte":{"anyOf":[{"type":"number"},{"type":"string"}]},"lt":{"anyOf":[{"type":"number"},{"type":"string"}]},"lte":{"anyOf":[{"type":"number"},{"type":"string"}]},"between":{"type":"string","maxLength":64}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"isReplay","in":"query","schema":{"anyOf":[{"type":"string","enum":["true","false"]},{"type":"object","properties":{"eq":{"type":"string","enum":["true","false"]},"ne":{"type":"string","enum":["true","false"]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"isTest","in":"query","schema":{"anyOf":[{"type":"string","enum":["true","false"]},{"type":"object","properties":{"eq":{"type":"string","enum":["true","false"]},"ne":{"type":"string","enum":["true","false"]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"attemptedAt","in":"query","schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"deliveredAt","in":"query","schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true}],"responses":{"200":{"description":"One page of delivery attempts for the endpoint. Test and replay rows stay in this list; delivery statistics leave them out. `meta.total` counts every matching attempt rather than the ones on this page.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"eventOutboxId":{"type":"string"},"endpointId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"tenantId":{"$ref":"#/components/schemas/OrganizationId"},"evtId":{"type":"string","pattern":"^evt_[a-zA-Z0-9]+$"},"eventType":{"type":"string"},"attemptN":{"type":"integer","minimum":0},"attemptedAt":{"$ref":"#/components/schemas/TimestampEncoded"},"durationMs":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"nextRetryAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"responseStatus":{"anyOf":[{"type":"integer"},{"type":"null"}]},"failureClass":{"anyOf":[{"type":"string","enum":["DNS_FAIL","TLS_FAIL","CONNECT_TIMEOUT","READ_TIMEOUT","HTTP_4XX","HTTP_4XX_RETRYABLE","HTTP_5XX","INVALID_RESPONSE","RECEIPT_TIMEOUT","RECEIPT_INVALID_SIG","RECEIPT_HASH_MISMATCH"]},{"type":"null"}]},"status":{"type":"string","enum":["pending","delivered","failed"]},"deliveredAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"isReplay":{"type":"boolean"},"isTest":{"type":"boolean"},"traceId":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","eventOutboxId","endpointId","tenantId","evtId","eventType","attemptN","attemptedAt","responseStatus","failureClass","status","deliveredAt","isReplay","isTest","traceId"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0},"facets":{"type":"object","additionalProperties":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"count":{"type":"integer","minimum":0}},"required":["value","count"],"additionalProperties":false}}}},"required":["total"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"},"first":{"type":"string"},"prev":{"anyOf":[{"type":"string"},{"type":"null"}]},"next":{"anyOf":[{"type":"string"},{"type":"null"}]},"last":{"type":"string"}},"required":["self","first","prev","next","last"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"01934567-89ab-7def-8123-456789abcde0","eventOutboxId":"01934567-89ab-7def-8123-456789abcdef","endpointId":"01934567-89ab-7def-8123-456789abcdef","tenantId":"org_northwind_coffee_treasury","evtId":"evt_7d1a5c93b0e24f68","eventType":"token.transfer.final","attemptN":1,"attemptedAt":"2026-03-04T15:43:02.000Z","durationMs":1184,"nextRetryAt":null,"responseStatus":200,"failureClass":null,"status":"delivered","deliveredAt":"2026-03-04T15:43:03.184Z","isReplay":false,"isTest":false,"traceId":"trace_northwind_settlement_1"}],"meta":{"total":1,"facets":{}},"links":{"self":"/v2/webhooks/01934567-89ab-7def-8123-456789abcdef/deliveries?sort=attemptedAt&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/webhooks/01934567-89ab-7def-8123-456789abcdef/deliveries?sort=attemptedAt&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/webhooks/01934567-89ab-7def-8123-456789abcdef/deliveries?sort=attemptedAt&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","WEBHOOK_REPLAY_RANGE_TOO_LARGE","WEBHOOK_SUBSCRIPTION_INVALID","WEBHOOK_URL_PRIVATE_RANGE","WEBHOOK_URL_SCHEME_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","WEBHOOK_SIGNING_VERIFICATION_FAILED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","OFFCHAIN_ORGANIZATION_PERMISSION_REQUIRED","OFFCHAIN_USER_PERMISSION_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","WEBHOOK_DELIVERY_NOT_FOUND","WEBHOOK_ENDPOINT_NOT_FOUND","WEBHOOK_RECALL_NOT_AUTHORIZED","WEBHOOK_RECEIPT_NOT_FOUND","WEBHOOK_SYSTEM_SCOPE_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_CHAIN_SYSTEM_REQUIRED","status":404,"message":"The organization has no deployed system on chain 1","data":{"id":"DALP-9524","why":"The active organization has no deployed system on its default network.","fix":"Deploy the organization system before using system-scoped APIs.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","WEBHOOK_ENDPOINT_DISABLED","WEBHOOK_ENDPOINT_LIMIT_REACHED","WEBHOOK_PENDING_RETARGET_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","WEBHOOK_FAT_ACK_INCOMPLETE"]}},"required":["code"]}],"examples":[{"code":"WEBHOOK_FAT_ACK_INCOMPLETE","status":422,"message":"Fat-event acknowledgment is missing required field paths","data":{"id":"DALP-0517","why":"A fat endpoint delivers unredacted personal data for its active subscriptions. Every `<eventType>.<fieldPath>` that the thin shape would strip must be named in `fatEventsAcknowledgment.fieldsAcknowledged` for the resulting subscription set. The acknowledgment on this request (or the stored one, when the request omits it) does not cover that set, so the platform rejected the update rather than silently widening consent.","fix":"Resend the PATCH with `fatEventsAcknowledgment.fieldsAcknowledged` set to the full list returned by `getWebhookFatAcknowledgmentFields` for the subscriptions that will be active after the update. The Console's switch-to-fat dialog computes this list automatically.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["AUTHORIZATION_CHECK_FAILED","DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"AUTHORIZATION_CHECK_FAILED","status":503,"message":"The permission check could not be completed","data":{"id":"DALP-0536","why":"The authentication provider could not evaluate whether the caller holds the permission this route requires, so the platform refused the request rather than admitting or denying it on a guess.","fix":"Retry the request. If the failure continues, ask your operator to confirm the authentication provider is reachable.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns one row per delivery attempt for the endpoint, sorted by `attemptedAt` unless you name another sort field. Filter on delivery status, failure class, HTTP response status, and whether the attempt was a replay or a test. Test and replay rows stay in this list even though statistics leave them out.","summary":"List delivery attempts for an endpoint","x-dalp-auth":"session-or-api-key"}},"/api/v2/webhooks/{id}/deliveries/{deliveryId}":{"get":{"tags":["Webhooks"],"operationId":"webhooks.readDelivery","parameters":[{"name":"id","in":"path","schema":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"required":true},{"name":"deliveryId","in":"path","schema":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"required":true}],"responses":{"200":{"description":"The requested delivery attempt, with a `self` link to its canonical URL. Use it to reproduce a signature mismatch or to see what the receiver replied.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"eventOutboxId":{"type":"string"},"endpointId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"tenantId":{"$ref":"#/components/schemas/OrganizationId"},"evtId":{"type":"string","pattern":"^evt_[a-zA-Z0-9]+$"},"eventType":{"type":"string"},"attemptN":{"type":"integer","minimum":0},"attemptedAt":{"$ref":"#/components/schemas/TimestampEncoded"},"durationMs":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"nextRetryAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"responseStatus":{"anyOf":[{"type":"integer"},{"type":"null"}]},"failureClass":{"anyOf":[{"type":"string","enum":["DNS_FAIL","TLS_FAIL","CONNECT_TIMEOUT","READ_TIMEOUT","HTTP_4XX","HTTP_4XX_RETRYABLE","HTTP_5XX","INVALID_RESPONSE","RECEIPT_TIMEOUT","RECEIPT_INVALID_SIG","RECEIPT_HASH_MISMATCH"]},{"type":"null"}]},"status":{"type":"string","enum":["pending","delivered","failed"]},"deliveredAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"isReplay":{"type":"boolean"},"isTest":{"type":"boolean"},"traceId":{"anyOf":[{"type":"string"},{"type":"null"}]},"request":{"type":"object","properties":{"payload":{"type":"object"},"signedHeaders":{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"signedStringPreview":{"type":"string"}},"required":["payload","signedHeaders","signedStringPreview"],"additionalProperties":false},"response":{"type":"object","properties":{"headers":{"anyOf":[{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},{"type":"null"}]},"body":{"anyOf":[{"type":"string"},{"type":"null"}]},"timings":{"type":"object","properties":{"dnsMs":{"anyOf":[{"type":"integer"},{"type":"null"}]},"tlsMs":{"anyOf":[{"type":"integer"},{"type":"null"}]},"connectMs":{"anyOf":[{"type":"integer"},{"type":"null"}]},"ttfbMs":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"required":["dnsMs","tlsMs","connectMs","ttfbMs"],"additionalProperties":false}},"required":["headers","body","timings"],"additionalProperties":false}},"required":["id","eventOutboxId","endpointId","tenantId","evtId","eventType","attemptN","attemptedAt","responseStatus","failureClass","status","deliveredAt","isReplay","isTest","traceId","request","response"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"01934567-89ab-7def-8123-456789abcde0","eventOutboxId":"01934567-89ab-7def-8123-456789abcdef","endpointId":"01934567-89ab-7def-8123-456789abcdef","tenantId":"org_northwind_coffee_treasury","evtId":"evt_7d1a5c93b0e24f68","eventType":"token.transfer.final","attemptN":1,"attemptedAt":"2026-03-04T15:43:02.000Z","durationMs":1184,"nextRetryAt":null,"responseStatus":200,"failureClass":null,"status":"delivered","deliveredAt":"2026-03-04T15:43:03.184Z","isReplay":false,"isTest":false,"traceId":"trace_northwind_settlement_1","request":{"payload":{},"signedHeaders":{},"signedStringPreview":"t=1741102982.evt_northwind_settlement_20260304"},"response":{"headers":{},"body":"{\"received\":true}","timings":{"dnsMs":12,"tlsMs":48,"connectMs":31,"ttfbMs":86}}},"links":{"self":"/v2/webhooks/01934567-89ab-7def-8123-456789abcdef/deliveries/01934567-89ab-7def-8123-456789abcde0"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WEBHOOK_REPLAY_RANGE_TOO_LARGE","WEBHOOK_SUBSCRIPTION_INVALID","WEBHOOK_URL_PRIVATE_RANGE","WEBHOOK_URL_SCHEME_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","WEBHOOK_SIGNING_VERIFICATION_FAILED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","OFFCHAIN_ORGANIZATION_PERMISSION_REQUIRED","OFFCHAIN_USER_PERMISSION_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","WEBHOOK_DELIVERY_NOT_FOUND","WEBHOOK_ENDPOINT_NOT_FOUND","WEBHOOK_RECALL_NOT_AUTHORIZED","WEBHOOK_RECEIPT_NOT_FOUND","WEBHOOK_SYSTEM_SCOPE_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_CHAIN_SYSTEM_REQUIRED","status":404,"message":"The organization has no deployed system on chain 1","data":{"id":"DALP-9524","why":"The active organization has no deployed system on its default network.","fix":"Deploy the organization system before using system-scoped APIs.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","WEBHOOK_ENDPOINT_DISABLED","WEBHOOK_ENDPOINT_LIMIT_REACHED","WEBHOOK_PENDING_RETARGET_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","WEBHOOK_FAT_ACK_INCOMPLETE"]}},"required":["code"]}],"examples":[{"code":"WEBHOOK_FAT_ACK_INCOMPLETE","status":422,"message":"Fat-event acknowledgment is missing required field paths","data":{"id":"DALP-0517","why":"A fat endpoint delivers unredacted personal data for its active subscriptions. Every `<eventType>.<fieldPath>` that the thin shape would strip must be named in `fatEventsAcknowledgment.fieldsAcknowledged` for the resulting subscription set. The acknowledgment on this request (or the stored one, when the request omits it) does not cover that set, so the platform rejected the update rather than silently widening consent.","fix":"Resend the PATCH with `fatEventsAcknowledgment.fieldsAcknowledged` set to the full list returned by `getWebhookFatAcknowledgmentFields` for the subscriptions that will be active after the update. The Console's switch-to-fat dialog computes this list automatically.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["AUTHORIZATION_CHECK_FAILED","DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"AUTHORIZATION_CHECK_FAILED","status":503,"message":"The permission check could not be completed","data":{"id":"DALP-0536","why":"The authentication provider could not evaluate whether the caller holds the permission this route requires, so the platform refused the request rather than admitting or denying it on a guess.","fix":"Retry the request. If the failure continues, ask your operator to confirm the authentication provider is reachable.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the full record of one attempt: the payload and signed headers the platform sent, a preview of the string it signed, the headers and body the receiver returned, and the connection timings the platform measured. Use it to reproduce a signature mismatch or to see what the receiver replied.","summary":"Read one delivery attempt","x-dalp-auth":"session-or-api-key"}},"/api/v2/webhooks/{id}/deliveries/{deliveryId}/retries":{"post":{"tags":["Webhooks"],"operationId":"webhooks.retryDelivery","parameters":[{"name":"id","in":"path","schema":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"required":true},{"name":"deliveryId","in":"path","schema":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"Whether the platform scheduled the new attempt, with a `self` link to the original delivery.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"deliveryId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"scheduled":{"type":"boolean"}},"required":["deliveryId","scheduled"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"deliveryId":"01934567-89ab-7def-8123-456789abcde0","scheduled":true},"links":{"self":"/v2/webhooks/01934567-89ab-7def-8123-456789abcdef/deliveries/01934567-89ab-7def-8123-456789abcde0"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WEBHOOK_REPLAY_RANGE_TOO_LARGE","WEBHOOK_SUBSCRIPTION_INVALID","WEBHOOK_URL_PRIVATE_RANGE","WEBHOOK_URL_SCHEME_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","WEBHOOK_SIGNING_VERIFICATION_FAILED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","OFFCHAIN_ORGANIZATION_PERMISSION_REQUIRED","OFFCHAIN_USER_PERMISSION_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","WEBHOOK_DELIVERY_NOT_FOUND","WEBHOOK_ENDPOINT_NOT_FOUND","WEBHOOK_RECALL_NOT_AUTHORIZED","WEBHOOK_RECEIPT_NOT_FOUND","WEBHOOK_SYSTEM_SCOPE_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_CHAIN_SYSTEM_REQUIRED","status":404,"message":"The organization has no deployed system on chain 1","data":{"id":"DALP-9524","why":"The active organization has no deployed system on its default network.","fix":"Deploy the organization system before using system-scoped APIs.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","WEBHOOK_ENDPOINT_DISABLED","WEBHOOK_ENDPOINT_LIMIT_REACHED","WEBHOOK_PENDING_RETARGET_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","WEBHOOK_FAT_ACK_INCOMPLETE"]}},"required":["code"]}],"examples":[{"code":"WEBHOOK_FAT_ACK_INCOMPLETE","status":422,"message":"Fat-event acknowledgment is missing required field paths","data":{"id":"DALP-0517","why":"A fat endpoint delivers unredacted personal data for its active subscriptions. Every `<eventType>.<fieldPath>` that the thin shape would strip must be named in `fatEventsAcknowledgment.fieldsAcknowledged` for the resulting subscription set. The acknowledgment on this request (or the stored one, when the request omits it) does not cover that set, so the platform rejected the update rather than silently widening consent.","fix":"Resend the PATCH with `fatEventsAcknowledgment.fieldsAcknowledged` set to the full list returned by `getWebhookFatAcknowledgmentFields` for the subscriptions that will be active after the update. The Console's switch-to-fat dialog computes this list automatically.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["AUTHORIZATION_CHECK_FAILED","DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"AUTHORIZATION_CHECK_FAILED","status":503,"message":"The permission check could not be completed","data":{"id":"DALP-0536","why":"The authentication provider could not evaluate whether the caller holds the permission this route requires, so the platform refused the request rather than admitting or denying it on a guess.","fix":"Retry the request. If the failure continues, ask your operator to confirm the authentication provider is reachable.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Queues one more attempt for a delivery that already ran. The response reports whether the platform scheduled the new attempt. A finished schedule returns 200. When the platform accepts the work and finishes it in the background, the response is 202 with a status URL.","summary":"Retry a delivery attempt","x-dalp-auth":"session-or-api-key"}},"/api/v2/webhooks/{id}/replays":{"post":{"tags":["Webhooks"],"operationId":"webhooks.replay","parameters":[{"name":"id","in":"path","schema":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The replay id and how many events the platform enqueued, with a `self` link to the endpoint.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"replayId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"endpointId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"eventsEnqueued":{"type":"integer","minimum":0},"snapshotToBlock":{"anyOf":[{"$ref":"#/components/schemas/BlockHeightEncoded"},{"type":"null"}]}},"required":["replayId","endpointId","eventsEnqueued","snapshotToBlock"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"replayId":"01934567-89ab-7def-8123-456789abcde2","endpointId":"01934567-89ab-7def-8123-456789abcdef","eventsEnqueued":1,"snapshotToBlock":"18500120"},"links":{"self":"/v2/webhooks/01934567-89ab-7def-8123-456789abcdef"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WEBHOOK_REPLAY_RANGE_TOO_LARGE","WEBHOOK_SUBSCRIPTION_INVALID","WEBHOOK_URL_PRIVATE_RANGE","WEBHOOK_URL_SCHEME_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","WEBHOOK_SIGNING_VERIFICATION_FAILED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","OFFCHAIN_ORGANIZATION_PERMISSION_REQUIRED","OFFCHAIN_USER_PERMISSION_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","WEBHOOK_DELIVERY_NOT_FOUND","WEBHOOK_ENDPOINT_NOT_FOUND","WEBHOOK_RECALL_NOT_AUTHORIZED","WEBHOOK_RECEIPT_NOT_FOUND","WEBHOOK_SYSTEM_SCOPE_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_CHAIN_SYSTEM_REQUIRED","status":404,"message":"The organization has no deployed system on chain 1","data":{"id":"DALP-9524","why":"The active organization has no deployed system on its default network.","fix":"Deploy the organization system before using system-scoped APIs.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","WEBHOOK_ENDPOINT_DISABLED","WEBHOOK_ENDPOINT_LIMIT_REACHED","WEBHOOK_PENDING_RETARGET_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","WEBHOOK_FAT_ACK_INCOMPLETE"]}},"required":["code"]}],"examples":[{"code":"WEBHOOK_FAT_ACK_INCOMPLETE","status":422,"message":"Fat-event acknowledgment is missing required field paths","data":{"id":"DALP-0517","why":"A fat endpoint delivers unredacted personal data for its active subscriptions. Every `<eventType>.<fieldPath>` that the thin shape would strip must be named in `fatEventsAcknowledgment.fieldsAcknowledged` for the resulting subscription set. The acknowledgment on this request (or the stored one, when the request omits it) does not cover that set, so the platform rejected the update rather than silently widening consent.","fix":"Resend the PATCH with `fatEventsAcknowledgment.fieldsAcknowledged` set to the full list returned by `getWebhookFatAcknowledgmentFields` for the subscriptions that will be active after the update. The Console's switch-to-fat dialog computes this list automatically.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["WEBHOOK_REPLAY_RATE_LIMITED","auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["AUTHORIZATION_CHECK_FAILED","DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"AUTHORIZATION_CHECK_FAILED","status":503,"message":"The permission check could not be completed","data":{"id":"DALP-0536","why":"The authentication provider could not evaluate whether the caller holds the permission this route requires, so the platform refused the request rather than admitting or denying it on a guess.","fix":"Retry the request. If the failure continues, ask your operator to confirm the authentication provider is reachable.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Re-enqueues events for one endpoint. Select them either by block range on a chain or by a single event id; the body accepts one form or the other. The response reports the replay id and how many events the platform enqueued. Every resulting delivery row carries `isReplay` set to `true`. A finished enqueue returns 200. When the platform accepts the work and finishes it in the background, the response is 202 with a status URL.","summary":"Replay events to an endpoint","requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"fromBlock":{"$ref":"#/components/schemas/BlockHeightEncoded"},"toBlock":{"$ref":"#/components/schemas/BlockHeightEncoded"},"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"confirmLargeRange":{"type":"boolean"}},"required":["fromBlock","chainId"],"additionalProperties":false},{"type":"object","properties":{"evtId":{"type":"string","pattern":"^evt_[a-zA-Z0-9]+$"},"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"}},"required":["evtId"],"additionalProperties":false}]}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/webhooks/events/{evtId}/recall":{"post":{"tags":["Webhooks"],"operationId":"webhooks.recall","parameters":[{"name":"evtId","in":"path","schema":{"type":"string","pattern":"^evt_[a-zA-Z0-9]+$"},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The recall event, the event it supersedes, the recorded reason, and the user the platform attributed the recall to.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"evtId":{"type":"string","pattern":"^evt_[a-zA-Z0-9]+$"},"recalledEvtId":{"type":"string","pattern":"^evt_[a-zA-Z0-9]+$"},"supersedes":{"type":"string","pattern":"^evt_[a-zA-Z0-9]+$"},"reason":{"type":"string","minLength":1,"maxLength":2000},"recalledByUserId":{"$ref":"#/components/schemas/UserId"}},"required":["evtId","recalledEvtId","supersedes","reason","recalledByUserId"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"evtId":"evt_7d1a5c93b0e24f68","recalledEvtId":"evt_7d1a5c93b0e24f68","supersedes":"evt_7d1a5c93b0e24f68","reason":"Settlement file for Northwind Coffee was replaced after a late correction.","recalledByUserId":"user_northwind_ops"},"links":{"self":"/v2/webhooks/events/evt_northwind_settlement_20260304/recall"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WEBHOOK_REPLAY_RANGE_TOO_LARGE","WEBHOOK_SUBSCRIPTION_INVALID","WEBHOOK_URL_PRIVATE_RANGE","WEBHOOK_URL_SCHEME_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","WEBHOOK_SIGNING_VERIFICATION_FAILED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","OFFCHAIN_ORGANIZATION_PERMISSION_REQUIRED","OFFCHAIN_USER_PERMISSION_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","WEBHOOK_DELIVERY_NOT_FOUND","WEBHOOK_ENDPOINT_NOT_FOUND","WEBHOOK_RECALL_NOT_AUTHORIZED","WEBHOOK_RECEIPT_NOT_FOUND","WEBHOOK_SYSTEM_SCOPE_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_CHAIN_SYSTEM_REQUIRED","status":404,"message":"The organization has no deployed system on chain 1","data":{"id":"DALP-9524","why":"The active organization has no deployed system on its default network.","fix":"Deploy the organization system before using system-scoped APIs.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","WEBHOOK_ENDPOINT_DISABLED","WEBHOOK_ENDPOINT_LIMIT_REACHED","WEBHOOK_PENDING_RETARGET_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","WEBHOOK_FAT_ACK_INCOMPLETE"]}},"required":["code"]}],"examples":[{"code":"WEBHOOK_FAT_ACK_INCOMPLETE","status":422,"message":"Fat-event acknowledgment is missing required field paths","data":{"id":"DALP-0517","why":"A fat endpoint delivers unredacted personal data for its active subscriptions. Every `<eventType>.<fieldPath>` that the thin shape would strip must be named in `fatEventsAcknowledgment.fieldsAcknowledged` for the resulting subscription set. The acknowledgment on this request (or the stored one, when the request omits it) does not cover that set, so the platform rejected the update rather than silently widening consent.","fix":"Resend the PATCH with `fatEventsAcknowledgment.fieldsAcknowledged` set to the full list returned by `getWebhookFatAcknowledgmentFields` for the subscriptions that will be active after the update. The Console's switch-to-fat dialog computes this list automatically.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["AUTHORIZATION_CHECK_FAILED","DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"AUTHORIZATION_CHECK_FAILED","status":503,"message":"The permission check could not be completed","data":{"id":"DALP-0536","why":"The authentication provider could not evaluate whether the caller holds the permission this route requires, so the platform refused the request rather than admitting or denying it on a guess.","fix":"Retry the request. If the failure continues, ask your operator to confirm the authentication provider is reachable.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Records a recall for an event the platform already emitted, with the reason you supply. The response names the recall event, the event it supersedes, the recorded reason, and the user the platform attributed the recall to. A recall does not undo deliveries that already reached the receiver. A finished recall returns 200. When the platform accepts the work and finishes it in the background, the response is 202 with a status URL.","summary":"Recall an emitted event","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"type":"string","minLength":1,"maxLength":2000}},"required":["reason"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/webhooks/events/{evtId}/chain-of-custody":{"get":{"tags":["Webhooks"],"operationId":"webhooks.chainOfCustody","parameters":[{"name":"evtId","in":"path","schema":{"type":"string","pattern":"^evt_[a-zA-Z0-9]+$"},"required":true}],"responses":{"200":{"description":"The chain of custody for the named event, with a `self` link. Each hop names a stage, the content hash at that stage, and the time the platform recorded it.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"evtId":{"type":"string","pattern":"^evt_[a-zA-Z0-9]+$"},"hops":{"type":"array","items":{"type":"object","properties":{"stage":{"type":"string","minLength":1},"contentHash":{"type":"string","minLength":1},"signedBy":{"type":"string","minLength":1},"recordedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["stage","contentHash","recordedAt"],"additionalProperties":false}},"merkleRoot":{"type":"string","minLength":1},"platformSignature":{"type":"string","minLength":1}},"required":["evtId","hops","merkleRoot","platformSignature"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"evtId":"evt_7d1a5c93b0e24f68","hops":[{"stage":"emitted","contentHash":"sha256:4b1c9e0a7d2f83c1a6e5b8d0c3f1947a","signedBy":"platform","recordedAt":"2026-02-11T09:14:07.000Z"}],"merkleRoot":"sha256:8e2a1c4f6b09d73e5a1f2c8b7d4e0a91","platformSignature":"ed25519:northwind-sample-platform-signature"},"links":{"self":"/v2/webhooks/events/evt_northwind_settlement_20260304/chain-of-custody"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WEBHOOK_REPLAY_RANGE_TOO_LARGE","WEBHOOK_SUBSCRIPTION_INVALID","WEBHOOK_URL_PRIVATE_RANGE","WEBHOOK_URL_SCHEME_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","WEBHOOK_SIGNING_VERIFICATION_FAILED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","OFFCHAIN_ORGANIZATION_PERMISSION_REQUIRED","OFFCHAIN_USER_PERMISSION_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","WEBHOOK_DELIVERY_NOT_FOUND","WEBHOOK_ENDPOINT_NOT_FOUND","WEBHOOK_RECALL_NOT_AUTHORIZED","WEBHOOK_RECEIPT_NOT_FOUND","WEBHOOK_SYSTEM_SCOPE_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_CHAIN_SYSTEM_REQUIRED","status":404,"message":"The organization has no deployed system on chain 1","data":{"id":"DALP-9524","why":"The active organization has no deployed system on its default network.","fix":"Deploy the organization system before using system-scoped APIs.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","WEBHOOK_ENDPOINT_DISABLED","WEBHOOK_ENDPOINT_LIMIT_REACHED","WEBHOOK_PENDING_RETARGET_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","WEBHOOK_FAT_ACK_INCOMPLETE"]}},"required":["code"]}],"examples":[{"code":"WEBHOOK_FAT_ACK_INCOMPLETE","status":422,"message":"Fat-event acknowledgment is missing required field paths","data":{"id":"DALP-0517","why":"A fat endpoint delivers unredacted personal data for its active subscriptions. Every `<eventType>.<fieldPath>` that the thin shape would strip must be named in `fatEventsAcknowledgment.fieldsAcknowledged` for the resulting subscription set. The acknowledgment on this request (or the stored one, when the request omits it) does not cover that set, so the platform rejected the update rather than silently widening consent.","fix":"Resend the PATCH with `fatEventsAcknowledgment.fieldsAcknowledged` set to the full list returned by `getWebhookFatAcknowledgmentFields` for the subscriptions that will be active after the update. The Console's switch-to-fat dialog computes this list automatically.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["AUTHORIZATION_CHECK_FAILED","DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"AUTHORIZATION_CHECK_FAILED","status":503,"message":"The permission check could not be completed","data":{"id":"DALP-0536","why":"The authentication provider could not evaluate whether the caller holds the permission this route requires, so the platform refused the request rather than admitting or denying it on a guess.","fix":"Retry the request. If the failure continues, ask your operator to confirm the authentication provider is reachable.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the ordered hops recorded for one event. Each hop names a stage, the content hash at that stage, and the time the platform recorded it. The response also carries the Merkle root over those hops and the platform signature over that root, so an auditor can verify the sequence offline.","summary":"Read the chain of custody for an event","x-dalp-auth":"session-or-api-key"}},"/api/v2/webhooks/{id}/rotate-secret":{"post":{"tags":["Webhooks"],"operationId":"webhooks.rotateSecret","parameters":[{"name":"id","in":"path","schema":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The rotated secret versions and the new cleartext secret on the first response.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"endpointId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"activeVersion":{"type":"integer","exclusiveMinimum":0},"previousVersion":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"previousRevokesAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"signingSecret":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]}},"required":["endpointId","activeVersion","previousVersion","previousRevokesAt","signingSecret"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"endpointId":"01934567-89ab-7def-8123-456789abcdef","activeVersion":2,"previousVersion":1,"previousRevokesAt":"2026-03-11T15:42:18.000Z","signingSecret":"dalp_whsk_sample_not_a_live_secret"},"links":{"self":"/v2/webhooks/01934567-89ab-7def-8123-456789abcdef"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WEBHOOK_REPLAY_RANGE_TOO_LARGE","WEBHOOK_SUBSCRIPTION_INVALID","WEBHOOK_URL_PRIVATE_RANGE","WEBHOOK_URL_SCHEME_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","WEBHOOK_SIGNING_VERIFICATION_FAILED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","OFFCHAIN_ORGANIZATION_PERMISSION_REQUIRED","OFFCHAIN_USER_PERMISSION_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","WEBHOOK_DELIVERY_NOT_FOUND","WEBHOOK_ENDPOINT_NOT_FOUND","WEBHOOK_RECALL_NOT_AUTHORIZED","WEBHOOK_RECEIPT_NOT_FOUND","WEBHOOK_SYSTEM_SCOPE_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_CHAIN_SYSTEM_REQUIRED","status":404,"message":"The organization has no deployed system on chain 1","data":{"id":"DALP-9524","why":"The active organization has no deployed system on its default network.","fix":"Deploy the organization system before using system-scoped APIs.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","WEBHOOK_ENDPOINT_DISABLED","WEBHOOK_ENDPOINT_LIMIT_REACHED","WEBHOOK_PENDING_RETARGET_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","WEBHOOK_FAT_ACK_INCOMPLETE"]}},"required":["code"]}],"examples":[{"code":"WEBHOOK_FAT_ACK_INCOMPLETE","status":422,"message":"Fat-event acknowledgment is missing required field paths","data":{"id":"DALP-0517","why":"A fat endpoint delivers unredacted personal data for its active subscriptions. Every `<eventType>.<fieldPath>` that the thin shape would strip must be named in `fatEventsAcknowledgment.fieldsAcknowledged` for the resulting subscription set. The acknowledgment on this request (or the stored one, when the request omits it) does not cover that set, so the platform rejected the update rather than silently widening consent.","fix":"Resend the PATCH with `fatEventsAcknowledgment.fieldsAcknowledged` set to the full list returned by `getWebhookFatAcknowledgmentFields` for the subscriptions that will be active after the update. The Console's switch-to-fat dialog computes this list automatically.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["AUTHORIZATION_CHECK_FAILED","DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"AUTHORIZATION_CHECK_FAILED","status":503,"message":"The permission check could not be completed","data":{"id":"DALP-0536","why":"The authentication provider could not evaluate whether the caller holds the permission this route requires, so the platform refused the request rather than admitting or denying it on a guess.","fix":"Retry the request. If the failure continues, ask your operator to confirm the authentication provider is reachable.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Issues a new signing secret and moves the current one into the previous slot until `previousRevokesAt`. The response carries the new `signingSecret` in cleartext, so record it now: a response that cannot carry the cleartext value again sets the field to `null`. Roll your receiver over before `previousRevokesAt` passes. A finished rotation returns 200. When the platform accepts the work and finishes it in the background, the response is 202 with a status URL.","summary":"Rotate the endpoint signing secret","x-dalp-auth":"session-or-api-key"}},"/api/v2/webhooks/{id}/revoke-previous-secret":{"post":{"tags":["Webhooks"],"operationId":"webhooks.revokePreviousSecret","parameters":[{"name":"id","in":"path","schema":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"required":true},{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The version the platform revoked and the versions that remain, with a `self` link to the endpoint.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"endpointId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"activeVersion":{"type":"integer","exclusiveMinimum":0},"previousVersion":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"revokedVersion":{"type":"integer","exclusiveMinimum":0}},"required":["endpointId","activeVersion","previousVersion","revokedVersion"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"endpointId":"01934567-89ab-7def-8123-456789abcdef","activeVersion":2,"previousVersion":null,"revokedVersion":1},"links":{"self":"/v2/webhooks/01934567-89ab-7def-8123-456789abcdef"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WEBHOOK_REPLAY_RANGE_TOO_LARGE","WEBHOOK_SUBSCRIPTION_INVALID","WEBHOOK_URL_PRIVATE_RANGE","WEBHOOK_URL_SCHEME_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","WEBHOOK_SIGNING_VERIFICATION_FAILED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","OFFCHAIN_ORGANIZATION_PERMISSION_REQUIRED","OFFCHAIN_USER_PERMISSION_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","WEBHOOK_DELIVERY_NOT_FOUND","WEBHOOK_ENDPOINT_NOT_FOUND","WEBHOOK_RECALL_NOT_AUTHORIZED","WEBHOOK_RECEIPT_NOT_FOUND","WEBHOOK_SYSTEM_SCOPE_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_CHAIN_SYSTEM_REQUIRED","status":404,"message":"The organization has no deployed system on chain 1","data":{"id":"DALP-9524","why":"The active organization has no deployed system on its default network.","fix":"Deploy the organization system before using system-scoped APIs.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","WEBHOOK_ENDPOINT_DISABLED","WEBHOOK_ENDPOINT_LIMIT_REACHED","WEBHOOK_PENDING_RETARGET_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","WEBHOOK_FAT_ACK_INCOMPLETE"]}},"required":["code"]}],"examples":[{"code":"WEBHOOK_FAT_ACK_INCOMPLETE","status":422,"message":"Fat-event acknowledgment is missing required field paths","data":{"id":"DALP-0517","why":"A fat endpoint delivers unredacted personal data for its active subscriptions. Every `<eventType>.<fieldPath>` that the thin shape would strip must be named in `fatEventsAcknowledgment.fieldsAcknowledged` for the resulting subscription set. The acknowledgment on this request (or the stored one, when the request omits it) does not cover that set, so the platform rejected the update rather than silently widening consent.","fix":"Resend the PATCH with `fatEventsAcknowledgment.fieldsAcknowledged` set to the full list returned by `getWebhookFatAcknowledgmentFields` for the subscriptions that will be active after the update. The Console's switch-to-fat dialog computes this list automatically.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["AUTHORIZATION_CHECK_FAILED","DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"AUTHORIZATION_CHECK_FAILED","status":503,"message":"The permission check could not be completed","data":{"id":"DALP-0536","why":"The authentication provider could not evaluate whether the caller holds the permission this route requires, so the platform refused the request rather than admitting or denying it on a guess.","fix":"Retry the request. If the failure continues, ask your operator to confirm the authentication provider is reachable.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Revokes the previous signing secret at once instead of waiting for `previousRevokesAt`. Call it once your receiver verifies with the active version only. The response reports the version the platform revoked and the versions that remain. A finished revoke returns 200. When the platform accepts the work and finishes it in the background, the response is 202 with a status URL.","summary":"Revoke the previous signing secret","x-dalp-auth":"session-or-api-key"}},"/api/v2/webhooks/stats":{"get":{"tags":["Webhooks"],"operationId":"webhooks.stats","parameters":[{"name":"endpointId","in":"query","schema":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"required":false},{"name":"eventType","in":"query","schema":{"type":"string"},"required":false}],"responses":{"200":{"description":"Total, delivered, and failed delivery counts over the last 24 hours, plus 24 one hour buckets. Pass `endpointId` to scope the figures to one endpoint.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"totalDeliveries":{"type":"integer","minimum":0},"delivered":{"type":"integer","minimum":0},"failed":{"type":"integer","minimum":0},"tests":{"type":"object","properties":{"attempts":{"type":"integer","minimum":0},"delivered":{"type":"integer","minimum":0},"failed":{"type":"integer","minimum":0}},"required":["attempts","delivered","failed"],"additionalProperties":false},"hourlyBuckets":{"type":"array","items":{"type":"integer","minimum":0},"minItems":24,"maxItems":24},"hourly":{"type":"array","items":{"type":"object","properties":{"attempts":{"type":"integer","minimum":0},"delivered":{"type":"integer","minimum":0},"failed":{"type":"integer","minimum":0},"latencyP50Ms":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"latencyP95Ms":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]}},"required":["attempts","delivered","failed"],"additionalProperties":false}},"pending":{"type":"integer","minimum":0},"nextRetryAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"latencyP50Ms":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"latencyP95Ms":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]}},"required":["totalDeliveries","delivered","failed","tests","hourlyBuckets"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"totalDeliveries":24,"delivered":23,"failed":1,"pending":0,"nextRetryAt":null,"latencyP50Ms":1184,"latencyP95Ms":1184,"tests":{"attempts":2,"delivered":2,"failed":0},"hourlyBuckets":[0,1,0,2,1,0,3,1,2,0,1,1,2,0,1,3,1,0,2,1,0,1,0,1]},"links":{"self":"/v2/webhooks/stats"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WEBHOOK_REPLAY_RANGE_TOO_LARGE","WEBHOOK_SUBSCRIPTION_INVALID","WEBHOOK_URL_PRIVATE_RANGE","WEBHOOK_URL_SCHEME_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","WEBHOOK_SIGNING_VERIFICATION_FAILED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","OFFCHAIN_ORGANIZATION_PERMISSION_REQUIRED","OFFCHAIN_USER_PERMISSION_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","WEBHOOK_DELIVERY_NOT_FOUND","WEBHOOK_ENDPOINT_NOT_FOUND","WEBHOOK_RECALL_NOT_AUTHORIZED","WEBHOOK_RECEIPT_NOT_FOUND","WEBHOOK_SYSTEM_SCOPE_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_CHAIN_SYSTEM_REQUIRED","status":404,"message":"The organization has no deployed system on chain 1","data":{"id":"DALP-9524","why":"The active organization has no deployed system on its default network.","fix":"Deploy the organization system before using system-scoped APIs.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","WEBHOOK_ENDPOINT_DISABLED","WEBHOOK_ENDPOINT_LIMIT_REACHED","WEBHOOK_PENDING_RETARGET_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","WEBHOOK_FAT_ACK_INCOMPLETE"]}},"required":["code"]}],"examples":[{"code":"WEBHOOK_FAT_ACK_INCOMPLETE","status":422,"message":"Fat-event acknowledgment is missing required field paths","data":{"id":"DALP-0517","why":"A fat endpoint delivers unredacted personal data for its active subscriptions. Every `<eventType>.<fieldPath>` that the thin shape would strip must be named in `fatEventsAcknowledgment.fieldsAcknowledged` for the resulting subscription set. The acknowledgment on this request (or the stored one, when the request omits it) does not cover that set, so the platform rejected the update rather than silently widening consent.","fix":"Resend the PATCH with `fatEventsAcknowledgment.fieldsAcknowledged` set to the full list returned by `getWebhookFatAcknowledgmentFields` for the subscriptions that will be active after the update. The Console's switch-to-fat dialog computes this list automatically.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["AUTHORIZATION_CHECK_FAILED","DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"AUTHORIZATION_CHECK_FAILED","status":503,"message":"The permission check could not be completed","data":{"id":"DALP-0536","why":"The authentication provider could not evaluate whether the caller holds the permission this route requires, so the platform refused the request rather than admitting or denying it on a guess.","fix":"Retry the request. If the failure continues, ask your operator to confirm the authentication provider is reachable.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns total, delivered, and failed live delivery counts over the last 24 hours, plus 24 one hour buckets ordered oldest first. Replay attempts stay out of every count; test attempts are counted apart in `tests` and never in the live figures. Pass `endpointId` to scope the figures to one endpoint instead of the whole organization.","summary":"Read delivery statistics for the last 24 hours","x-dalp-auth":"session-or-api-key"}},"/api/v2/webhooks/test-receiver":{"get":{"tags":["Webhooks"],"operationId":"webhooks.testReceiver","parameters":[],"responses":{"200":{"description":"The configured DALP test receiver URL, or null when the platform runs no test receiver.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"url":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["url"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"url":"https://console.northwind.example"},"links":{"self":"/v2/addons/trading-venues/0x0000000000000000000000000000000000000a01/markets/0198f1c4-5e6f-7a80-bc13-4d5e6f7a8b9c/participants"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WEBHOOK_REPLAY_RANGE_TOO_LARGE","WEBHOOK_SUBSCRIPTION_INVALID","WEBHOOK_URL_PRIVATE_RANGE","WEBHOOK_URL_SCHEME_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","WEBHOOK_SIGNING_VERIFICATION_FAILED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","OFFCHAIN_ORGANIZATION_PERMISSION_REQUIRED","OFFCHAIN_USER_PERMISSION_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","WEBHOOK_DELIVERY_NOT_FOUND","WEBHOOK_ENDPOINT_NOT_FOUND","WEBHOOK_RECALL_NOT_AUTHORIZED","WEBHOOK_RECEIPT_NOT_FOUND","WEBHOOK_SYSTEM_SCOPE_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_CHAIN_SYSTEM_REQUIRED","status":404,"message":"The organization has no deployed system on chain 1","data":{"id":"DALP-9524","why":"The active organization has no deployed system on its default network.","fix":"Deploy the organization system before using system-scoped APIs.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","WEBHOOK_ENDPOINT_DISABLED","WEBHOOK_ENDPOINT_LIMIT_REACHED","WEBHOOK_PENDING_RETARGET_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","WEBHOOK_FAT_ACK_INCOMPLETE"]}},"required":["code"]}],"examples":[{"code":"WEBHOOK_FAT_ACK_INCOMPLETE","status":422,"message":"Fat-event acknowledgment is missing required field paths","data":{"id":"DALP-0517","why":"A fat endpoint delivers unredacted personal data for its active subscriptions. Every `<eventType>.<fieldPath>` that the thin shape would strip must be named in `fatEventsAcknowledgment.fieldsAcknowledged` for the resulting subscription set. The acknowledgment on this request (or the stored one, when the request omits it) does not cover that set, so the platform rejected the update rather than silently widening consent.","fix":"Resend the PATCH with `fatEventsAcknowledgment.fieldsAcknowledged` set to the full list returned by `getWebhookFatAcknowledgmentFields` for the subscriptions that will be active after the update. The Console's switch-to-fat dialog computes this list automatically.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["AUTHORIZATION_CHECK_FAILED","DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"AUTHORIZATION_CHECK_FAILED","status":503,"message":"The permission check could not be completed","data":{"id":"DALP-0536","why":"The authentication provider could not evaluate whether the caller holds the permission this route requires, so the platform refused the request rather than admitting or denying it on a guess.","fix":"Retry the request. If the failure continues, ask your operator to confirm the authentication provider is reachable.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the URL of the platform's DALP test receiver, a stateless endpoint that answers every delivery with 200 and stores nothing, so an operator can point a webhook endpoint at it to watch deliveries without running a consumer. The URL is null when the platform runs no test receiver. The read changes nothing and is safe to retry.","summary":"Read the DALP test receiver URL","x-dalp-auth":"session-or-api-key"}},"/api/v2/webhook-receipts":{"get":{"tags":["Webhooks"],"operationId":"webhookReceipts.list","parameters":[{"name":"filter","in":"query","schema":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000},"evtId":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"endpointId":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"receivedAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"verifiedAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"verificationFailureClass":{"anyOf":[{"type":"string","enum":["RECEIPT_INVALID_SIG","RECEIPT_HASH_MISMATCH"]},{"type":"object","properties":{"eq":{"type":"string","enum":["RECEIPT_INVALID_SIG","RECEIPT_HASH_MISMATCH"]},"ne":{"type":"string","enum":["RECEIPT_INVALID_SIG","RECEIPT_HASH_MISMATCH"]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]}},"additionalProperties":false},"required":false,"style":"deepObject","explode":true},{"name":"page","in":"query","schema":{"type":"object","properties":{"offset":{"anyOf":[{"type":"number"},{"type":"string"}]},"limit":{"anyOf":[{"type":"number"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. Send `page[offset]` (first item index, 0-10000) and `page[limit]` (page size, 1-200, default 50). The response `links` object repeats these query parameters.","examples":[{"offset":0,"limit":50}]},"required":false,"style":"deepObject","explode":true},{"name":"sort","in":"query","schema":{"type":"string","minLength":1},"required":false},{"name":"q","in":"query","schema":{"type":"string","minLength":1,"maxLength":1000},"required":false},{"name":"evtId","in":"query","schema":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"endpointId","in":"query","schema":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"receivedAt","in":"query","schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"verifiedAt","in":"query","schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true},{"name":"verificationFailureClass","in":"query","schema":{"anyOf":[{"type":"string","enum":["RECEIPT_INVALID_SIG","RECEIPT_HASH_MISMATCH"]},{"type":"object","properties":{"eq":{"type":"string","enum":["RECEIPT_INVALID_SIG","RECEIPT_HASH_MISMATCH"]},"ne":{"type":"string","enum":["RECEIPT_INVALID_SIG","RECEIPT_HASH_MISMATCH"]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"required":false,"style":"deepObject","explode":true}],"responses":{"200":{"description":"One page of receipts for the calling organization. `meta.total` counts every matching receipt rather than the ones on this page.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"deliveryId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"evtId":{"type":"string","pattern":"^evt_[a-zA-Z0-9]+$"},"tenantId":{"$ref":"#/components/schemas/OrganizationId"},"endpointId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"consumerSignature":{"type":"string","minLength":1},"innerEventHash":{"type":"string","minLength":1},"receivedAt":{"$ref":"#/components/schemas/TimestampEncoded"},"verifiedAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"verificationFailureClass":{"anyOf":[{"type":"string","enum":["RECEIPT_INVALID_SIG","RECEIPT_HASH_MISMATCH"]},{"type":"null"}]}},"required":["id","deliveryId","evtId","tenantId","endpointId","consumerSignature","innerEventHash","receivedAt","verifiedAt","verificationFailureClass"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0},"facets":{"type":"object","additionalProperties":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"count":{"type":"integer","minimum":0}},"required":["value","count"],"additionalProperties":false}}}},"required":["total"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"},"first":{"type":"string"},"prev":{"anyOf":[{"type":"string"},{"type":"null"}]},"next":{"anyOf":[{"type":"string"},{"type":"null"}]},"last":{"type":"string"}},"required":["self","first","prev","next","last"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":[{"id":"01934567-89ab-7def-8123-456789abcde1","deliveryId":"01934567-89ab-7def-8123-456789abcde0","evtId":"evt_7d1a5c93b0e24f68","tenantId":"org_northwind_coffee_treasury","endpointId":"01934567-89ab-7def-8123-456789abcdef","consumerSignature":"ed25519:northwind-sample-consumer-signature","innerEventHash":"sha256:4b1c9e0a7d2f83c1a6e5b8d0c3f1947a","receivedAt":"2026-03-04T15:43:03.184Z","verifiedAt":"2026-03-04T15:43:03.184Z","verificationFailureClass":null}],"meta":{"total":1,"facets":{}},"links":{"self":"/v2/webhook-receipts?sort=receivedAt&page%5Boffset%5D=0&page%5Blimit%5D=50","first":"/v2/webhook-receipts?sort=receivedAt&page%5Boffset%5D=0&page%5Blimit%5D=50","prev":null,"next":null,"last":"/v2/webhook-receipts?sort=receivedAt&page%5Boffset%5D=0&page%5Blimit%5D=50"}}}}}}},"400":{"description":"A filter value does not fit the type of its field. Send a value that field accepts. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list. | The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","COLLECTION_FILTER_VALUE_INVALID","INVALID_REQUEST_EXECUTOR","WEBHOOK_REPLAY_RANGE_TOO_LARGE","WEBHOOK_SUBSCRIPTION_INVALID","WEBHOOK_URL_PRIVATE_RANGE","WEBHOOK_URL_SCHEME_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","WEBHOOK_SIGNING_VERIFICATION_FAILED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","OFFCHAIN_ORGANIZATION_PERMISSION_REQUIRED","OFFCHAIN_USER_PERMISSION_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","WEBHOOK_DELIVERY_NOT_FOUND","WEBHOOK_ENDPOINT_NOT_FOUND","WEBHOOK_RECALL_NOT_AUTHORIZED","WEBHOOK_RECEIPT_NOT_FOUND","WEBHOOK_SYSTEM_SCOPE_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_CHAIN_SYSTEM_REQUIRED","status":404,"message":"The organization has no deployed system on chain 1","data":{"id":"DALP-9524","why":"The active organization has no deployed system on its default network.","fix":"Deploy the organization system before using system-scoped APIs.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","WEBHOOK_ENDPOINT_DISABLED","WEBHOOK_ENDPOINT_LIMIT_REACHED","WEBHOOK_PENDING_RETARGET_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","WEBHOOK_FAT_ACK_INCOMPLETE"]}},"required":["code"]}],"examples":[{"code":"WEBHOOK_FAT_ACK_INCOMPLETE","status":422,"message":"Fat-event acknowledgment is missing required field paths","data":{"id":"DALP-0517","why":"A fat endpoint delivers unredacted personal data for its active subscriptions. Every `<eventType>.<fieldPath>` that the thin shape would strip must be named in `fatEventsAcknowledgment.fieldsAcknowledged` for the resulting subscription set. The acknowledgment on this request (or the stored one, when the request omits it) does not cover that set, so the platform rejected the update rather than silently widening consent.","fix":"Resend the PATCH with `fatEventsAcknowledgment.fieldsAcknowledged` set to the full list returned by `getWebhookFatAcknowledgmentFields` for the subscriptions that will be active after the update. The Console's switch-to-fat dialog computes this list automatically.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["AUTHORIZATION_CHECK_FAILED","DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"AUTHORIZATION_CHECK_FAILED","status":503,"message":"The permission check could not be completed","data":{"id":"DALP-0536","why":"The authentication provider could not evaluate whether the caller holds the permission this route requires, so the platform refused the request rather than admitting or denying it on a guess.","fix":"Retry the request. If the failure continues, ask your operator to confirm the authentication provider is reachable.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns receipts the calling organization recorded for deliveries, sorted by `receivedAt` unless you name another sort field. Filter on event id, endpoint id, received or verified time, and verification failure class.","summary":"List webhook receipts","x-dalp-auth":"session-or-api-key"},"post":{"tags":["Webhooks"],"operationId":"webhookReceipts.create","parameters":[{"$ref":"#/components/parameters/idempotencyKey"},{"$ref":"#/components/parameters/prefer"}],"responses":{"200":{"description":"The stored receipt as the platform now holds it. Reuse `data.id` to read the receipt later.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"deliveryId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"evtId":{"type":"string","pattern":"^evt_[a-zA-Z0-9]+$"},"tenantId":{"$ref":"#/components/schemas/OrganizationId"},"endpointId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"consumerSignature":{"type":"string","minLength":1},"innerEventHash":{"type":"string","minLength":1},"receivedAt":{"$ref":"#/components/schemas/TimestampEncoded"},"verifiedAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"verificationFailureClass":{"anyOf":[{"type":"string","enum":["RECEIPT_INVALID_SIG","RECEIPT_HASH_MISMATCH"]},{"type":"null"}]}},"required":["id","deliveryId","evtId","tenantId","endpointId","consumerSignature","innerEventHash","receivedAt","verifiedAt","verificationFailureClass"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"01934567-89ab-7def-8123-456789abcde1","deliveryId":"01934567-89ab-7def-8123-456789abcde0","evtId":"evt_7d1a5c93b0e24f68","tenantId":"org_northwind_coffee_treasury","endpointId":"01934567-89ab-7def-8123-456789abcdef","consumerSignature":"ed25519:northwind-sample-consumer-signature","innerEventHash":"sha256:4b1c9e0a7d2f83c1a6e5b8d0c3f1947a","receivedAt":"2026-03-04T15:43:03.184Z","verifiedAt":"2026-03-04T15:43:03.184Z","verificationFailureClass":null},"links":{"self":"/v2/webhook-receipts/01934567-89ab-7def-8123-456789abcde1"}}}}}},"headers":{}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WEBHOOK_REPLAY_RANGE_TOO_LARGE","WEBHOOK_SUBSCRIPTION_INVALID","WEBHOOK_URL_PRIVATE_RANGE","WEBHOOK_URL_SCHEME_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","WEBHOOK_SIGNING_VERIFICATION_FAILED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","OFFCHAIN_ORGANIZATION_PERMISSION_REQUIRED","OFFCHAIN_USER_PERMISSION_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","WEBHOOK_DELIVERY_NOT_FOUND","WEBHOOK_ENDPOINT_NOT_FOUND","WEBHOOK_RECALL_NOT_AUTHORIZED","WEBHOOK_RECEIPT_NOT_FOUND","WEBHOOK_SYSTEM_SCOPE_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_CHAIN_SYSTEM_REQUIRED","status":404,"message":"The organization has no deployed system on chain 1","data":{"id":"DALP-9524","why":"The active organization has no deployed system on its default network.","fix":"Deploy the organization system before using system-scoped APIs.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","WEBHOOK_ENDPOINT_DISABLED","WEBHOOK_ENDPOINT_LIMIT_REACHED","WEBHOOK_PENDING_RETARGET_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","WEBHOOK_FAT_ACK_INCOMPLETE"]}},"required":["code"]}],"examples":[{"code":"WEBHOOK_FAT_ACK_INCOMPLETE","status":422,"message":"Fat-event acknowledgment is missing required field paths","data":{"id":"DALP-0517","why":"A fat endpoint delivers unredacted personal data for its active subscriptions. Every `<eventType>.<fieldPath>` that the thin shape would strip must be named in `fatEventsAcknowledgment.fieldsAcknowledged` for the resulting subscription set. The acknowledgment on this request (or the stored one, when the request omits it) does not cover that set, so the platform rejected the update rather than silently widening consent.","fix":"Resend the PATCH with `fatEventsAcknowledgment.fieldsAcknowledged` set to the full list returned by `getWebhookFatAcknowledgmentFields` for the subscriptions that will be active after the update. The Console's switch-to-fat dialog computes this list automatically.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["AUTHORIZATION_CHECK_FAILED","DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"AUTHORIZATION_CHECK_FAILED","status":503,"message":"The permission check could not be completed","data":{"id":"DALP-0536","why":"The authentication provider could not evaluate whether the caller holds the permission this route requires, so the platform refused the request rather than admitting or denying it on a guess.","fix":"Retry the request. If the failure continues, ask your operator to confirm the authentication provider is reachable.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Records a signed acknowledgement from the receiver of one delivery. Sign the payload with the endpoint signing secret. The platform stores the receipt and reports whether the signature and event hash verified. A finished create returns 200. When the platform accepts the work and finishes it in the background, the response is 202 with a status URL.","summary":"Record a webhook receipt","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"deliveryId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"evtId":{"type":"string","pattern":"^evt_[a-zA-Z0-9]+$"},"endpointId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"consumerSignature":{"type":"string","minLength":1},"innerEventHash":{"type":"string","minLength":1}},"required":["deliveryId","evtId","endpointId","consumerSignature","innerEventHash"],"additionalProperties":false}}},"required":true},"x-dalp-auth":"session-or-api-key"}},"/api/v2/webhook-receipts/{id}":{"get":{"tags":["Webhooks"],"operationId":"webhookReceipts.read","parameters":[{"name":"id","in":"path","schema":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"required":true}],"responses":{"200":{"description":"The requested receipt, with a `self` link to its canonical URL.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"deliveryId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"evtId":{"type":"string","pattern":"^evt_[a-zA-Z0-9]+$"},"tenantId":{"$ref":"#/components/schemas/OrganizationId"},"endpointId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"consumerSignature":{"type":"string","minLength":1},"innerEventHash":{"type":"string","minLength":1},"receivedAt":{"$ref":"#/components/schemas/TimestampEncoded"},"verifiedAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"verificationFailureClass":{"anyOf":[{"type":"string","enum":["RECEIPT_INVALID_SIG","RECEIPT_HASH_MISMATCH"]},{"type":"null"}]}},"required":["id","deliveryId","evtId","tenantId","endpointId","consumerSignature","innerEventHash","receivedAt","verifiedAt","verificationFailureClass"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"examples":{"example-1":{"value":{"data":{"id":"01934567-89ab-7def-8123-456789abcde1","deliveryId":"01934567-89ab-7def-8123-456789abcde0","evtId":"evt_7d1a5c93b0e24f68","tenantId":"org_northwind_coffee_treasury","endpointId":"01934567-89ab-7def-8123-456789abcdef","consumerSignature":"ed25519:northwind-sample-consumer-signature","innerEventHash":"sha256:4b1c9e0a7d2f83c1a6e5b8d0c3f1947a","receivedAt":"2026-03-04T15:43:03.184Z","verifiedAt":"2026-03-04T15:43:03.184Z","verificationFailureClass":null},"links":{"self":"/v2/webhook-receipts/01934567-89ab-7def-8123-456789abcde1"}}}}}}},"400":{"description":"The request is invalid. Read `data.why` and correct the request as described in `data.fix` before retrying. | This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError400"},{"type":"object","properties":{"code":{"type":"string","enum":["BAD_REQUEST","CHAIN_ID_HEADER_INVALID","CHAIN_NOT_AVAILABLE_FOR_ORGANIZATION","INVALID_REQUEST_EXECUTOR","WEBHOOK_REPLAY_RANGE_TOO_LARGE","WEBHOOK_SUBSCRIPTION_INVALID","WEBHOOK_URL_PRIVATE_RANGE","WEBHOOK_URL_SCHEME_REQUIRED","dapi.runtime.INVALID_REQUEST_CUSTODY_ACCOUNT"]}},"required":["code"]}],"examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"401":{"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError401"},{"type":"object","properties":{"code":{"type":"string","enum":["SESSION_EVIDENCE_INVALID","UNAUTHORIZED","WEBHOOK_SIGNING_VERIFICATION_FAILED"]}},"required":["code"]}],"examples":[{"code":"SESSION_EVIDENCE_INVALID","status":401,"message":"Session authentication evidence is incomplete","data":{"id":"DALP-9188","why":"The request session did not include the linked authentication providers needed to authorize the call.","fix":"Sign in again, then retry the request.","retryable":false,"category":"auth"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"403":{"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError403"},{"type":"object","properties":{"code":{"type":"string","enum":["ACTIVE_ORGANIZATION_REQUIRED","CONTRACT_ERROR","LOGIN_2FA_REQUIRED","OFFCHAIN_ORGANIZATION_PERMISSION_REQUIRED","OFFCHAIN_USER_PERMISSION_REQUIRED","REQUEST_PARTICIPANT_FORBIDDEN","SESSION_POLICY_DENIED","X_EXECUTOR_AA_DISABLED_FOR_ORG","X_EXECUTOR_AA_DISABLED_GLOBALLY"]}},"required":["code"]}],"examples":[{"code":"ACTIVE_ORGANIZATION_REQUIRED","status":403,"message":"Active organization required for this operation","data":{"id":"DALP-0034","why":"The request requires organization-scoped permissions, but the session does not have an active organization selected.","fix":"Select an organization, refresh the session, and retry the request.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"404":{"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying. | The organization has no system on this chain. Deploy one first.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError404"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","REQUEST_CHAIN_SYSTEM_REQUIRED","WEBHOOK_DELIVERY_NOT_FOUND","WEBHOOK_ENDPOINT_NOT_FOUND","WEBHOOK_RECALL_NOT_AUTHORIZED","WEBHOOK_RECEIPT_NOT_FOUND","WEBHOOK_SYSTEM_SCOPE_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_CHAIN_SYSTEM_REQUIRED","status":404,"message":"The organization has no deployed system on chain 1","data":{"id":"DALP-9524","why":"The active organization has no deployed system on its default network.","fix":"Deploy the organization system before using system-scoped APIs.","retryable":false,"category":"domain","chainId":1}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"409":{"description":"The request conflicts with the current resource state. Refresh the resource and follow `data.fix` before retrying. | This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError409"},{"type":"object","properties":{"code":{"type":"string","enum":["CHAIN_NOT_READY","CONTRACT_ERROR","CUSTODY_ACCOUNT_SELECTION_INVALID","PRIMARY_CUSTODY_ACCOUNT_REQUIRED","REQUEST_CUSTODY_ACCOUNT_UNAVAILABLE","REQUEST_EXECUTOR_UNAVAILABLE","WEBHOOK_ENDPOINT_DISABLED","WEBHOOK_ENDPOINT_LIMIT_REACHED","WEBHOOK_PENDING_RETARGET_REQUIRED"]}},"required":["code"]}],"examples":[{"code":"CHAIN_NOT_READY","status":409,"message":"The requested network is not ready for this organization","data":{"id":"DALP-9086","why":"The organization has the requested network registered, but its system is not active: the deployment is still pending or running, has failed, or the network was disabled.","fix":"Check the network's status in organization settings; wait for the deployment to finish or retry it, then retry the request.","retryable":false,"category":"client","chainId":1,"chainStatus":"pending"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"422":{"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError422"},{"type":"object","properties":{"code":{"type":"string","enum":["CONTRACT_ERROR","WEBHOOK_FAT_ACK_INCOMPLETE"]}},"required":["code"]}],"examples":[{"code":"WEBHOOK_FAT_ACK_INCOMPLETE","status":422,"message":"Fat-event acknowledgment is missing required field paths","data":{"id":"DALP-0517","why":"A fat endpoint delivers unredacted personal data for its active subscriptions. Every `<eventType>.<fieldPath>` that the thin shape would strip must be named in `fatEventsAcknowledgment.fieldsAcknowledged` for the resulting subscription set. The acknowledgment on this request (or the stored one, when the request omits it) does not cover that set, so the platform rejected the update rather than silently widening consent.","fix":"Resend the PATCH with `fatEventsAcknowledgment.fieldsAcknowledged` set to the full list returned by `getWebhookFatAcknowledgmentFields` for the subscriptions that will be active after the update. The Console's switch-to-fat dialog computes this list automatically.","retryable":false,"category":"client"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"429":{"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError429"},{"type":"object","properties":{"code":{"type":"string","enum":["auth.apikey.THROTTLED"]}},"required":["code"]}],"examples":[{"code":"auth.apikey.THROTTLED","status":429,"message":"This API key filled its request window","data":{"id":"DALP-12136","why":"This key used its full request allowance for the current window, so the platform did not authenticate the request.","fix":"Wait for the key's request window to reopen, then send the request again.","retryable":false,"category":"permission"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError500"},{"type":"object","properties":{"code":{"type":"string","enum":["INTERNAL_SERVER_ERROR"]}},"required":["code"]}],"examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"503":{"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`. | This response has one of these causes:\n\n- The session could not be resolved. Restore authentication services, then retry.\n- The chain configuration could not be loaded. Restore it, then retry.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError503"},{"type":"object","properties":{"code":{"type":"string","enum":["AUTHORIZATION_CHECK_FAILED","DALP-0083","SESSION_RESOLUTION_FAILED","dapi.runtime.REQUEST_CHAIN_LOOKUP_FAILED"]}},"required":["code"]}],"examples":[{"code":"AUTHORIZATION_CHECK_FAILED","status":503,"message":"The permission check could not be completed","data":{"id":"DALP-0536","why":"The authentication provider could not evaluate whether the caller holds the permission this route requires, so the platform refused the request rather than admitting or denying it on a guess.","fix":"Retry the request. If the failure continues, ask your operator to confirm the authentication provider is reachable.","retryable":true,"category":"dependency"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}},"504":{"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DalpPublicHttpError504"},{"type":"object","properties":{"code":{"type":"string","enum":["REQUEST_DEADLINE_EXCEEDED"]}},"required":["code"]}],"examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]}}},"headers":{"X-Request-Id":{"$ref":"#/components/headers/X-Request-Id"}}}},"description":"Returns the receipt named by the path. The record names the delivery, the event hash the receiver acknowledged, and whether the platform verified the signature. An identifier that belongs to another organization returns 404.","summary":"Read one webhook receipt","x-dalp-auth":"session-or-api-key"}},"/api/auth/sign-in/social":{"post":{"tags":["Sessions and sign-in"],"description":"Starts social sign-in for the named provider. If you include an id token, the response is a session. Otherwise follow the returned authorize URL, then complete the provider callback.","operationId":"socialSignIn","security":[],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"callbackURL":{"type":"string","description":"Callback URL to redirect to after the user has signed in"},"newUserCallbackURL":{"type":"string"},"errorCallbackURL":{"type":"string","description":"Callback URL to redirect to if an error happens"},"provider":{"anyOf":[{"type":"string","enum":["apple","atlassian","cloudflare","cognito","discord","facebook","figma","github","microsoft","google","huggingface","slack","spotify","twitch","twitter","dropbox","kick","linear","linkedin","gitlab","tiktok","reddit","roblox","salesforce","vk","zoom","notion","kakao","naver","line","paybin","paypal","polar","railway","vercel","wechat"]},{"type":"string"}]},"disableRedirect":{"type":"boolean","description":"Disable automatic redirection to the provider. Useful for handling the redirection yourself"},"idToken":{"type":"object","properties":{"token":{"type":"string","description":"ID token from the provider"},"nonce":{"type":"string","description":"Nonce used to generate the token"},"accessToken":{"type":"string","description":"Access token from the provider"},"refreshToken":{"type":"string","description":"Refresh token from the provider"},"expiresAt":{"type":"number","description":"Expiry date of the token"},"user":{"type":"object","properties":{"name":{"type":"object","properties":{"firstName":{"type":"string"},"lastName":{"type":"string"}}},"email":{"type":"string"}},"description":"The user object from the provider. Only available for some providers like Apple."}},"required":["token"]},"scopes":{"type":"array","items":{"type":"string"},"description":"Array of scopes to request from the provider. This will override the default scopes passed."},"requestSignUp":{"type":"boolean","description":"Explicitly request sign-up. Useful when disableImplicitSignUp is true for this provider"},"loginHint":{"type":"string","description":"The login hint to use for the authorization code request"},"additionalParams":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Extra query parameters to append to the provider authorization URL (e.g. Cognito identity_provider, Google hd)."},"additionalData":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["provider"]}}}},"responses":{"200":{"description":"Starts social sign-in for the named provider.","content":{"application/json":{"schema":{"type":"object","description":"Returns session details when idToken is provided, or an authorize URL otherwise","properties":{"token":{"type":"string"},"user":{"type":"object","$ref":"#/components/schemas/User"},"url":{"type":"string"},"redirect":{"type":"boolean"}},"required":["redirect"]},"example":{"token":"sess_example_not_a_live_token","user":{"id":"user_northwind_ops","name":"Northwind Treasury","email":"treasury@northwind.example","emailVerified":true,"image":"https://static.northwind.example/avatars/treasury.png","createdAt":"2026-02-11T09:14:07.000Z","updatedAt":"2026-03-04T15:42:18.000Z","role":"member","banned":false,"twoFactorEnabled":true,"lastLoginAt":"2026-03-04T15:40:00.000Z","walletPincodeEnabled":true,"walletPincodeVerificationId":"ver_pincode_northwind","walletTwoFactorEnabled":true,"walletTwoFactorVerificationId":"ver_totp_northwind","walletSecretCodeVerificationId":"018f7b0a-7c3e-7890-a1b2-c3d4e5f60789","walletSecretCodesConfirmed":true,"lastActiveOrganizationId":"org_northwind_coffee"},"redirect":false}}}},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"Bad Request. Usually due to missing parameters, or invalid parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry."},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Not Found. The requested resource was not found."},"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Too Many Requests. You have exceeded the rate limit. Try again later."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support."}},"summary":"Sign in with a social provider","x-dalp-auth":"none"}},"/api/auth/get-session":{"get":{"tags":["Sessions and sign-in"],"description":"Returns the signed-in session and user when the request carries a valid session cookie or API key. Use the result to learn who is signed in and which organization is active. If there is no session, treat the caller as signed out and send them to sign in.","operationId":"getSession","security":[{"sessionCookie":[]},{"apiKey":[]}],"parameters":[],"responses":{"200":{"description":"Returns the signed-in session and user when the request carries a valid session cookie or API key.","content":{"application/json":{"schema":{"type":["object","null"],"properties":{"session":{"$ref":"#/components/schemas/Session"},"user":{"$ref":"#/components/schemas/User"}},"required":["session","user"]},"example":{"session":{"id":"sess_northwind_console","expiresAt":"2026-03-11T15:42:18.000Z","token":"sess_example_not_a_live_token","createdAt":"2026-02-11T09:14:07.000Z","updatedAt":"2026-03-04T15:42:18.000Z","ipAddress":"203.0.113.10","userAgent":"Mozilla/5.0 NorthwindConsole","userId":"user_northwind_ops","activeOrganizationId":"org_northwind_coffee"},"user":{"id":"user_northwind_ops","name":"Northwind Treasury","email":"treasury@northwind.example","emailVerified":true,"image":"https://static.northwind.example/avatars/treasury.png","createdAt":"2026-02-11T09:14:07.000Z","updatedAt":"2026-03-04T15:42:18.000Z","role":"member","banned":false,"twoFactorEnabled":true,"lastLoginAt":"2026-03-04T15:40:00.000Z","walletPincodeEnabled":true,"walletPincodeVerificationId":"ver_pincode_northwind","walletTwoFactorEnabled":true,"walletTwoFactorVerificationId":"ver_totp_northwind","walletSecretCodeVerificationId":"018f7b0a-7c3e-7890-a1b2-c3d4e5f60789","walletSecretCodesConfirmed":true,"lastActiveOrganizationId":"org_northwind_coffee"}}}}},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"Bad Request. Usually due to missing parameters, or invalid parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry."},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Not Found. The requested resource was not found."},"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Too Many Requests. You have exceeded the rate limit. Try again later."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support."}},"summary":"Read the current session","x-dalp-auth":"optional"}},"/api/auth/sign-out":{"post":{"tags":["Sessions and sign-in"],"description":"Ends the current session and clears the session cookie. After success, discard any stored session token and send the caller to sign in.","operationId":"signOut","security":[{"sessionCookie":[]}],"parameters":[],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"callbackURL":{"type":"string","description":"The URL to redirect to after provider logout"},"disableRedirect":{"type":"boolean","description":"Return the provider logout URL without redirecting"},"state":{"type":"string","description":"State to pass to the provider logout endpoint"}}}}}},"responses":{"200":{"description":"Ends the current session and clears the session cookie.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"url":{"type":"string","description":"Provider logout URL when RP-initiated logout is available"},"redirect":{"type":"boolean","description":"Whether the client should redirect to the provider logout URL"}}},"example":{"success":true}}}},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"Bad Request. Usually due to missing parameters, or invalid parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry."},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Not Found. The requested resource was not found."},"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Too Many Requests. You have exceeded the rate limit. Try again later."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support."}},"summary":"Sign out the current user","x-dalp-auth":"optional"}},"/api/auth/sign-up/email":{"post":{"tags":["Sessions and sign-in"],"description":"Creates an account from name, email, and password. Email and password sign-up may be disabled when the deployment uses only an identity provider. On success, store the session, or send the user to verify email when a verification message is required.","operationId":"signUpWithEmailAndPassword","security":[],"parameters":[],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"The name of the user"},"email":{"type":"string","description":"The email of the user"},"password":{"type":"string","description":"The password of the user"},"image":{"type":"string","description":"The profile image URL of the user"},"callbackURL":{"type":"string","description":"The URL to use for email verification callback"},"rememberMe":{"type":"boolean","description":"If this is false, the session will not be remembered. Default is `true`."}},"required":["name","email","password"]}}}},"responses":{"200":{"description":"Creates an account from name, email, and password.","content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string","nullable":true,"description":"Authentication token for the session"},"user":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier of the user"},"email":{"type":"string","format":"email","description":"The email address of the user"},"name":{"type":"string","description":"The name of the user"},"image":{"type":"string","format":"uri","nullable":true,"description":"The profile image URL of the user"},"emailVerified":{"type":"boolean","description":"Whether the email has been verified"},"createdAt":{"type":"string","format":"date-time","description":"When the user was created"},"updatedAt":{"type":"string","format":"date-time","description":"When the user was last updated"}},"required":["id","email","name","emailVerified","createdAt","updatedAt"]}},"required":["user"]},"example":{"token":"sess_example_not_a_live_token","user":{"id":"user_northwind_ops","email":"treasury@northwind.example","name":"Northwind Treasury","image":"https://static.northwind.example/avatars/treasury.png","emailVerified":false,"createdAt":"2026-02-11T09:14:07.000Z","updatedAt":"2026-03-04T15:42:18.000Z"}}}}},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"Bad Request. Usually due to missing parameters, or invalid parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry."},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Not Found. The requested resource was not found."},"422":{"description":"Unprocessable Entity. User already exists or failed to create user.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}}},"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Too Many Requests. You have exceeded the rate limit. Try again later."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support."}},"summary":"Sign up with email and password","x-dalp-deployment-mode":"password","x-dalp-auth":"none"}},"/api/auth/sign-in/email":{"post":{"tags":["Sessions and sign-in"],"description":"Authenticates with email and password and opens a session. Email and password sign-in may be disabled when the deployment uses only an identity provider. Store the session on success. If login two-factor is enabled, complete that challenge before treating the user as signed in.","operationId":"signInEmail","security":[],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","description":"Email of the user"},"password":{"type":"string","description":"Password of the user"},"callbackURL":{"type":"string","description":"Callback URL to use as a redirect for email verification"},"rememberMe":{"type":"boolean","description":"If this is false, the session will not be remembered. Default is `true`."}},"required":["email","password"]}}}},"responses":{"200":{"description":"Authenticates with email and password and opens a session.","content":{"application/json":{"schema":{"type":"object","description":"Session response when idToken is provided","properties":{"redirect":{"type":"boolean","enum":[false]},"token":{"type":"string","description":"Session token"},"url":{"type":"string","nullable":true},"user":{"type":"object","$ref":"#/components/schemas/User"}},"required":["redirect","token","user"]},"example":{"redirect":false,"token":"sess_example_not_a_live_token","url":null,"user":{"id":"user_northwind_ops","name":"Northwind Treasury","email":"treasury@northwind.example","emailVerified":true,"image":"https://static.northwind.example/avatars/treasury.png","createdAt":"2026-02-11T09:14:07.000Z","updatedAt":"2026-03-04T15:42:18.000Z","role":"member","banned":false,"twoFactorEnabled":true,"lastLoginAt":"2026-03-04T15:40:00.000Z","walletPincodeEnabled":true,"walletPincodeVerificationId":"ver_pincode_northwind","walletTwoFactorEnabled":true,"walletTwoFactorVerificationId":"ver_totp_northwind","walletSecretCodeVerificationId":"018f7b0a-7c3e-7890-a1b2-c3d4e5f60789","walletSecretCodesConfirmed":true,"lastActiveOrganizationId":"org_northwind_coffee"}}}}},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"Bad Request. Usually due to missing parameters, or invalid parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry."},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Not Found. The requested resource was not found."},"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Too Many Requests. You have exceeded the rate limit. Try again later."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support."}},"summary":"Sign in with email and password","x-dalp-deployment-mode":"password","x-dalp-auth":"none"}},"/api/auth/reset-password":{"post":{"tags":["Sessions and sign-in"],"description":"Replaces the password using the token from the reset email. After success, sign in with the new password. Do not reuse the token.","operationId":"resetPassword","security":[],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"newPassword":{"type":"string","description":"The new password to set"},"token":{"type":"string","description":"The token to reset the password"}},"required":["newPassword"]}}}},"responses":{"200":{"description":"Replaces the password using the token from the reset email.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"boolean"}}},"example":{"status":true}}}},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"Bad Request. Usually due to missing parameters, or invalid parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry."},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Not Found. The requested resource was not found."},"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Too Many Requests. You have exceeded the rate limit. Try again later."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support."}},"summary":"Set a new password with a token","x-dalp-deployment-mode":"password","x-dalp-auth":"none"}},"/api/auth/change-email":{"post":{"tags":["Sessions and sign-in"],"operationId":"changeEmail","security":[{"sessionCookie":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"newEmail":{"type":"string","description":"The new email address to set must be a valid email address"},"callbackURL":{"type":"string","description":"The URL to redirect to after email verification"}},"required":["newEmail"]}}}},"responses":{"200":{"description":"Requests a new email for the signed-in user.","content":{"application/json":{"schema":{"type":"object","properties":{"user":{"type":"object","$ref":"#/components/schemas/User"},"status":{"type":"boolean","description":"Indicates if the request was successful"},"message":{"type":"string","enum":["Email updated","Verification email sent"],"description":"Status message of the email change process","nullable":true}},"required":["status"]},"example":{"user":{"id":"user_northwind_ops","name":"Northwind Treasury","email":"treasury@northwind.example","emailVerified":true,"image":"https://static.northwind.example/avatars/treasury.png","createdAt":"2026-02-11T09:14:07.000Z","updatedAt":"2026-03-04T15:42:18.000Z","role":"member","banned":false,"twoFactorEnabled":true,"lastLoginAt":"2026-03-04T15:40:00.000Z","walletPincodeEnabled":true,"walletPincodeVerificationId":"ver_pincode_northwind","walletTwoFactorEnabled":true,"walletTwoFactorVerificationId":"ver_totp_northwind","walletSecretCodeVerificationId":"018f7b0a-7c3e-7890-a1b2-c3d4e5f60789","walletSecretCodesConfirmed":true,"lastActiveOrganizationId":"org_northwind_coffee"},"status":true,"message":"Verification email sent"}}}},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"Bad Request. Usually due to missing parameters, or invalid parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry."},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Not Found. The requested resource was not found."},"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Too Many Requests. You have exceeded the rate limit. Try again later."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support."}},"summary":"Change the account email","description":"Requests a new email for the signed-in user. A session is required. The user must confirm the new address from the verification message before it becomes the login email.","x-dalp-deployment-mode":"password","x-dalp-auth":"session"}},"/api/auth/change-password":{"post":{"tags":["Sessions and sign-in"],"description":"Replaces the signed-in user's password. Send the current password and the new password. You may also revoke other sessions. After success, use the new password for later sign-in.","operationId":"changePassword","security":[{"sessionCookie":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"newPassword":{"type":"string","description":"The new password to set"},"currentPassword":{"type":"string","description":"The current password is required"},"revokeOtherSessions":{"type":"boolean","description":"Must be a boolean value"}},"required":["newPassword","currentPassword"]}}}},"responses":{"200":{"description":"Replaces the signed-in user's password.","content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string","nullable":true,"description":"New session token if other sessions were revoked"},"user":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier of the user"},"email":{"type":"string","format":"email","description":"The email address of the user"},"name":{"type":"string","description":"The name of the user"},"image":{"type":"string","format":"uri","nullable":true,"description":"The profile image URL of the user"},"emailVerified":{"type":"boolean","description":"Whether the email has been verified"},"createdAt":{"type":"string","format":"date-time","description":"When the user was created"},"updatedAt":{"type":"string","format":"date-time","description":"When the user was last updated"}},"required":["id","email","name","emailVerified","createdAt","updatedAt"]}},"required":["user"]},"example":{"token":"sess_example_not_a_live_token","user":{"id":"user_northwind_ops","email":"treasury@northwind.example","name":"Northwind Treasury","image":"https://static.northwind.example/avatars/treasury.png","emailVerified":false,"createdAt":"2026-02-11T09:14:07.000Z","updatedAt":"2026-03-04T15:42:18.000Z"}}}}},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"Bad Request. Usually due to missing parameters, or invalid parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry."},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Not Found. The requested resource was not found."},"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Too Many Requests. You have exceeded the rate limit. Try again later."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support."}},"summary":"Change the account password","x-dalp-deployment-mode":"password","x-dalp-auth":"session"}},"/api/auth/request-password-reset":{"post":{"tags":["Sessions and sign-in"],"description":"Sends a reset message to the named email when an account exists. Do not treat success as proof that the email is registered. Ask the user to open the message and submit the token to set a new password.","operationId":"requestPasswordReset","security":[],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","description":"The email address of the user to send a password reset email to"},"redirectTo":{"type":"string","description":"The URL to redirect the user to reset their password. If the token isn't valid or expired, it'll be redirected with a query parameter `?error=INVALID_TOKEN`. If the token is valid, it'll be redirected with a query parameter `?token=VALID_TOKEN"}},"required":["email"]}}}},"responses":{"200":{"description":"Sends a reset message to the named email when an account exists.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"boolean"},"message":{"type":"string"}}},"example":{"status":true,"message":"If an account exists, a reset message was sent."}}}},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"Bad Request. Usually due to missing parameters, or invalid parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry."},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Not Found. The requested resource was not found."},"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Too Many Requests. You have exceeded the rate limit. Try again later."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support."}},"summary":"Send a password reset message","x-dalp-deployment-mode":"password","x-dalp-auth":"none"}},"/api/auth/list-sessions":{"get":{"tags":["Sessions and sign-in"],"description":"Returns every active session for the signed-in user. Use this list to show where the account is signed in. Pass a token from this list to revoke a specific session.","operationId":"listUserSessions","security":[{"sessionCookie":[]}],"parameters":[],"responses":{"200":{"description":"Returns every active session for the signed-in user.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Session"}},"example":[{"id":"sess_northwind_console","expiresAt":"2026-03-11T15:42:18.000Z","token":"sess_example_not_a_live_token","createdAt":"2026-02-11T09:14:07.000Z","updatedAt":"2026-03-04T15:42:18.000Z","ipAddress":"203.0.113.10","userAgent":"Mozilla/5.0 NorthwindConsole","userId":"user_northwind_ops","activeOrganizationId":"org_northwind_coffee"}]}}},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"Bad Request. Usually due to missing parameters, or invalid parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry."},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Not Found. The requested resource was not found."},"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Too Many Requests. You have exceeded the rate limit. Try again later."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support."}},"summary":"List active sessions","x-dalp-auth":"session"}},"/api/auth/revoke-session":{"post":{"tags":["Sessions and sign-in"],"description":"Invalidates the session identified by the submitted token. A session is required. After success, that token can no longer authenticate.","security":[{"sessionCookie":[]}],"parameters":[],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string","description":"The token to revoke"}},"required":["token"]}}}},"responses":{"200":{"description":"Invalidates the session identified by the submitted token.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"boolean","description":"Indicates if the session was revoked successfully"}},"required":["status"]},"example":{"status":true}}}},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"Bad Request. Usually due to missing parameters, or invalid parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry."},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Not Found. The requested resource was not found."},"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Too Many Requests. You have exceeded the rate limit. Try again later."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support."}},"summary":"Revoke one session","operationId":"auth_post_revoke_session","x-dalp-auth":"session"}},"/api/auth/revoke-other-sessions":{"post":{"tags":["Sessions and sign-in"],"description":"Invalidates every session except the current one. The current session stays valid. Use this after a password change or a lost-device event.","security":[{"sessionCookie":[]}],"parameters":[],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"responses":{"200":{"description":"Invalidates every session except the current one.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"boolean","description":"Indicates if all other sessions were revoked successfully"}},"required":["status"]},"example":{"status":true}}}},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"Bad Request. Usually due to missing parameters, or invalid parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry."},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Not Found. The requested resource was not found."},"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Too Many Requests. You have exceeded the rate limit. Try again later."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support."}},"summary":"Revoke other sessions","operationId":"auth_post_revoke_other_sessions","x-dalp-auth":"session"}},"/api/auth/api-key/create":{"post":{"tags":["API keys"],"description":"Creates an API key for the signed-in user or, when permitted, a named organization. The full key is shown only in this response. Store it now. Later reads return only metadata. A session is required; an API key cannot create keys.","security":[{"sessionCookie":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"configId":{"type":"string","description":"The configuration ID to use for the API key. If not provided, the default configuration will be used."},"name":{"type":"string","description":"Name of the Api Key"},"expiresIn":{"type":["number","null"],"description":"Expiration time of the Api Key in seconds"},"prefix":{"type":"string","description":"Prefix of the Api Key"},"remaining":{"type":["number","null"],"description":"Remaining number of requests. Server side only"},"metadata":{},"refillAmount":{"type":"number","description":"Amount to refill the remaining count of the Api Key. server-only. Eg: 100"},"refillInterval":{"type":"number","description":"Interval to refill the Api Key in milliseconds. server-only. Eg: 1000"},"rateLimitTimeWindow":{"type":"number","description":"The duration in milliseconds where each request is counted. Once the `maxRequests` is reached, the request will be rejected until the `timeWindow` has passed, at which point the `timeWindow` will be reset. server-only. Eg: 1000"},"rateLimitMax":{"type":"number","description":"Maximum amount of requests allowed within a window. Once the `maxRequests` is reached, the request will be rejected until the `timeWindow` has passed, at which point the `timeWindow` will be reset. server-only. Eg: 100"},"rateLimitEnabled":{"type":"boolean","description":"Whether the key has rate limiting enabled. server-only. Eg: true"},"permissions":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"string"}},"description":"Permissions of the Api Key."},"userId":{"type":"string","description":"User Id of the user that the Api Key belongs to. server-only. Eg: \"user-id\""},"organizationId":{"type":"string","description":"Organization Id of the organization that the Api Key belongs to. Eg: 'org-id'"}}}}}},"responses":{"200":{"description":"Creates an API key for the signed-in user or, when permitted, a named organization.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the API key"},"createdAt":{"type":"string","format":"date-time","description":"Creation timestamp"},"updatedAt":{"type":"string","format":"date-time","description":"Last update timestamp"},"name":{"type":"string","nullable":true,"description":"Name of the API key"},"prefix":{"type":"string","nullable":true,"description":"Prefix of the API key"},"start":{"type":"string","nullable":true,"description":"Starting characters of the key (if configured)"},"key":{"type":"string","description":"The full API key (only returned on creation)"},"enabled":{"type":"boolean","description":"Whether the key is enabled"},"expiresAt":{"type":"string","format":"date-time","nullable":true,"description":"Expiration timestamp"},"referenceId":{"type":"string","description":"ID of the reference owning the key"},"lastRefillAt":{"type":"string","format":"date-time","nullable":true,"description":"Last refill timestamp"},"lastRequest":{"type":"string","format":"date-time","nullable":true,"description":"Last request timestamp"},"metadata":{"type":"object","nullable":true,"additionalProperties":true,"description":"Metadata associated with the key"},"rateLimitMax":{"type":"number","nullable":true,"description":"Maximum requests in time window"},"rateLimitTimeWindow":{"type":"number","nullable":true,"description":"Rate limit time window in milliseconds"},"remaining":{"type":"number","nullable":true,"description":"Remaining requests"},"refillAmount":{"type":"number","nullable":true,"description":"Amount to refill"},"refillInterval":{"type":"number","nullable":true,"description":"Refill interval in milliseconds"},"rateLimitEnabled":{"type":"boolean","description":"Whether rate limiting is enabled"},"requestCount":{"type":"number","description":"Current request count in window"},"permissions":{"type":"object","nullable":true,"additionalProperties":{"type":"array","items":{"type":"string"}},"description":"Permissions associated with the key"}},"required":["id","createdAt","updatedAt","key","enabled","referenceId","rateLimitEnabled","requestCount"]},"example":{"id":"apikey_northwind_treasury","createdAt":"2026-02-11T09:14:07.000Z","updatedAt":"2026-03-04T15:42:18.000Z","name":"Treasury automation","prefix":"sm_dalp_","start":"sm_dalp_exampl","key":"sm_dalp_example_not_a_live_key","enabled":true,"expiresAt":"2026-03-11T15:42:18.000Z","referenceId":"user_northwind_ops","lastRefillAt":"2026-03-04T15:42:18.000Z","lastRequest":"2026-03-04T15:42:18.000Z","metadata":{"scope":"read-write"},"rateLimitMax":10000,"rateLimitTimeWindow":60000,"remaining":1000,"refillAmount":1000,"refillInterval":3600000,"rateLimitEnabled":true,"requestCount":0,"permissions":{"organization":["read"]}}}}},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"Bad Request. Usually due to missing parameters, or invalid parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry."},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Not Found. The requested resource was not found."},"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Too Many Requests. You have exceeded the rate limit. Try again later."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support."}},"summary":"Create an API key","operationId":"auth_post_api_key_create","x-dalp-auth":"session"}},"/api/auth/api-key/get":{"get":{"tags":["API keys"],"description":"Returns metadata for the API key named by id. The secret key value is not returned. Use this to inspect expiry, remaining requests, and enabled state.","security":[{"sessionCookie":[]},{"apiKey":[]}],"parameters":[{"name":"configId","in":"query","schema":{"type":"string","description":"The configuration ID to use for the API key lookup. If not provided, the default configuration will be used."}},{"name":"id","in":"query","schema":{"type":"string","description":"The id of the Api Key"}}],"responses":{"200":{"description":"Returns metadata for the API key named by id.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"ID"},"name":{"type":"string","nullable":true,"description":"The name of the key"},"start":{"type":"string","nullable":true,"description":"Shows the first few characters of the API key, including the prefix. This allows you to show those few characters in the UI to make it easier for users to identify the API key."},"prefix":{"type":"string","nullable":true,"description":"The API Key prefix. Stored as plain text."},"userId":{"type":"string","description":"The owner of the user id"},"refillInterval":{"type":"number","nullable":true,"description":"The interval in milliseconds between refills of the `remaining` count. Example: 3600000 // refill every hour (3600000ms = 1h)"},"refillAmount":{"type":"number","nullable":true,"description":"The amount to refill"},"lastRefillAt":{"type":"string","format":"date-time","nullable":true,"description":"The last refill date"},"enabled":{"type":"boolean","description":"Sets if key is enabled or disabled","default":true},"rateLimitEnabled":{"type":"boolean","description":"Whether the key has rate limiting enabled"},"rateLimitTimeWindow":{"type":"number","nullable":true,"description":"The duration in milliseconds"},"rateLimitMax":{"type":"number","nullable":true,"description":"Maximum amount of requests allowed within a window"},"requestCount":{"type":"number","description":"The number of requests made within the rate limit time window"},"remaining":{"type":"number","nullable":true,"description":"Remaining requests (every time api key is used this should updated and should be updated on refill as well)"},"lastRequest":{"type":"string","format":"date-time","nullable":true,"description":"When last request occurred"},"expiresAt":{"type":"string","format":"date-time","nullable":true,"description":"Expiry date of a key"},"createdAt":{"type":"string","format":"date-time","description":"created at"},"updatedAt":{"type":"string","format":"date-time","description":"updated at"},"metadata":{"type":"object","nullable":true,"additionalProperties":true,"description":"Extra metadata about the apiKey"},"permissions":{"type":"string","nullable":true,"description":"Permissions for the api key (stored as JSON string)"}},"required":["id","userId","enabled","rateLimitEnabled","requestCount","createdAt","updatedAt"]},"example":{"id":"apikey_northwind_treasury","name":"Treasury automation","start":"sm_dalp_exampl","prefix":"sm_dalp_","userId":"user_northwind_ops","refillInterval":3600000,"refillAmount":1000,"lastRefillAt":"2026-03-04T15:42:18.000Z","enabled":true,"rateLimitEnabled":true,"rateLimitTimeWindow":60000,"rateLimitMax":10000,"requestCount":12,"remaining":988,"lastRequest":"2026-03-04T15:42:18.000Z","expiresAt":"2026-03-11T15:42:18.000Z","createdAt":"2026-02-11T09:14:07.000Z","updatedAt":"2026-03-04T15:42:18.000Z","metadata":{"scope":"read-write"},"permissions":"{\"organization\":[\"read\"]}"}}}},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"Bad Request. Usually due to missing parameters, or invalid parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry."},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Not Found. The requested resource was not found."},"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Too Many Requests. You have exceeded the rate limit. Try again later."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support."}},"summary":"Read an API key","operationId":"auth_get_api_key_get","x-dalp-auth":"session-or-api-key"}},"/api/auth/api-key/update":{"post":{"tags":["API keys"],"description":"Updates metadata, expiry, or enabled state for the named API key. A session is required. An API key cannot update keys. Read the returned record to confirm the change. The secret key value is not returned.","security":[{"sessionCookie":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"configId":{"type":"string","description":"The configuration ID to use for the API key lookup. If not provided, the default configuration will be used."},"keyId":{"type":"string","description":"The id of the Api Key"},"userId":{"type":"string","description":"The id of the user which the api key belongs to. server-only. Eg: \"some-user-id\""},"name":{"type":"string","description":"The name of the key"},"enabled":{"type":"boolean","description":"Whether the Api Key is enabled or not"},"remaining":{"type":"number","description":"The number of remaining requests"},"refillAmount":{"type":"number","description":"The refill amount"},"refillInterval":{"type":"number","description":"The refill interval"},"metadata":{},"expiresIn":{"type":["number","null"],"description":"Expiration time of the Api Key in seconds"},"rateLimitEnabled":{"type":"boolean","description":"Whether the key has rate limiting enabled."},"rateLimitTimeWindow":{"type":"number","description":"The duration in milliseconds where each request is counted. server-only. Eg: 1000"},"rateLimitMax":{"type":"number","description":"Maximum amount of requests allowed within a window. Once the `maxRequests` is reached, the request will be rejected until the `timeWindow` has passed, at which point the `timeWindow` will be reset. server-only. Eg: 100"},"permissions":{"type":["object","null"],"propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"string"}},"description":"Update the permissions on the API Key. server-only."}},"required":["keyId"]}}}},"responses":{"200":{"description":"Updates metadata, expiry, or enabled state for the named API key.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"ID"},"name":{"type":"string","nullable":true,"description":"The name of the key"},"start":{"type":"string","nullable":true,"description":"Shows the first few characters of the API key, including the prefix. This allows you to show those few characters in the UI to make it easier for users to identify the API key."},"prefix":{"type":"string","nullable":true,"description":"The API Key prefix. Stored as plain text."},"userId":{"type":"string","description":"The owner of the user id"},"refillInterval":{"type":"number","nullable":true,"description":"The interval in milliseconds between refills of the `remaining` count. Example: 3600000 // refill every hour (3600000ms = 1h)"},"refillAmount":{"type":"number","nullable":true,"description":"The amount to refill"},"lastRefillAt":{"type":"string","format":"date-time","nullable":true,"description":"The last refill date"},"enabled":{"type":"boolean","description":"Sets if key is enabled or disabled","default":true},"rateLimitEnabled":{"type":"boolean","description":"Whether the key has rate limiting enabled"},"rateLimitTimeWindow":{"type":"number","nullable":true,"description":"The duration in milliseconds"},"rateLimitMax":{"type":"number","nullable":true,"description":"Maximum amount of requests allowed within a window"},"requestCount":{"type":"number","description":"The number of requests made within the rate limit time window"},"remaining":{"type":"number","nullable":true,"description":"Remaining requests (every time api key is used this should updated and should be updated on refill as well)"},"lastRequest":{"type":"string","format":"date-time","nullable":true,"description":"When last request occurred"},"expiresAt":{"type":"string","format":"date-time","nullable":true,"description":"Expiry date of a key"},"createdAt":{"type":"string","format":"date-time","description":"created at"},"updatedAt":{"type":"string","format":"date-time","description":"updated at"},"metadata":{"type":"object","nullable":true,"additionalProperties":true,"description":"Extra metadata about the apiKey"},"permissions":{"type":"string","nullable":true,"description":"Permissions for the api key (stored as JSON string)"}},"required":["id","userId","enabled","rateLimitEnabled","requestCount","createdAt","updatedAt"]},"example":{"id":"apikey_northwind_treasury","name":"Treasury automation","start":"sm_dalp_exampl","prefix":"sm_dalp_","userId":"user_northwind_ops","refillInterval":3600000,"refillAmount":1000,"lastRefillAt":"2026-03-04T15:42:18.000Z","enabled":true,"rateLimitEnabled":true,"rateLimitTimeWindow":60000,"rateLimitMax":10000,"requestCount":12,"remaining":988,"lastRequest":"2026-03-04T15:42:18.000Z","expiresAt":"2026-03-11T15:42:18.000Z","createdAt":"2026-02-11T09:14:07.000Z","updatedAt":"2026-03-04T15:42:18.000Z","metadata":{"scope":"read-write"},"permissions":"{\"organization\":[\"read\"]}"}}}},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"Bad Request. Usually due to missing parameters, or invalid parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry."},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Not Found. The requested resource was not found."},"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Too Many Requests. You have exceeded the rate limit. Try again later."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support."}},"summary":"Update an API key","operationId":"auth_post_api_key_update","x-dalp-auth":"session"}},"/api/auth/api-key/delete":{"post":{"tags":["API keys"],"description":"Deletes the named API key. After success, that key can no longer authenticate. Issue a new key if the caller still needs programmatic access.","security":[{"sessionCookie":[]}],"parameters":[],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"keyId":{"type":"string","description":"The id of the API key to delete"}},"required":["keyId"]}}}},"responses":{"200":{"description":"Deletes the named API key.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicates if the API key was successfully deleted"}},"required":["success"]},"example":{"success":true}}}},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"Bad Request. Usually due to missing parameters, or invalid parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry."},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Not Found. The requested resource was not found."},"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Too Many Requests. You have exceeded the rate limit. Try again later."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support."}},"summary":"Delete an API key","operationId":"auth_post_api_key_delete","x-dalp-auth":"session"}},"/api/auth/api-key/list":{"get":{"tags":["API keys"],"description":"Returns API key metadata for the signed-in user or a specific organization. Secret key values are not included. Use an id from this list to read, update, or delete a key.","security":[{"sessionCookie":[]},{"apiKey":[]}],"parameters":[],"responses":{"200":{"description":"Returns API key metadata for the signed-in user or a specific organization.","content":{"application/json":{"schema":{"type":"object","properties":{"apiKeys":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"ID"},"name":{"type":"string","nullable":true,"description":"The name of the key"},"start":{"type":"string","nullable":true,"description":"Shows the first few characters of the API key, including the prefix. This allows you to show those few characters in the UI to make it easier for users to identify the API key."},"prefix":{"type":"string","nullable":true,"description":"The API Key prefix. Stored as plain text."},"userId":{"type":"string","description":"The owner of the user id"},"refillInterval":{"type":"number","nullable":true,"description":"The interval in milliseconds between refills of the `remaining` count. Example: 3600000 // refill every hour (3600000ms = 1h)"},"refillAmount":{"type":"number","nullable":true,"description":"The amount to refill"},"lastRefillAt":{"type":"string","format":"date-time","nullable":true,"description":"The last refill date"},"enabled":{"type":"boolean","description":"Sets if key is enabled or disabled","default":true},"rateLimitEnabled":{"type":"boolean","description":"Whether the key has rate limiting enabled"},"rateLimitTimeWindow":{"type":"number","nullable":true,"description":"The duration in milliseconds"},"rateLimitMax":{"type":"number","nullable":true,"description":"Maximum amount of requests allowed within a window"},"requestCount":{"type":"number","description":"The number of requests made within the rate limit time window"},"remaining":{"type":"number","nullable":true,"description":"Remaining requests (every time api key is used this should updated and should be updated on refill as well)"},"lastRequest":{"type":"string","format":"date-time","nullable":true,"description":"When last request occurred"},"expiresAt":{"type":"string","format":"date-time","nullable":true,"description":"Expiry date of a key"},"createdAt":{"type":"string","format":"date-time","description":"created at"},"updatedAt":{"type":"string","format":"date-time","description":"updated at"},"metadata":{"type":"object","nullable":true,"additionalProperties":true,"description":"Extra metadata about the apiKey"},"permissions":{"type":"string","nullable":true,"description":"Permissions for the api key (stored as JSON string)"}},"required":["id","userId","enabled","rateLimitEnabled","requestCount","createdAt","updatedAt"]}},"total":{"type":"number","description":"Total number of API keys"},"limit":{"type":"number","nullable":true,"description":"The limit used for pagination"},"offset":{"type":"number","nullable":true,"description":"The offset used for pagination"}},"required":["apiKeys","total"]},"example":{"apiKeys":[{"id":"apikey_northwind_treasury","name":"Treasury automation","start":"sm_dalp_exampl","prefix":"sm_dalp_","userId":"user_northwind_ops","refillInterval":3600000,"refillAmount":1000,"lastRefillAt":"2026-03-04T15:42:18.000Z","enabled":true,"rateLimitEnabled":true,"rateLimitTimeWindow":60000,"rateLimitMax":10000,"requestCount":12,"remaining":988,"lastRequest":"2026-03-04T15:42:18.000Z","expiresAt":"2026-03-11T15:42:18.000Z","createdAt":"2026-02-11T09:14:07.000Z","updatedAt":"2026-03-04T15:42:18.000Z","metadata":{"scope":"read-write"},"permissions":"{\"organization\":[\"read\"]}"}],"total":1,"limit":20,"offset":0}}}},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"Bad Request. Usually due to missing parameters, or invalid parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry."},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Not Found. The requested resource was not found."},"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Too Many Requests. You have exceeded the rate limit. Try again later."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support."}},"summary":"List API keys","operationId":"auth_get_api_key_list","x-dalp-auth":"session-or-api-key"}},"/api/auth/passkey/generate-register-options":{"get":{"tags":["Account security"],"description":"Returns WebAuthn registration options for the signed-in user. Pass them to the authenticator, then send the authenticator result to the registration verify route.","operationId":"generatePasskeyRegistrationOptions","security":[{"sessionCookie":[]}],"parameters":[{"name":"authenticatorAttachment","in":"query","required":false,"description":"Type of authenticator to use for registration.\n                          \"platform\" for device-specific authenticators,\n                          \"cross-platform\" for authenticators that can be used across devices.","schema":{"type":"string","enum":["platform","cross-platform"]}},{"name":"name","in":"query","required":false,"description":"Optional custom name for the passkey.\n                          This can help identify the passkey when managing multiple credentials.","schema":{"type":"string"}},{"name":"context","in":"query","required":false,"description":"Optional context for passkey-first registration flows.","schema":{"type":"string"}}],"responses":{"200":{"description":"Returns WebAuthn registration options for the signed-in user.","content":{"application/json":{"schema":{"type":"object","properties":{"challenge":{"type":"string"},"rp":{"type":"object","properties":{"name":{"type":"string"},"id":{"type":"string"}}},"user":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"displayName":{"type":"string"}}},"pubKeyCredParams":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"alg":{"type":"number"}}}},"timeout":{"type":"number"},"excludeCredentials":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"transports":{"type":"array","items":{"type":"string"}}}}},"authenticatorSelection":{"type":"object","properties":{"authenticatorAttachment":{"type":"string"},"requireResidentKey":{"type":"boolean"},"userVerification":{"type":"string"}}},"attestation":{"type":"string"},"extensions":{"type":"object"}}},"example":{"challenge":"challenge_example_not_live","rp":{"name":"DALP Console","id":"console.northwind.example"},"user":{"id":"user_northwind_ops","name":"treasury@northwind.example","displayName":"Northwind Treasury"},"pubKeyCredParams":[{"type":"public-key","alg":-7},{"type":"public-key","alg":-257}],"timeout":60000,"excludeCredentials":[{"id":"cred_example_northwind_laptop","type":"public-key","transports":["internal"]}],"authenticatorSelection":{"authenticatorAttachment":"platform","requireResidentKey":false,"userVerification":"preferred"},"attestation":"none","extensions":{}}}}},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"Bad Request. Usually due to missing parameters, or invalid parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry."},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Not Found. The requested resource was not found."},"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Too Many Requests. You have exceeded the rate limit. Try again later."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support."}},"summary":"Start passkey registration","x-dalp-auth":"session"}},"/api/auth/passkey/generate-authenticate-options":{"get":{"tags":["Account security"],"description":"Returns WebAuthn authentication options. Pass them to the authenticator, then send the authenticator result to the authentication verify route.","operationId":"passkeyGenerateAuthenticateOptions","security":[],"parameters":[],"responses":{"200":{"description":"Returns WebAuthn authentication options.","content":{"application/json":{"schema":{"type":"object","properties":{"challenge":{"type":"string"},"rp":{"type":"object","properties":{"name":{"type":"string"},"id":{"type":"string"}}},"user":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"displayName":{"type":"string"}}},"timeout":{"type":"number"},"allowCredentials":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"transports":{"type":"array","items":{"type":"string"}}}}},"userVerification":{"type":"string"},"authenticatorSelection":{"type":"object","properties":{"authenticatorAttachment":{"type":"string"},"requireResidentKey":{"type":"boolean"},"userVerification":{"type":"string"}}},"extensions":{"type":"object"}}},"example":{"challenge":"challenge_example_not_live","rp":{"name":"DALP Console","id":"console.northwind.example"},"user":{"id":"user_northwind_ops","name":"treasury@northwind.example","displayName":"Northwind Treasury"},"timeout":60000,"allowCredentials":[{"id":"cred_example_northwind_laptop","type":"public-key","transports":["internal"]}],"userVerification":"preferred","authenticatorSelection":{"authenticatorAttachment":"platform","requireResidentKey":false,"userVerification":"preferred"},"extensions":{}}}}},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"Bad Request. Usually due to missing parameters, or invalid parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry."},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Not Found. The requested resource was not found."},"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Too Many Requests. You have exceeded the rate limit. Try again later."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support."}},"summary":"Start passkey sign-in","x-dalp-auth":"none"}},"/api/auth/passkey/verify-registration":{"post":{"tags":["Account security"],"description":"Verifies the authenticator registration result and stores the passkey. A session is required. After success, the passkey can be used to sign in.","operationId":"passkeyVerifyRegistration","security":[{"sessionCookie":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"response":{},"name":{"type":"string","description":"Name of the passkey"},"createSession":{"type":"boolean","description":"Create a session after registering the passkey"}},"required":["response"]}}}},"responses":{"200":{"description":"Verifies the authenticator registration result and stores the passkey.","content":{"application/json":{"schema":{"type":"object","allOf":[{"$ref":"#/components/schemas/Passkey"},{"type":"object","properties":{"session":{"$ref":"#/components/schemas/Session"},"user":{"$ref":"#/components/schemas/User"}}}]},"example":{"id":"passkey_northwind_laptop","name":"Northwind laptop","publicKey":"pQECAyYgASFYIExamplePublicKeyNotLive","userId":"user_northwind_ops","credentialID":"cred_example_northwind_laptop","counter":7,"deviceType":"platform","backedUp":true,"transports":"internal,hybrid","createdAt":"2026-02-11T09:14:07.000Z","aaguid":"a1b2c3d4-e5f6-4789-a012-3456789abcde"}}}},"400":{"description":"The authentication request is invalid. Correct the request fields before you send it again."},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry."},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Not Found. The requested resource was not found."},"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Too Many Requests. You have exceeded the rate limit. Try again later."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support."}},"summary":"Finish passkey registration","x-dalp-auth":"session"}},"/api/auth/passkey/list-user-passkeys":{"get":{"tags":["Account security"],"description":"Returns every passkey registered for the signed-in user. Use an id from this list to rename or delete a passkey.","security":[{"sessionCookie":[]},{"apiKey":[]}],"parameters":[],"responses":{"200":{"description":"Returns every passkey registered for the signed-in user.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Passkey","required":["id","userId","publicKey","createdAt","updatedAt"]},"description":"Array of passkey objects associated with the user"},"example":[{"id":"passkey_northwind_laptop","name":"Northwind laptop","publicKey":"pQECAyYgASFYIExamplePublicKeyNotLive","userId":"user_northwind_ops","credentialID":"cred_example_northwind_laptop","counter":7,"deviceType":"platform","backedUp":true,"transports":"internal,hybrid","createdAt":"2026-02-11T09:14:07.000Z","aaguid":"a1b2c3d4-e5f6-4789-a012-3456789abcde","updatedAt":"2026-03-04T15:42:18.000Z"}]}}},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"Bad Request. Usually due to missing parameters, or invalid parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry."},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Not Found. The requested resource was not found."},"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Too Many Requests. You have exceeded the rate limit. Try again later."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support."}},"summary":"List passkeys","operationId":"auth_get_passkey_list_user_passkeys","x-dalp-auth":"session-or-api-key"}},"/api/auth/passkey/delete-passkey":{"post":{"tags":["Account security"],"description":"Deletes the named passkey from the signed-in account. After success, that passkey can no longer sign the user in.","security":[{"sessionCookie":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"The ID of the passkey to delete. Eg: \"some-passkey-id\""}},"required":["id"]}}}},"responses":{"200":{"description":"Deletes the named passkey from the signed-in account.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"boolean","description":"Indicates whether the deletion was successful"}},"required":["status"]},"example":{"status":true}}}},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"Bad Request. Usually due to missing parameters, or invalid parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry."},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Not Found. The requested resource was not found."},"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Too Many Requests. You have exceeded the rate limit. Try again later."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support."}},"summary":"Delete a passkey","operationId":"auth_post_passkey_delete_passkey","x-dalp-auth":"session"}},"/api/auth/wallet/pincode/enable":{"post":{"tags":["Account security"],"description":"Stores a 6-digit PIN code on the signed-in account so later signing requests can present it as wallet verification. After onboarding, send the account password. If a PIN is already set, the platform stores nothing. Next, present this PIN on signing requests, and generate recovery codes so you can reset it later.","security":[{"sessionCookie":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"pincode":{"type":"string","description":"The pincode for wallet verification"},"password":{"type":"string","description":"User password (only required if the user has done the initial onboarding)"}},"required":["pincode"]}}}},"responses":{"200":{"description":"Stores a 6-digit PIN code on the signed-in account so later signing requests can present it as wallet verification.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Success status"}}},"example":{"success":true}}}},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"Bad Request. Usually due to missing parameters, or invalid parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry."},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Not Found. The requested resource was not found."},"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Too Many Requests. You have exceeded the rate limit. Try again later."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support."}},"summary":"Enable the wallet PIN code","operationId":"auth_post_wallet_pincode_enable","x-dalp-auth":"session"}},"/api/auth/wallet/pincode/update":{"post":{"tags":["Account security"],"description":"Replaces the current PIN code on the signed-in account. Send the account password and the new 6-digit PIN. The previous PIN stops working as soon as this call succeeds. Next, present the new PIN on signing requests.","security":[{"sessionCookie":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"password":{"type":"string"},"newPincode":{"type":"string"}},"required":["password","newPincode"]}}}},"responses":{"200":{"description":"Replaces the current PIN code on the signed-in account.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Success status"}}},"example":{"success":true}}}},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"Bad Request. Usually due to missing parameters, or invalid parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry."},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Not Found. The requested resource was not found."},"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Too Many Requests. You have exceeded the rate limit. Try again later."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support."}},"summary":"Replace the wallet PIN code","operationId":"auth_post_wallet_pincode_update","x-dalp-auth":"session"}},"/api/auth/wallet/pincode/recover":{"post":{"tags":["Account security"],"description":"Replaces an unconfirmed PIN that has never been used after signing in again through the account's SSO provider. The SSO sign-in must be less than five minutes old. A confirmed or previously used PIN cannot be replaced this way.","security":[{"sessionCookie":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"newPincode":{"type":"string"}},"required":["newPincode"]}}}},"responses":{"200":{"description":"Replaces an unconfirmed PIN that has never been used after signing in again through the account's SSO provider.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Success status"}}},"example":{"success":true}}}},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"Bad Request. Usually due to missing parameters, or invalid parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry."},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Not Found. The requested resource was not found."},"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Too Many Requests. You have exceeded the rate limit. Try again later."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support."}},"summary":"Recover an interrupted wallet PIN setup","operationId":"auth_post_wallet_pincode_recover","x-dalp-auth":"session"}},"/api/auth/wallet/pincode/reset":{"post":{"tags":["Account security"],"description":"Sets a new PIN code using one unused recovery code. You do not send the old PIN or the account password. The platform consumes that code. When the last remaining code is used, the response includes a fresh recovery set that you must record now.","security":[{"sessionCookie":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"recoveryCode":{"type":"string","description":"A wallet recovery code authorizing the reset"},"newPincode":{"type":"string","description":"The new pincode to set"}},"required":["recoveryCode","newPincode"]}}}},"responses":{"200":{"description":"Sets a new PIN code using one unused recovery code.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Success status"},"recoveryCodes":{"type":"array","items":{"type":"string"},"description":"Fresh recovery codes returned only when the consumed code exhausted the prior set"}}},"example":{"success":true,"recoveryCodes":["k7m2p-9x4qw","n3b8c-2h6jt","p9w4d-7r1vm"]}}}},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"Bad Request. Usually due to missing parameters, or invalid parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry."},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Not Found. The requested resource was not found."},"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Too Many Requests. You have exceeded the rate limit. Try again later."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support."}},"summary":"Reset the wallet PIN with a recovery code","operationId":"auth_post_wallet_pincode_reset","x-dalp-auth":"session"}},"/api/auth/wallet/secret-codes/generate":{"post":{"tags":["Account security"],"description":"Issues a new set of recovery codes for the signed-in account and stores only their hashes. Record the returned codes now. The platform cannot show them again. When confirmed codes already exist, send the account password. Echo the returned verification id to the confirm route.","security":[{"sessionCookie":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"password":{"type":"string","description":"User password"}}}}}},"responses":{"200":{"description":"Issues a new set of recovery codes for the signed-in account and stores only their hashes.","content":{"application/json":{"schema":{"type":"object","properties":{"secretCodes":{"type":"array","items":{"type":"string"},"description":"Secret codes"},"rotated":{"type":"boolean","description":"True when a confirmed set was replaced; false for the first generated set."},"verificationId":{"type":"string","description":"Identifier of the verification row the returned codes belong to. Clients MUST echo this back to /confirm so the server can reject confirmations against a rotated-away set."}},"required":["secretCodes","rotated","verificationId"]},"example":{"secretCodes":["k7m2p-9x4qw","n3b8c-2h6jt","p9w4d-7r1vm"],"rotated":false,"verificationId":"018f7b0a-7c3e-7890-a1b2-c3d4e5f60789"}}}},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"Bad Request. Usually due to missing parameters, or invalid parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry."},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Not Found. The requested resource was not found."},"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Too Many Requests. You have exceeded the rate limit. Try again later."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support."}},"summary":"Generate wallet recovery codes","operationId":"auth_post_wallet_secret_codes_generate","x-dalp-auth":"session"}},"/api/auth/wallet/secret-codes/confirm":{"post":{"tags":["Account security"],"description":"Records that the signed-in caller stored the recovery codes from generate. Send the verification id that generate returned. A mismatch means those codes were rotated away, and the platform stores no confirmation. Next, use a code on the PIN reset route if you lose the PIN.","security":[{"sessionCookie":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"stored":{"type":"boolean","description":"Whether the secret codes were stored"},"verificationId":{"type":"string","description":"The verification id returned by /generate. Must match the session's current walletSecretCodeVerificationId; otherwise the caller is confirming a rotated-away set and is rejected."}},"required":["stored","verificationId"]}}}},"responses":{"200":{"description":"Records that the signed-in caller stored the recovery codes from generate.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Secret codes confirmation received"}}},"example":{"success":true}}}},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"Bad Request. Usually due to missing parameters, or invalid parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry."},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Not Found. The requested resource was not found."},"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Too Many Requests. You have exceeded the rate limit. Try again later."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support."}},"summary":"Confirm wallet recovery codes are stored","operationId":"auth_post_wallet_secret_codes_confirm","x-dalp-auth":"session"}},"/api/auth/two-factor/verify-totp":{"post":{"tags":["Account security"],"description":"Confirms a current authenticator code for login two-factor. On first success after enable, login two-factor is turned on. You may trust this device. After success during sign-in, treat the session as fully signed in.","security":[{"twoFactorCookie":[]},{"sessionCookie":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","description":"The otp code to verify. Eg: \"012345\""},"trustDevice":{"type":"boolean","description":"If true, the device will be trusted for 30 days. It'll be refreshed on every sign in request within this time. Eg: true"}},"required":["code"]}}}},"responses":{"200":{"description":"Confirms a current authenticator code for login two-factor.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"boolean"}}},"example":{"status":true}}}},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"Bad Request. Usually due to missing parameters, or invalid parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry."},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Not Found. The requested resource was not found."},"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Too Many Requests. You have exceeded the rate limit. Try again later."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support."}},"summary":"Verify a login TOTP code","operationId":"auth_post_two_factor_verify_totp","x-dalp-auth":"two-factor-pending"}},"/api/auth/two-factor/verify-backup-code":{"post":{"tags":["Account security"],"description":"Confirms a login two-factor backup code. The code is consumed. After success during sign-in, treat the session as fully signed in. Store any remaining codes offline.","security":[{"twoFactorCookie":[]},{"sessionCookie":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","description":"A backup code to verify. Eg: \"123456\""},"disableSession":{"type":"boolean","description":"If true, the session cookie will not be set."},"trustDevice":{"type":"boolean","description":"If true, the device will be trusted for 30 days. It'll be refreshed on every sign in request within this time. Eg: true"}},"required":["code"]}}}},"responses":{"200":{"description":"Confirms a login two-factor backup code.","content":{"application/json":{"schema":{"type":"object","properties":{"user":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of the user"},"email":{"type":"string","format":"email","nullable":true,"description":"User's email address"},"emailVerified":{"type":"boolean","nullable":true,"description":"Whether the email is verified"},"name":{"type":"string","nullable":true,"description":"User's name"},"image":{"type":"string","format":"uri","nullable":true,"description":"User's profile image URL"},"twoFactorEnabled":{"type":"boolean","description":"Whether two-factor authentication is enabled for the user"},"createdAt":{"type":"string","format":"date-time","description":"Timestamp when the user was created"},"updatedAt":{"type":"string","format":"date-time","description":"Timestamp when the user was last updated"}},"required":["id","twoFactorEnabled","createdAt","updatedAt"],"description":"The authenticated user object with two-factor details"},"session":{"type":"object","properties":{"token":{"type":"string","description":"Session token"},"userId":{"type":"string","description":"ID of the user associated with the session"},"createdAt":{"type":"string","format":"date-time","description":"Timestamp when the session was created"},"expiresAt":{"type":"string","format":"date-time","description":"Timestamp when the session expires"}},"required":["token","userId","createdAt","expiresAt"],"description":"The current session object, included unless disableSession is true"}},"required":["user","session"]},"example":{"user":{"id":"user_northwind_ops","email":"treasury@northwind.example","emailVerified":true,"name":"Northwind Treasury","image":"https://static.northwind.example/avatars/treasury.png","createdAt":"2026-02-11T09:14:07.000Z","updatedAt":"2026-03-04T15:42:18.000Z","twoFactorEnabled":true},"session":{"token":"sess_example_not_a_live_token","userId":"user_northwind_ops","createdAt":"2026-02-11T09:14:07.000Z","expiresAt":"2026-03-11T15:42:18.000Z"}}}}},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"Bad Request. Usually due to missing parameters, or invalid parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry."},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Not Found. The requested resource was not found."},"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Too Many Requests. You have exceeded the rate limit. Try again later."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support."}},"summary":"Verify a login backup code","operationId":"auth_post_two_factor_verify_backup_code","x-dalp-auth":"two-factor-pending"}},"/api/auth/two-factor/enable":{"post":{"tags":["Account security"],"description":"Starts login TOTP enrollment and returns a TOTP URI and backup codes. Send the account password, and omit method or send totp. Login two-factor stays off until a code from that URI is verified. DALP does not send one-time codes by email or SMS, so method otp is rejected with 400.","security":[{"sessionCookie":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"password":{"type":"string","description":"User password"},"method":{"type":"string","enum":["otp","totp"]},"issuer":{"type":"string","description":"Custom issuer for the TOTP URI"}},"required":["password"]}}}},"responses":{"200":{"description":"Starts login TOTP enrollment and returns a TOTP URI and backup codes.","content":{"application/json":{"schema":{"type":"object","properties":{"method":{"type":"string","enum":["otp","totp"],"description":"The 2FA method that was enabled."},"totpURI":{"type":"string","description":"TOTP URI for authenticator app setup. Only present when method is 'totp'."},"backupCodes":{"type":"array","items":{"type":"string"},"description":"Recovery backup codes. Only present when method is 'totp'."}},"required":["method"]},"example":{"method":"totp","totpURI":"otpauth://totp/DALP:treasury@northwind.example?secret=SAMPLETOTPNOTALIVE&issuer=DALP","backupCodes":["nw-backup-11","nw-backup-22","nw-backup-33"]}}}},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"Bad Request. Usually due to missing parameters, or invalid parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry."},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Not Found. The requested resource was not found."},"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Too Many Requests. You have exceeded the rate limit. Try again later."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support."}},"summary":"Start login two-factor enrollment","x-dalp-deployment-mode":"password","operationId":"auth_post_two_factor_enable","x-dalp-auth":"session"}},"/api/auth/two-factor/disable":{"post":{"tags":["Account security"],"description":"Turns off login two-factor for the signed-in account. Send the account password. After success, sign-in no longer requires an authenticator code.","security":[{"sessionCookie":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"password":{"type":"string","description":"User password"}},"required":["password"]}}}},"responses":{"200":{"description":"Turns off login two-factor for the signed-in account.","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"boolean"}}},"example":{"status":true}}}},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"Bad Request. Usually due to missing parameters, or invalid parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry."},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Not Found. The requested resource was not found."},"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Too Many Requests. You have exceeded the rate limit. Try again later."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support."}},"summary":"Disable login two-factor","operationId":"auth_post_two_factor_disable","x-dalp-auth":"session"}},"/api/auth/device/code":{"post":{"tags":["OAuth and device authorization"],"description":"Starts the OAuth device flow described in RFC 8628. Returns a device code and a user code. Show the user code and verification URI, then poll the token route with the device code.","security":[],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"client_id":{"type":"string","description":"The client ID of the application"},"user_id":{"type":"string","description":"The user ID to which the device code should be pre-bound."},"scope":{"type":"string","description":"Space-separated list of scopes"}},"required":["client_id"]}}}},"responses":{"200":{"description":"Starts the OAuth device flow described in RFC 8628.","content":{"application/json":{"schema":{"type":"object","properties":{"device_code":{"type":"string","description":"The device verification code"},"user_code":{"type":"string","description":"The user code to display"},"verification_uri":{"type":"string","format":"uri","description":"The URL for user verification. Defaults to /device if not configured."},"verification_uri_complete":{"type":"string","format":"uri","description":"The complete URL with user code as query parameter."},"expires_in":{"type":"number","description":"Lifetime in seconds of the device code"},"interval":{"type":"number","description":"Minimum polling interval in seconds"}}},"example":{"device_code":"device_example_code_not_live","user_code":"WDJB-MOOO","verification_uri":"https://console.northwind.example/device","verification_uri_complete":"https://console.northwind.example/device?user_code=WDJB-MOOO","expires_in":600,"interval":5}}}},"400":{"description":"The authentication request is invalid. Correct the request fields before you send it again.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["invalid_request","invalid_client","unauthorized_client","invalid_scope"]},"error_description":{"type":"string"}}}}}},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry."},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Not Found. The requested resource was not found."},"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Too Many Requests. You have exceeded the rate limit. Try again later."},"500":{"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["server_error"]},"error_description":{"type":"string"}}}}}}},"summary":"Request a device authorization code","operationId":"auth_post_device_code","x-dalp-auth":"none"}},"/api/auth/device/token":{"post":{"tags":["OAuth and device authorization"],"description":"Polls for tokens after the user approves the device code, as described in RFC 8628. Send the grant type, device code, and client id. Retry while authorization is pending. After approval, store the returned tokens.","security":[],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"grant_type":{"enum":["urn:ietf:params:oauth:grant-type:device_code"],"description":"The grant type for device flow"},"device_code":{"type":"string","description":"The device verification code"},"client_id":{"type":"string","description":"The client ID of the application"}},"required":["grant_type","device_code","client_id"]}}}},"responses":{"200":{"description":"Polls for tokens after the user approves the device code, as described in RFC 8628.","content":{"application/json":{"schema":{"type":"object","properties":{"session":{"$ref":"#/components/schemas/Session"},"user":{"$ref":"#/components/schemas/User"}}},"example":{"session":{"id":"sess_northwind_console","expiresAt":"2026-03-11T15:42:18.000Z","token":"sess_example_not_a_live_token","createdAt":"2026-02-11T09:14:07.000Z","updatedAt":"2026-03-04T15:42:18.000Z","ipAddress":"203.0.113.10","userAgent":"Mozilla/5.0 NorthwindConsole","userId":"user_northwind_ops","activeOrganizationId":"org_northwind_coffee"},"user":{"id":"user_northwind_ops","name":"Northwind Treasury","email":"treasury@northwind.example","emailVerified":true,"image":"https://static.northwind.example/avatars/treasury.png","createdAt":"2026-02-11T09:14:07.000Z","updatedAt":"2026-03-04T15:42:18.000Z","role":"member","banned":false,"twoFactorEnabled":true,"lastLoginAt":"2026-03-04T15:40:00.000Z","walletPincodeEnabled":true,"walletPincodeVerificationId":"ver_pincode_northwind","walletTwoFactorEnabled":true,"walletTwoFactorVerificationId":"ver_totp_northwind","walletSecretCodeVerificationId":"018f7b0a-7c3e-7890-a1b2-c3d4e5f60789","walletSecretCodesConfirmed":true,"lastActiveOrganizationId":"org_northwind_coffee"}}}}},"400":{"description":"The authentication request is invalid. Correct the request fields before you send it again.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["authorization_pending","slow_down","expired_token","access_denied","invalid_request","invalid_grant"]},"error_description":{"type":"string"}}}}}},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry."},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Not Found. The requested resource was not found."},"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Too Many Requests. You have exceeded the rate limit. Try again later."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support."}},"summary":"Exchange a device code for tokens","operationId":"auth_post_device_token","x-dalp-auth":"none"}},"/api/auth/organization/create":{"post":{"tags":["Organisations and members"],"description":"Creates an organization with a name and slug. A session is required. Organization creation may be limited to platform administrators. After success, the creator is a member. Set the organization active before making tenant-scoped calls.","security":[{"sessionCookie":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"description":"The name of the organization"},"slug":{"type":"string","minLength":1,"description":"The slug of the organization"},"userId":{"type":"string","description":"The user id of the organization creator. If not provided, the current user will be used. Should only be used by admins or when called by the server. server-only. Eg: \"user-id\""},"logo":{"type":["string","null"],"description":"The logo of the organization"},"metadata":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"The metadata of the organization"},"keepCurrentActiveOrganization":{"type":"boolean","description":"Whether to keep the current active organization active after creating a new one. Eg: true"}},"required":["name","slug"]}}}},"responses":{"200":{"description":"Creates an organization with a name and slug.","content":{"application/json":{"schema":{"type":"object","description":"The organization that was created","$ref":"#/components/schemas/Organization"},"example":{"id":"org_northwind_coffee","name":"Northwind Coffee","slug":"northwind-coffee","logo":"https://static.northwind.example/logo.png","createdAt":"2026-02-11T09:14:07.000Z","metadata":"{\"region\":\"eu\"}","onboardingCompletedAt":"2026-02-12T10:00:00.000Z"}}}},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"Bad Request. Usually due to missing parameters, or invalid parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry."},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Not Found. The requested resource was not found."},"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Too Many Requests. You have exceeded the rate limit. Try again later."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support."}},"summary":"Create an organization","operationId":"auth_post_organization_create","x-dalp-auth":"session"}},"/api/auth/organization/update":{"post":{"tags":["Organisations and members"],"description":"Updates the named organization. A session and permission to manage the organization are required. Send only the fields you intend to change, then read the returned organization.","security":[{"sessionCookie":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"name":{"type":"string","minLength":1,"description":"The name of the organization"},"slug":{"type":"string","minLength":1,"description":"The slug of the organization"},"logo":{"type":["string","null"],"description":"The logo of the organization"},"metadata":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"The metadata of the organization"}}},"organizationId":{"type":"string","description":"The organization ID. Eg: \"org-id\""}},"required":["data"]}}}},"responses":{"200":{"description":"Updates the named organization.","content":{"application/json":{"schema":{"type":"object","description":"The updated organization","$ref":"#/components/schemas/Organization"},"example":{"id":"org_northwind_coffee","name":"Northwind Coffee","slug":"northwind-coffee","logo":"https://static.northwind.example/logo.png","createdAt":"2026-02-11T09:14:07.000Z","metadata":"{\"region\":\"eu\"}","onboardingCompletedAt":"2026-02-12T10:00:00.000Z"}}}},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"Bad Request. Usually due to missing parameters, or invalid parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry."},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Not Found. The requested resource was not found."},"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Too Many Requests. You have exceeded the rate limit. Try again later."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support."}},"summary":"Update an organization","operationId":"auth_post_organization_update","x-dalp-auth":"session"}},"/api/auth/organization/set-active":{"post":{"tags":["Organisations and members"],"description":"Sets or clears the active organization on the current session. Send an organization id or slug, or null to clear it. Later tenant-scoped calls use this organization.","operationId":"setActiveOrganization","security":[{"sessionCookie":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"organizationId":{"type":["string","null"],"description":"The organization id to set as active. It can be null to unset the active organization. Eg: \"org-id\""},"organizationSlug":{"type":"string","description":"The organization slug to set as active. It can be null to unset the active organization if organizationId is not provided. Eg: \"org-slug\""}}}}}},"responses":{"200":{"description":"Sets or clears the active organization on the current session.","content":{"application/json":{"schema":{"type":"object","description":"The organization","$ref":"#/components/schemas/Organization"},"example":{"id":"org_northwind_coffee","name":"Northwind Coffee","slug":"northwind-coffee","logo":"https://static.northwind.example/logo.png","createdAt":"2026-02-11T09:14:07.000Z","metadata":"{\"region\":\"eu\"}","onboardingCompletedAt":"2026-02-12T10:00:00.000Z"}}}},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"Bad Request. Usually due to missing parameters, or invalid parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry."},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Not Found. The requested resource was not found."},"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Too Many Requests. You have exceeded the rate limit. Try again later."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support."}},"summary":"Set the active organization","x-dalp-auth":"session"}},"/api/auth/organization/get-full-organization":{"get":{"tags":["Organisations and members"],"description":"Returns the full record for the active organization. A session is required. Use this to show the current tenant before you invite members or change settings.","operationId":"getOrganization","security":[{"sessionCookie":[]},{"apiKey":[]}],"parameters":[],"responses":{"200":{"description":"Returns the full record for the active organization.","content":{"application/json":{"schema":{"type":"object","description":"The organization","$ref":"#/components/schemas/Organization"},"example":{"id":"org_northwind_coffee","name":"Northwind Coffee","slug":"northwind-coffee","logo":"https://static.northwind.example/logo.png","createdAt":"2026-02-11T09:14:07.000Z","metadata":"{\"region\":\"eu\"}","onboardingCompletedAt":"2026-02-12T10:00:00.000Z"}}}},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"Bad Request. Usually due to missing parameters, or invalid parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry."},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Not Found. The requested resource was not found."},"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Too Many Requests. You have exceeded the rate limit. Try again later."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support."}},"summary":"Read the active organization","x-dalp-auth":"session-or-api-key"}},"/api/auth/organization/list":{"get":{"tags":["Organisations and members"],"description":"Returns organizations the signed-in user belongs to. Use an id or slug from this list to set the active organization.","security":[{"sessionCookie":[]},{"apiKey":[]}],"parameters":[],"responses":{"200":{"description":"Returns organizations the signed-in user belongs to.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Organization"}},"example":[{"id":"org_northwind_coffee","name":"Northwind Coffee","slug":"northwind-coffee","logo":"https://static.northwind.example/logo.png","createdAt":"2026-02-11T09:14:07.000Z","metadata":"{\"region\":\"eu\"}","onboardingCompletedAt":"2026-02-12T10:00:00.000Z"}]}}},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"Bad Request. Usually due to missing parameters, or invalid parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry."},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Not Found. The requested resource was not found."},"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Too Many Requests. You have exceeded the rate limit. Try again later."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support."}},"summary":"List the user's organizations","operationId":"auth_get_organization_list","x-dalp-auth":"session-or-api-key"}},"/api/auth/organization/cancel-invitation":{"post":{"tags":["Organisations and members"],"security":[{"sessionCookie":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"invitationId":{"type":"string","description":"The ID of the invitation to cancel"}},"required":["invitationId"]}}}},"responses":{"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"Bad Request. Usually due to missing parameters, or invalid parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry."},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Not Found. The requested resource was not found."},"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Too Many Requests. You have exceeded the rate limit. Try again later."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support."}},"summary":"Cancel an invitation","description":"Cancels the named pending invitation. A session and permission to manage invitations are required. After success, that invitation can no longer be accepted.","operationId":"auth_post_organization_cancel_invitation","x-dalp-auth":"session"}},"/api/auth/organization/get-invitation":{"get":{"tags":["Organisations and members"],"description":"Returns the invitation named by id. Use this to show the invitee the organization and role before they accept or reject it.","security":[{"sessionCookie":[]}],"parameters":[{"name":"id","in":"query","schema":{"type":"string","description":"The ID of the invitation to get"}}],"responses":{"200":{"description":"Returns the invitation named by id.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"email":{"type":"string"},"role":{"type":"string"},"organizationId":{"type":"string"},"inviterId":{"type":"string"},"status":{"type":"string"},"expiresAt":{"type":"string"},"organizationName":{"type":"string"},"organizationSlug":{"type":"string"},"inviterEmail":{"type":"string"}},"required":["id","email","role","organizationId","inviterId","status","expiresAt","organizationName","organizationSlug","inviterEmail"]},"example":{"id":"invite_northwind_analyst","email":"analyst@northwind.example","role":"member","organizationId":"org_northwind_coffee","inviterId":"user_northwind_admin","status":"pending","expiresAt":"2026-03-11T15:42:18.000Z","organizationName":"Northwind Coffee","organizationSlug":"northwind-coffee","inviterEmail":"treasury@northwind.example"}}}},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"Bad Request. Usually due to missing parameters, or invalid parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry."},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Not Found. The requested resource was not found."},"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Too Many Requests. You have exceeded the rate limit. Try again later."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support."}},"summary":"Read an invitation","operationId":"auth_get_organization_get_invitation","x-dalp-auth":"session"}},"/api/auth/organization/reject-invitation":{"post":{"tags":["Organisations and members"],"description":"Rejects the named invitation for the signed-in user. After success, the user is not a member and the invitation cannot be accepted.","security":[{"sessionCookie":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"invitationId":{"type":"string","description":"The ID of the invitation to reject"}},"required":["invitationId"]}}}},"responses":{"200":{"description":"Rejects the named invitation for the signed-in user.","content":{"application/json":{"schema":{"type":"object","properties":{"invitation":{"type":"object"},"member":{"type":"object","nullable":true}}},"example":{"invitation":{"id":"invite_northwind_analyst","organizationId":"org_northwind_coffee","email":"analyst@northwind.example","role":"member","status":"pending","expiresAt":"2026-03-11T15:42:18.000Z","createdAt":"2026-02-11T09:14:07.000Z","inviterId":"user_northwind_admin","onChainRoles":"[\"assetManager\"]","onChainRolesAuthorizedAt":"2026-03-04T15:42:18.000Z"},"member":null}}}},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"Bad Request. Usually due to missing parameters, or invalid parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry."},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Not Found. The requested resource was not found."},"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Too Many Requests. You have exceeded the rate limit. Try again later."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support."}},"summary":"Reject an invitation","operationId":"auth_post_organization_reject_invitation","x-dalp-auth":"session"}},"/api/auth/organization/list-invitations":{"get":{"tags":["Organisations and members"],"security":[{"sessionCookie":[]}],"parameters":[],"responses":{"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"Bad Request. Usually due to missing parameters, or invalid parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry."},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Not Found. The requested resource was not found."},"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Too Many Requests. You have exceeded the rate limit. Try again later."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support."}},"summary":"List organization invitations","description":"Returns invitations for the active organization. A session and permission to manage invitations are required. Use an id from this list to cancel an invitation.","operationId":"auth_get_organization_list_invitations","x-dalp-auth":"session"}},"/api/auth/organization/list-user-invitations":{"get":{"tags":["Organisations and members"],"description":"Returns invitations addressed to the signed-in user. Use an id from this list to accept or reject an invitation.","security":[{"sessionCookie":[]}],"parameters":[],"responses":{"200":{"description":"Returns invitations addressed to the signed-in user.","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"email":{"type":"string"},"role":{"type":"string"},"organizationId":{"type":"string"},"organizationName":{"type":"string"},"inviterId":{"type":"string","description":"The ID of the user who created the invitation"},"teamId":{"type":"string","description":"The ID of the team associated with the invitation","nullable":true},"status":{"type":"string"},"expiresAt":{"type":"string"},"createdAt":{"type":"string"}},"required":["id","email","role","organizationId","organizationName","inviterId","status","expiresAt","createdAt"]}},"example":[{"id":"invite_northwind_analyst","email":"analyst@northwind.example","role":"member","organizationId":"org_northwind_coffee","organizationName":"Northwind Coffee","inviterId":"user_northwind_admin","teamId":null,"status":"pending","expiresAt":"2026-03-11T15:42:18.000Z","createdAt":"2026-02-11T09:14:07.000Z"}]}}},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"Bad Request. Usually due to missing parameters, or invalid parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry."},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Not Found. The requested resource was not found."},"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Too Many Requests. You have exceeded the rate limit. Try again later."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support."}},"summary":"List invitations sent to the user","operationId":"auth_get_organization_list_user_invitations","x-dalp-auth":"session"}},"/api/auth/organization/has-permission":{"post":{"tags":["Organisations and members"],"description":"Reports whether the signed-in user has the submitted permissions in the organization. Use the result to enable or hide tenant actions. This call does not grant access by itself.","security":[{"sessionCookie":[]},{"apiKey":[]}],"parameters":[],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"permission":{"type":"object","description":"The permission to check","deprecated":true},"permissions":{"type":"object","description":"The permission to check"}},"required":["permissions"]}}}},"responses":{"200":{"description":"Reports whether the signed-in user has the submitted permissions in the organization.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"success":{"type":"boolean"}},"required":["success"]},"example":{"success":true}}}},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"Bad Request. Usually due to missing parameters, or invalid parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}},"description":"The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry."},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The authenticated caller cannot perform this operation. Use a session or API key with the required organisation, role, participant, or key scope."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Not Found. The requested resource was not found."},"429":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"Too Many Requests. You have exceeded the rate limit. Try again later."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}},"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support."}},"summary":"Check organization permissions","operationId":"auth_post_organization_has_permission","x-dalp-auth":"session-or-api-key"}}},"components":{"schemas":{"DalpPublicHttpError504":{"type":"object","properties":{"code":{"type":"string","minLength":1,"description":"Stable machine name for this error. Prefer the `data.id` DALP code for new clients.","examples":["USER_EMAIL_ALREADY_EXISTS"]},"status":{"type":"integer","enum":[504],"description":"HTTP status for this public error.","examples":[504]},"message":{"type":"string","minLength":1,"description":"Short headline that names what failed. Do not parse this string for control flow.","examples":["A user with this email already exists."]},"data":{"$ref":"#/components/schemas/DALP_PUBLIC_ERROR_DATA_SCHEMA"}},"required":["code","status","message","data"],"additionalProperties":false,"description":"A required operation did not complete before its deadline. Check status before submitting the instruction again.","examples":[{"code":"REQUEST_DEADLINE_EXCEEDED","status":504,"message":"The request deadline expired","data":{"id":"DALP-9532","why":"The request ran past the deadline the platform gives one request, so the platform stopped the work. The operation that request started may still be running.","fix":"Check the status of the operation before you submit the request again, and let the Retry-After interval pass first.","retryable":false,"category":"operational"}}]},"DALP_PUBLIC_ERROR_DATA_SCHEMA":{"type":"object","properties":{"id":{"type":"string","pattern":"^DALP-(?:\\d{4,}|[A-Z0-9]+(?:-[A-Z0-9]+)+)$","description":"Stable public error id. Branch on this value, not on the headline text.","examples":["DALP-0670"]},"why":{"type":"string","minLength":1,"description":"The condition that stopped the request, in customer terms.","examples":["Each platform user must have a unique email address."]},"fix":{"type":"string","minLength":1,"description":"The next step that unblocks the request.","examples":["Use a different email or open the existing user in User management."]},"retryable":{"type":"boolean","description":"When true, the same request can succeed later without changing inputs.","examples":[false]},"category":{"type":"string","enum":["client","auth","permission","domain","contract","dependency","operational","unknown","vendor-boundary"],"description":"Public failure family used for client branching and support routing.","examples":["client"]},"requestId":{"type":"string","description":"Request correlation id to send to support. Omit when the edge did not assign one.","examples":["req_2c8f1a4e0b7d4e11"]}},"required":["id","why","fix","retryable","category"],"allOf":[{"type":"object","additionalProperties":{"$ref":"#/components/schemas/DalpPublicJsonValue"}}],"description":"Public recovery guidance and safe error context. The object always includes `id`, `why`, `fix`, `retryable`, and `category`. Extra keys are entry-specific and never include secrets or stack traces.","examples":[{"id":"DALP-0670","why":"Each platform user must have a unique email address.","fix":"Use a different email or open the existing user in User management.","retryable":false,"category":"client","requestId":"req_2c8f1a4e0b7d4e11"}]},"DalpPublicJsonValue":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"},{"type":"array","items":{"$ref":"#/components/schemas/DalpPublicJsonValue"}},{"type":"object","additionalProperties":{"$ref":"#/components/schemas/DalpPublicJsonValue"}}],"description":"JSON-safe public error field. Never a function, Date, secret, or stack trace."},"DalpPublicHttpError429":{"type":"object","properties":{"code":{"type":"string","minLength":1,"description":"Stable machine name for this error. Prefer the `data.id` DALP code for new clients.","examples":["USER_EMAIL_ALREADY_EXISTS"]},"status":{"type":"integer","enum":[429],"description":"HTTP status for this public error.","examples":[429]},"message":{"type":"string","minLength":1,"description":"Short headline that names what failed. Do not parse this string for control flow.","examples":["A user with this email already exists."]},"data":{"$ref":"#/components/schemas/DALP_PUBLIC_ERROR_DATA_SCHEMA"}},"required":["code","status","message","data"],"additionalProperties":false,"description":"The caller exceeded an operation limit. Wait for the limit window described in the response before retrying.","examples":[{"code":"INVITATION_CALLER_RATE_LIMITED","status":429,"message":"This request's API key has sent too many requests","data":{"id":"DALP-9094","why":"The credential presented with this request has used up the requests its rate limit allows inside the current time window, so the invitation was never attempted.","fix":"Wait for the current rate-limit window to pass, then send the invitation again. Space bulk invitations out over a longer period, or ask an organization owner to raise the request allowance on this key.","retryable":true,"category":"client"}}]},"DalpPublicHttpError500":{"type":"object","properties":{"code":{"type":"string","minLength":1,"description":"Stable machine name for this error. Prefer the `data.id` DALP code for new clients.","examples":["USER_EMAIL_ALREADY_EXISTS"]},"status":{"type":"integer","enum":[500],"description":"HTTP status for this public error.","examples":[500]},"message":{"type":"string","minLength":1,"description":"Short headline that names what failed. Do not parse this string for control flow.","examples":["A user with this email already exists."]},"data":{"$ref":"#/components/schemas/DALP_PUBLIC_ERROR_DATA_SCHEMA"}},"required":["code","status","message","data"],"additionalProperties":false,"description":"The Platform API could not complete the request because of an unexpected server failure. Retry later and include the `X-Request-Id` from this response if you contact support.","examples":[{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"The platform could not complete this request","data":{"id":"DALP-0084","why":"An unexpected failure occurred after the request passed validation.","fix":"Retry once. If it continues, contact support with the request id.","retryable":false,"category":"unknown"}}]},"DalpPublicHttpError401":{"type":"object","properties":{"code":{"type":"string","minLength":1,"description":"Stable machine name for this error. Prefer the `data.id` DALP code for new clients.","examples":["USER_EMAIL_ALREADY_EXISTS"]},"status":{"type":"integer","enum":[401],"description":"HTTP status for this public error.","examples":[401]},"message":{"type":"string","minLength":1,"description":"Short headline that names what failed. Do not parse this string for control flow.","examples":["A user with this email already exists."]},"data":{"$ref":"#/components/schemas/DALP_PUBLIC_ERROR_DATA_SCHEMA"}},"required":["code","status","message","data"],"additionalProperties":false,"description":"This response has one of these causes:\n\n- The request has no accepted session or API key. Send `X-Api-Key` or sign in, then retry.\n- The session did not include the linked authentication providers needed to authorize the call. Sign in again, then retry.","examples":[{"code":"UNAUTHORIZED","status":401,"message":"Authentication missing or failed","data":{"id":"DALP-0002","why":"The request did not include valid authentication credentials.","fix":"Authenticate again or send a valid API key/session credential.","retryable":false,"category":"auth"}}]},"DalpPublicHttpError400":{"type":"object","properties":{"code":{"type":"string","minLength":1,"description":"Stable machine name for this error. Prefer the `data.id` DALP code for new clients.","examples":["USER_EMAIL_ALREADY_EXISTS"]},"status":{"type":"integer","enum":[400],"description":"HTTP status for this public error.","examples":[400]},"message":{"type":"string","minLength":1,"description":"Short headline that names what failed. Do not parse this string for control flow.","examples":["A user with this email already exists."]},"data":{"$ref":"#/components/schemas/DALP_PUBLIC_ERROR_DATA_SCHEMA"}},"required":["code","status","message","data"],"additionalProperties":false,"description":"This response has one of these causes:\n\n- The chain header is invalid. Send a supported chain id.\n- The requested chain is unavailable to the active organization. Select an available chain.\n- The requested executor is invalid. Select another one.\n- The custody-account selection is invalid. Select an account returned by the account list.","examples":[{"code":"BAD_REQUEST","status":400,"message":"The request could not be read","data":{"id":"DALP-0001","why":"The request body, query, or headers did not match the published schema for this route.","fix":"Check the field names, types, and content type against the route schema, then send the request again.","retryable":false,"category":"client"}}]},"DalpPublicHttpError409":{"type":"object","properties":{"code":{"type":"string","minLength":1,"description":"Stable machine name for this error. Prefer the `data.id` DALP code for new clients.","examples":["USER_EMAIL_ALREADY_EXISTS"]},"status":{"type":"integer","enum":[409],"description":"HTTP status for this public error.","examples":[409]},"message":{"type":"string","minLength":1,"description":"Short headline that names what failed. Do not parse this string for control flow.","examples":["A user with this email already exists."]},"data":{"$ref":"#/components/schemas/DALP_PUBLIC_ERROR_DATA_SCHEMA"}},"required":["code","status","message","data"],"additionalProperties":false,"description":"This response has one of these causes:\n\n- The requested chain is not ready. Wait, then retry.\n- The requested executor is unavailable. Select another one.\n- The selected custody account cannot authorize this request. Select an active eligible account.\n- The selected custody account is not eligible for this participant and organization. Select an eligible account.\n- No usable primary custody account is selected. Choose a primary or explicitly select an eligible account.","examples":[{"code":"CONFLICT","status":409,"message":"The change conflicts with the current resource state","data":{"id":"DALP-0024","why":"Another write already changed this resource, or the resource is already in the requested state.","fix":"Read the current resource, resolve the difference, and send the request again.","retryable":false,"category":"client"}}]},"TimestampEncoded":{"anyOf":[{"type":"string","description":"Epoch milliseconds as a digit string, or a readable datetime.","format":"timestamp"},{"type":"integer","minimum":0}]},"OrganizationId":{"type":"string","minLength":1,"description":"Tenant organization identifier"},"WebhookReceiptFilters":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000},"evtId":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"endpointId":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"receivedAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"verifiedAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"verificationFailureClass":{"anyOf":[{"type":"string","enum":["RECEIPT_INVALID_SIG","RECEIPT_HASH_MISMATCH"]},{"type":"object","properties":{"eq":{"type":"string","enum":["RECEIPT_INVALID_SIG","RECEIPT_HASH_MISMATCH"]},"ne":{"type":"string","enum":["RECEIPT_INVALID_SIG","RECEIPT_HASH_MISMATCH"]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]}},"additionalProperties":false},"UserId":{"type":"string","minLength":1,"description":"Better Auth user identifier"},"BlockHeightEncoded":{"type":"string","pattern":"^-?\\d+$"},"ChainIdEncoded_1":{"type":"integer","exclusiveMinimum":0,"description":"EVM chain identifier.","examples":[11155111]},"WebhookDeliveryFilters":{"type":"object","properties":{"eventType":{"anyOf":[{"type":"string"},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"status":{"anyOf":[{"type":"string","enum":["pending","delivered","failed"]},{"type":"object","properties":{"eq":{"type":"string","enum":["pending","delivered","failed"]},"ne":{"type":"string","enum":["pending","delivered","failed"]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"failureClass":{"anyOf":[{"type":"string","enum":["DNS_FAIL","TLS_FAIL","CONNECT_TIMEOUT","READ_TIMEOUT","HTTP_4XX","HTTP_4XX_RETRYABLE","HTTP_5XX","INVALID_RESPONSE","RECEIPT_TIMEOUT","RECEIPT_INVALID_SIG","RECEIPT_HASH_MISMATCH"]},{"type":"object","properties":{"eq":{"type":"string","enum":["DNS_FAIL","TLS_FAIL","CONNECT_TIMEOUT","READ_TIMEOUT","HTTP_4XX","HTTP_4XX_RETRYABLE","HTTP_5XX","INVALID_RESPONSE","RECEIPT_TIMEOUT","RECEIPT_INVALID_SIG","RECEIPT_HASH_MISMATCH"]},"ne":{"type":"string","enum":["DNS_FAIL","TLS_FAIL","CONNECT_TIMEOUT","READ_TIMEOUT","HTTP_4XX","HTTP_4XX_RETRYABLE","HTTP_5XX","INVALID_RESPONSE","RECEIPT_TIMEOUT","RECEIPT_INVALID_SIG","RECEIPT_HASH_MISMATCH"]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"responseStatus":{"anyOf":[{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},{"type":"object","properties":{"eq":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"ne":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"gte":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"lt":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"lte":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"between":{"type":"string","maxLength":64}},"additionalProperties":false}]},"isReplay":{"anyOf":[{"type":"string","enum":["true","false"]},{"type":"object","properties":{"eq":{"type":"string","enum":["true","false"]},"ne":{"type":"string","enum":["true","false"]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]}},"additionalProperties":false}]},"isTest":{"anyOf":[{"type":"string","enum":["true","false"]},{"type":"object","properties":{"eq":{"type":"string","enum":["true","false"]},"ne":{"type":"string","enum":["true","false"]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]}},"additionalProperties":false}]},"attemptedAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"deliveredAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]}},"additionalProperties":false},"WebhookEndpointFilters":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000},"displayName":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"url":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"systemId":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"defaultPayloadShape":{"anyOf":[{"type":"string","enum":["thin","fat"]},{"type":"object","properties":{"eq":{"type":"string","enum":["thin","fat"]},"ne":{"type":"string","enum":["thin","fat"]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"breakerState":{"anyOf":[{"type":"string","enum":["closed","half_open","open"]},{"type":"object","properties":{"eq":{"type":"string","enum":["closed","half_open","open"]},"ne":{"type":"string","enum":["closed","half_open","open"]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"disabled":{"anyOf":[{"type":"string","enum":["true","false"]},{"type":"object","properties":{"eq":{"type":"string","enum":["true","false"]},"ne":{"type":"string","enum":["true","false"]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]}},"additionalProperties":false}]},"createdAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"updatedAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]}},"additionalProperties":false},"TradingVenueSingleLinks":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false},"TradingVenueAnnouncement":{"type":"object","properties":{"id":{"type":"string","minLength":1},"venueAddress":{"$ref":"#/components/schemas/EvmAddress"},"marketId":{"anyOf":[{"$ref":"#/components/schemas/MarketId"},{"type":"null"}]},"title":{"type":"string","minLength":1,"maxLength":200},"body":{"type":"string","minLength":1,"maxLength":10000},"category":{"type":"string","enum":["notice","broadcast","trading-window","corporate-action"]},"severity":{"type":"string","enum":["info","warning","critical"]},"status":{"type":"string","enum":["published","withdrawn"]},"publishedAt":{"$ref":"#/components/schemas/TimestampEncoded"},"publishedBy":{"$ref":"#/components/schemas/UserId"},"withdrawnAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"withdrawnBy":{"anyOf":[{"$ref":"#/components/schemas/UserId"},{"type":"null"}]}},"required":["id","venueAddress","marketId","title","body","category","severity","status","publishedAt","publishedBy","withdrawnAt","withdrawnBy"],"additionalProperties":false,"description":"A notice an operator published to a venue's investors. A venue-wide notice has no market; a market notice on a private market reaches only that market's participants and operators."},"MarketId":{"type":"string","minLength":1,"description":"Trading Venue market identifier"},"EvmAddress":{"type":"string","minLength":42,"maxLength":42,"pattern":"^0x[a-fA-F0-9]{40}$","description":"A valid Ethereum address (42 characters, starting with 0x)","examples":["0x71C7656EC7ab88b098defB751B7401B5f6d8976F"]},"TradingVenueAnnouncementWithdrawRequest":{"type":"object","properties":{"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"additionalProperties":false},"WalletVerification":{"type":"object","properties":{"secretVerificationCode":{"type":"string","minLength":1,"description":"Code produced by the verification method named in `verificationType`.","examples":["482913"]},"verificationType":{"anyOf":[{"type":"string","enum":["OTP","PINCODE","SECRET_CODES","OIDC_MFA"]},{"type":"null"}]}},"required":["secretVerificationCode"],"additionalProperties":false},"TradingVenueAnnouncementPublishRequest":{"type":"object","properties":{"venueAddress":{"$ref":"#/components/schemas/EvmAddress"},"marketId":{"$ref":"#/components/schemas/MarketId"},"title":{"type":"string","minLength":1,"maxLength":200},"body":{"type":"string","minLength":1,"maxLength":10000},"category":{"type":"string","enum":["notice","broadcast","trading-window","corporate-action"]},"severity":{"type":"string","enum":["info","warning","critical"]},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["venueAddress","title","body","category","severity"],"additionalProperties":false},"TradingVenueCollectionLinks":{"type":"object","properties":{"self":{"type":"string"},"first":{"type":"string"},"prev":{"anyOf":[{"type":"string"},{"type":"null"}]},"next":{"anyOf":[{"type":"string"},{"type":"null"}]},"last":{"type":"string"}},"required":["self","first","prev","next","last"],"additionalProperties":false},"TradingVenueCollectionMeta":{"type":"object","properties":{"total":{"type":"integer"}},"required":["total"],"additionalProperties":false},"TradingVenuePriceAlert":{"type":"object","properties":{"id":{"type":"string","minLength":1},"marketId":{"$ref":"#/components/schemas/MarketId"},"direction":{"type":"string","enum":["above","below"]},"thresholdTick":{"type":"string","pattern":"^-?\\d+$"},"status":{"type":"string","enum":["active","triggered"]},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"triggeredAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"triggeredPriceTick":{"anyOf":[{"type":"string","pattern":"^-?\\d+$"},{"type":"null"}]}},"required":["id","marketId","direction","thresholdTick","status","createdAt","triggeredAt","triggeredPriceTick"],"additionalProperties":false,"description":"A one-shot threshold on a market's last trade price. An above alert fires on a print at or over the threshold tick, a below alert on a print at or under it, once."},"TradingVenuePriceAlertCreateRequest":{"type":"object","properties":{"marketId":{"$ref":"#/components/schemas/MarketId"},"direction":{"type":"string","enum":["above","below"]},"thresholdTick":{"type":"string","pattern":"^-?\\d+$"},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["marketId","direction","thresholdTick"],"additionalProperties":false},"TradingVenueListingRules":{"type":"object","properties":{"venueAddress":{"$ref":"#/components/schemas/EvmAddress"},"oneTradingModelPerSecurity":{"type":"boolean"},"minimumAdmissionValueUsd":{"anyOf":[{"$ref":"#/components/schemas/TradingVenueAdmissionUnitsEncoded"},{"type":"null"}],"description":"Smallest value, in whole US dollars, of the securities a private listing makes available for trading. Null admits any value."},"minimumAdmissionShares":{"anyOf":[{"$ref":"#/components/schemas/TradingVenueAdmissionUnitsEncoded"},{"type":"null"}],"description":"Smallest number of whole shares a private listing makes available for trading. Null admits any count."}},"required":["venueAddress","oneTradingModelPerSecurity","minimumAdmissionValueUsd","minimumAdmissionShares"],"additionalProperties":false},"TradingVenueAdmissionUnitsEncoded":{"type":"string","pattern":"^-?\\d+$"},"TradingVenueListingRulesUpdate":{"type":"object","properties":{"oneTradingModelPerSecurity":{"type":"boolean","description":"Refuse a new market for a security the venue already lists under a different trading model (continuous or auction-only)."},"minimumAdmissionValueUsd":{"anyOf":[{"$ref":"#/components/schemas/TradingVenueAdmissionUnitsEncoded"},{"type":"null"}],"description":"Smallest value, in whole US dollars, of the securities a private listing makes available for trading. Null admits any value."},"minimumAdmissionShares":{"anyOf":[{"$ref":"#/components/schemas/TradingVenueAdmissionUnitsEncoded"},{"type":"null"}],"description":"Smallest number of whole shares a private listing makes available for trading. Null admits any count."},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["oneTradingModelPerSecurity"],"additionalProperties":false},"TradingVenueVenueCalendar":{"type":"object","properties":{"venueAddress":{"$ref":"#/components/schemas/EvmAddress"},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}]},"calendarId":{"type":"string","minLength":1},"parentCalendarId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"calendarVersion":{"type":"integer"},"days":{"type":"array","items":{"$ref":"#/components/schemas/TradingVenueCalendarDay"}},"exceptions":{"type":"array","items":{"$ref":"#/components/schemas/TradingVenueVenueCalendarException"}},"closures":{"type":"array","items":{"type":"object","properties":{"observedOn":{"type":"string"},"kind":{"type":"string","minLength":1},"source":{"type":"string","minLength":1},"calendarId":{"type":"string","minLength":1}},"required":["observedOn","kind","source","calendarId"],"additionalProperties":false}}},"required":["venueAddress","timezone","calendarId","parentCalendarId","calendarVersion","days","exceptions","closures"],"additionalProperties":false},"TradingVenueVenueCalendarException":{"type":"object","properties":{"date":{"type":"string"},"preopenTime":{"$ref":"#/components/schemas/TradingVenueTimeOfDay"},"openTime":{"$ref":"#/components/schemas/TradingVenueTimeOfDay"},"closeTime":{"$ref":"#/components/schemas/TradingVenueTimeOfDay"}},"required":["date"],"additionalProperties":false},"TradingVenueTimeOfDay":{"type":"string"},"TradingVenueCalendarDay":{"type":"object","properties":{"weekday":{"type":"integer","minimum":0,"maximum":6},"preopenTime":{"$ref":"#/components/schemas/TradingVenueTimeOfDay"},"openTime":{"$ref":"#/components/schemas/TradingVenueTimeOfDay"},"closeTime":{"$ref":"#/components/schemas/TradingVenueTimeOfDay"}},"required":["weekday","openTime","closeTime"],"additionalProperties":false},"TradingVenueVenueClosureInput":{"type":"object","properties":{"observedOn":{"type":"string"},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["observedOn"],"additionalProperties":false},"TradingVenueVenueCalendarUpsert":{"type":"object","properties":{"timezone":{"type":"string"},"parentCalendarId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"days":{"type":"array","items":{"$ref":"#/components/schemas/TradingVenueCalendarDay"}},"exceptions":{"type":"array","items":{"$ref":"#/components/schemas/TradingVenueVenueCalendarException"}},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["timezone","parentCalendarId","days","exceptions"],"additionalProperties":false},"TradingVenueQueuedMutation":{"type":"object","properties":{"transactionId":{"type":"string","minLength":1},"status":{"type":"string","minLength":1},"statusUrl":{"type":"string","minLength":1}},"required":["transactionId","status","statusUrl"],"additionalProperties":false},"TradingVenueMutationMeta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"$ref":"#/components/schemas/EthereumHashEncoded"}}},"required":["txHashes"],"additionalProperties":false},"EthereumHashEncoded":{"type":"string","pattern":"^0x[a-fA-F0-9]{64}$"},"TradingVenueVenueRoleSetOutput":{"type":"object","properties":{"venueAddress":{"$ref":"#/components/schemas/EvmAddress"},"address":{"$ref":"#/components/schemas/EvmAddress"},"grant":{"type":"array","items":{"$ref":"#/components/schemas/TradingVenueRole"}},"revoke":{"type":"array","items":{"$ref":"#/components/schemas/TradingVenueRole"}},"transactionHash":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"required":["venueAddress","address","grant","revoke","transactionHash"],"additionalProperties":false},"TradingVenueRole":{"type":"string","enum":["admin","operator","submitter"]},"TradingVenueVenueRoleSetBody":{"type":"object","properties":{"address":{"$ref":"#/components/schemas/EvmAddress"},"grant":{"type":"array","items":{"$ref":"#/components/schemas/TradingVenueRole"}},"revoke":{"type":"array","items":{"$ref":"#/components/schemas/TradingVenueRole"}},"walletVerification":{"anyOf":[{"type":"object","properties":{"secretVerificationCode":{"type":"string","minLength":1},"verificationType":{"anyOf":[{"type":"string","enum":["OTP","PINCODE","SECRET_CODES","OIDC_MFA"]},{"type":"null"}]}},"required":["secretVerificationCode"],"additionalProperties":false},{"type":"null"}]}},"required":["address","grant","revoke"],"additionalProperties":false},"TradingVenueDeskLimit":{"type":"object","properties":{"id":{"type":"string","minLength":1},"approvalId":{"type":"string","minLength":1},"deskLabel":{"type":"string","minLength":1},"traderWallet":{"$ref":"#/components/schemas/EvmAddress"},"limitQuote":{"type":"string","pattern":"^-?\\d+$"},"state":{"type":"string","enum":["proposed","approved","executing","rejected","executed","failed","reconciliation-required"]},"proposerUserId":{"$ref":"#/components/schemas/UserId"},"checkerUserId":{"anyOf":[{"$ref":"#/components/schemas/UserId"},{"type":"null"}]},"decidedAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["id","approvalId","deskLabel","traderWallet","limitQuote","state","proposerUserId","checkerUserId","decidedAt","createdAt"],"additionalProperties":false},"TradingVenueMakerCheckerDecision":{"type":"object","properties":{"approvalId":{"type":"string","minLength":1},"decision":{"type":"string","enum":["approve","reject"]},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["approvalId","decision"],"additionalProperties":false},"TradingVenueDeskLimitProposal":{"type":"object","properties":{"deskLabel":{"type":"string","minLength":1},"traderWallet":{"$ref":"#/components/schemas/EvmAddress"},"limitQuote":{"type":"string","pattern":"^-?\\d+$"},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["deskLabel","traderWallet","limitQuote"],"additionalProperties":false},"TradingVenueBustRecord":{"type":"object","properties":{"id":{"type":"string","minLength":1},"approvalId":{"type":"string","minLength":1},"tradeId":{"$ref":"#/components/schemas/TradeId"},"state":{"type":"string","enum":["proposed","approved","executing","rejected","executed","failed","reconciliation-required"]},"reason":{"type":"string","minLength":1},"legs":{"$ref":"#/components/schemas/TradingVenueBustLegs"},"settledBatchId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"proposerUserId":{"$ref":"#/components/schemas/UserId"},"checkerUserId":{"anyOf":[{"$ref":"#/components/schemas/UserId"},{"type":"null"}]},"decidedAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"executedAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["id","approvalId","tradeId","state","reason","legs","settledBatchId","proposerUserId","checkerUserId","decidedAt","executedAt","createdAt"],"additionalProperties":false},"TradingVenueBustLegs":{"type":"object","properties":{"baseToken":{"$ref":"#/components/schemas/EvmAddress"},"quoteToken":{"$ref":"#/components/schemas/EvmAddress"},"baseFrom":{"$ref":"#/components/schemas/EvmAddress"},"baseTo":{"$ref":"#/components/schemas/EvmAddress"},"baseAmount":{"type":"string","pattern":"^-?\\d+$"},"quoteFrom":{"$ref":"#/components/schemas/EvmAddress"},"quoteTo":{"$ref":"#/components/schemas/EvmAddress"},"quoteAmount":{"type":"string","pattern":"^-?\\d+$"},"feeFrom":{"$ref":"#/components/schemas/EvmAddress"},"feeTo":{"$ref":"#/components/schemas/EvmAddress"},"feeAmount":{"type":"string","pattern":"^-?\\d+$"}},"required":["baseToken","quoteToken","baseFrom","baseTo","baseAmount","quoteFrom","quoteTo","quoteAmount","feeFrom","feeTo","feeAmount"],"additionalProperties":false},"TradeId":{"type":"string","minLength":1,"description":"Trading Venue trade identifier"},"TradingVenueApprovalIdRequest":{"type":"object","properties":{"approvalId":{"type":"string","minLength":1},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["approvalId"],"additionalProperties":false},"TradingVenueBustProposal":{"type":"object","properties":{"tradeId":{"$ref":"#/components/schemas/TradeId"},"reason":{"type":"string","minLength":1},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["tradeId","reason"],"additionalProperties":false},"TradingVenueBandPruneResult":{"type":"object","properties":{"marketId":{"$ref":"#/components/schemas/MarketId"},"prunedCount":{"type":"integer"},"prunedOrderIds":{"type":"array","items":{"$ref":"#/components/schemas/OrderId"}}},"required":["marketId","prunedCount","prunedOrderIds"],"additionalProperties":false},"OrderId":{"type":"string","minLength":1,"description":"Trading Venue order identifier"},"TradingVenueBandPruneRequest":{"type":"object","properties":{"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"additionalProperties":false},"TradingVenueBandPreview":{"type":"object","properties":{"marketId":{"$ref":"#/components/schemas/MarketId"},"affectedCount":{"type":"integer"}},"required":["marketId","affectedCount"],"additionalProperties":false},"TradingVenueFloorTickEncoded":{"type":"string","pattern":"^-?\\d+$"},"TradingVenueBandBpsEncoded":{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},"TradingVenueStaticBandAnchorMode":{"type":"string","enum":["fixed","roll-on-close"]},"TradingVenueBandConfig":{"type":"object","properties":{"marketId":{"$ref":"#/components/schemas/MarketId"},"staticBandBps":{"anyOf":[{"$ref":"#/components/schemas/TradingVenueBandBps"},{"type":"null"}]},"staticBandAnchorTick":{"anyOf":[{"type":"string","pattern":"^-?\\d+$"},{"type":"null"}]},"staticBandAnchorMode":{"$ref":"#/components/schemas/TradingVenueStaticBandAnchorMode"},"dynamicBandBps":{"anyOf":[{"$ref":"#/components/schemas/TradingVenueBandBps"},{"type":"null"}]},"maxOrderQuantity":{"anyOf":[{"type":"string","pattern":"^-?\\d+$"},{"type":"null"}]},"maxOrderNotional":{"anyOf":[{"type":"string","pattern":"^-?\\d+$"},{"type":"null"}]},"floorTick":{"anyOf":[{"$ref":"#/components/schemas/TradingVenueFloorTickEncoded"},{"type":"null"}]},"upperBandEnabled":{"type":"boolean"}},"required":["marketId","staticBandBps","staticBandAnchorTick","dynamicBandBps","maxOrderQuantity","maxOrderNotional"],"additionalProperties":false},"TradingVenueBandBps":{"type":"integer","minimum":1},"TradingVenueBandPatch":{"type":"object","properties":{"staticBandBps":{"anyOf":[{"$ref":"#/components/schemas/TradingVenueBandBps"},{"type":"null"}]},"staticBandAnchorTick":{"anyOf":[{"type":"string","pattern":"^-?\\d+$"},{"type":"null"}]},"staticBandAnchorMode":{"$ref":"#/components/schemas/TradingVenueStaticBandAnchorMode"},"dynamicBandBps":{"anyOf":[{"$ref":"#/components/schemas/TradingVenueBandBps"},{"type":"null"}]},"maxOrderQuantity":{"anyOf":[{"type":"string","pattern":"^-?\\d+$"},{"type":"null"}]},"maxOrderNotional":{"anyOf":[{"type":"string","pattern":"^-?\\d+$"},{"type":"null"}]},"floorTick":{"anyOf":[{"$ref":"#/components/schemas/TradingVenueFloorTickEncoded"},{"type":"null"}]},"upperBandEnabled":{"type":"boolean"},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["staticBandBps","dynamicBandBps","maxOrderQuantity","maxOrderNotional"],"additionalProperties":false},"TradingVenueCollectionWindowSchedule":{"type":"object","properties":{"marketId":{"$ref":"#/components/schemas/MarketId"},"windows":{"type":"array","items":{"$ref":"#/components/schemas/TradingVenueCollectionWindow"}}},"required":["marketId","windows"],"additionalProperties":false},"TradingVenueCollectionWindow":{"type":"object","properties":{"id":{"type":"string","minLength":1},"marketId":{"$ref":"#/components/schemas/MarketId"},"clearingDate":{"$ref":"#/components/schemas/TradingVenueCalendarDate"},"startAt":{"$ref":"#/components/schemas/TimestampEncoded"},"endAt":{"$ref":"#/components/schemas/TimestampEncoded"},"appliedState":{"type":"string","enum":["none","preopen","open","closed"]},"officialCloseTick":{"anyOf":[{"type":"string","pattern":"^-?\\d+$"},{"type":"null"}]}},"required":["id","marketId","clearingDate","startAt","endAt","appliedState","officialCloseTick"],"additionalProperties":false},"TradingVenueCalendarDate":{"type":"string"},"TradingVenueCollectionWindowsReplace":{"type":"object","properties":{"windows":{"type":"array","items":{"$ref":"#/components/schemas/TradingVenueCollectionWindowRequest"}},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["windows"],"additionalProperties":false,"description":"The market's windows that have not started yet. Windows that are collecting or closed stay as they are."},"TradingVenueCollectionWindowRequest":{"type":"object","properties":{"startAt":{"$ref":"#/components/schemas/TimestampEncoded"},"endAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["startAt","endAt"],"additionalProperties":false,"description":"One collection window: orders are collected without matching from startAt until endAt, and the market clears once at endAt."},"TradingVenueCalendar":{"type":"object","properties":{"id":{"type":"string","minLength":1},"marketId":{"$ref":"#/components/schemas/MarketId"},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}]},"uncrossWindowMs":{"type":"integer"},"days":{"type":"array","items":{"$ref":"#/components/schemas/TradingVenueCalendarDay"}},"exceptions":{"type":"array","items":{"$ref":"#/components/schemas/TradingVenueCalendarException"}},"occurrences":{"type":"array","items":{"$ref":"#/components/schemas/TradingVenueSessionOccurrence"}}},"required":["id","marketId","timezone","uncrossWindowMs","days","exceptions","occurrences"],"additionalProperties":false},"TradingVenueSessionOccurrence":{"type":"object","properties":{"id":{"type":"string","minLength":1},"marketId":{"$ref":"#/components/schemas/MarketId"},"kind":{"type":"string","enum":["session","collection-window"]},"sessionDate":{"$ref":"#/components/schemas/TradingVenueCalendarDate"},"preopenAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"openAt":{"$ref":"#/components/schemas/TimestampEncoded"},"closeAt":{"$ref":"#/components/schemas/TimestampEncoded"},"appliedState":{"type":"string","enum":["none","preopen","open","closed"]},"officialCloseTick":{"anyOf":[{"type":"string","pattern":"^-?\\d+$"},{"type":"null"}]},"auctionPriceTick":{"anyOf":[{"type":"string","pattern":"^-?\\d+$"},{"type":"null"}]}},"required":["id","marketId","kind","sessionDate","preopenAt","openAt","closeAt","appliedState","officialCloseTick","auctionPriceTick"],"additionalProperties":false},"TradingVenueCalendarException":{"type":"object","properties":{"date":{"$ref":"#/components/schemas/TradingVenueCalendarDate"},"closed":{"type":"boolean"},"preopenTime":{"$ref":"#/components/schemas/TradingVenueTimeOfDay"},"openTime":{"$ref":"#/components/schemas/TradingVenueTimeOfDay"},"closeTime":{"$ref":"#/components/schemas/TradingVenueTimeOfDay"}},"required":["date","closed"],"additionalProperties":false},"TradingVenueCalendarUpsert":{"type":"object","properties":{"timezone":{"type":"string","minLength":1},"days":{"type":"array","items":{"$ref":"#/components/schemas/TradingVenueCalendarDay"}},"exceptions":{"type":"array","items":{"$ref":"#/components/schemas/TradingVenueCalendarException"}},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["timezone","days","exceptions"],"additionalProperties":false},"TradingVenueWatchlistEntryRemoved":{"type":"object","properties":{"watchlistId":{"type":"string","minLength":1},"marketId":{"$ref":"#/components/schemas/MarketId"},"removed":{"type":"boolean"}},"required":["watchlistId","marketId","removed"],"additionalProperties":false},"TradingVenueWatchlistEntryAdded":{"type":"object","properties":{"watchlistId":{"type":"string","minLength":1},"marketId":{"$ref":"#/components/schemas/MarketId"},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["watchlistId","marketId","createdAt"],"additionalProperties":false},"TradingVenueWatchlistEntryAddRequest":{"type":"object","properties":{"marketId":{"$ref":"#/components/schemas/MarketId"},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["marketId"],"additionalProperties":false},"TradingVenueWatchlist":{"type":"object","properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["id","name","createdAt","updatedAt"],"additionalProperties":false},"TradingVenueWatchlistName":{"type":"object","properties":{"name":{"type":"string","minLength":1},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["name"],"additionalProperties":false},"TradingVenueWatchlistDetail":{"type":"object","properties":{"id":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"},"entries":{"type":"array","items":{"$ref":"#/components/schemas/TradingVenueWatchlistEntry"}}},"required":["id","name","createdAt","updatedAt","entries"],"additionalProperties":false},"TradingVenueWatchlistEntry":{"type":"object","properties":{"marketId":{"$ref":"#/components/schemas/MarketId"},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["marketId","createdAt"],"additionalProperties":false},"TradingVenueMarketDataFrameEncoded":{"type":"string","contentMediaType":"application/json"},"TradingVenueMarketTicker":{"type":"object","properties":{"marketId":{"$ref":"#/components/schemas/MarketId"},"lastTradeTick":{"anyOf":[{"type":"string","pattern":"^-?\\d+$"},{"type":"null"}]},"openTick":{"anyOf":[{"type":"string","pattern":"^-?\\d+$"},{"type":"null"}]},"highTick":{"anyOf":[{"type":"string","pattern":"^-?\\d+$"},{"type":"null"}]},"lowTick":{"anyOf":[{"type":"string","pattern":"^-?\\d+$"},{"type":"null"}]},"baseVolume":{"type":"string","pattern":"^-?\\d+$"},"tradeCount":{"type":"integer"},"asOf":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["marketId","lastTradeTick","openTick","highTick","lowTick","baseVolume","tradeCount","asOf"],"additionalProperties":false},"TradingVenueCandle":{"type":"object","properties":{"marketId":{"$ref":"#/components/schemas/MarketId"},"interval":{"type":"string","enum":["1m","5m","15m","1h","4h","1d"]},"bucketStart":{"$ref":"#/components/schemas/TimestampEncoded"},"open":{"type":"string","pattern":"^-?\\d+$"},"high":{"type":"string","pattern":"^-?\\d+$"},"low":{"type":"string","pattern":"^-?\\d+$"},"close":{"type":"string","pattern":"^-?\\d+$"},"volume":{"type":"string","pattern":"^-?\\d+$"},"tradeCount":{"type":"integer"}},"required":["marketId","interval","bucketStart","open","high","low","close","volume","tradeCount"],"additionalProperties":false},"TradingVenueTrade":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/TradeId"},"marketId":{"$ref":"#/components/schemas/MarketId"},"sequence":{"type":"string","pattern":"^-?\\d+$"},"priceTick":{"type":"string","pattern":"^-?\\d+$"},"quantity":{"type":"string","pattern":"^-?\\d+$"},"status":{"type":"string","enum":["pending-delivery","delivered","undone"]},"undoReason":{"anyOf":[{"type":"string","enum":["bust","refused","reserver-removed"]},{"type":"null"}]},"executedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["id","marketId","sequence","priceTick","quantity","status","undoReason","executedAt"],"additionalProperties":false},"TradingVenueMarketDepth":{"type":"object","properties":{"marketId":{"$ref":"#/components/schemas/MarketId"},"sequence":{"type":"string","pattern":"^-?\\d+$"},"bids":{"type":"array","items":{"$ref":"#/components/schemas/TradingVenueBookLevel"}},"asks":{"type":"array","items":{"$ref":"#/components/schemas/TradingVenueBookLevel"}},"lastTradeTick":{"anyOf":[{"type":"string","pattern":"^-?\\d+$"},{"type":"null"}]},"indicativePriceTick":{"anyOf":[{"type":"string","pattern":"^-?\\d+$"},{"type":"null"}]},"indicativeQuantity":{"anyOf":[{"type":"string","pattern":"^-?\\d+$"},{"type":"null"}]},"asOf":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["marketId","sequence","bids","asks","lastTradeTick","indicativePriceTick","indicativeQuantity","asOf"],"additionalProperties":false},"TradingVenueBookLevel":{"type":"object","properties":{"priceTick":{"type":"string","pattern":"^-?\\d+$"},"quantity":{"type":"string","pattern":"^-?\\d+$"},"orderCount":{"type":"integer"}},"required":["priceTick","quantity","orderCount"],"additionalProperties":false},"TradingVenueOrderSignature":{"type":"object","properties":{"maker":{"$ref":"#/components/schemas/EvmAddress"},"recipient":{"$ref":"#/components/schemas/EvmAddress"},"signature":{"$ref":"#/components/schemas/EthereumHexEncoded"},"orderHash":{"$ref":"#/components/schemas/EthereumHexEncoded"}},"required":["maker","recipient","signature","orderHash"],"additionalProperties":false},"EthereumHexEncoded":{"type":"string","minLength":2,"description":"A valid Ethereum hex string starting with 0x","examples":["0x5208"]},"TradingVenueOrderSignRequest":{"type":"object","properties":{"marketId":{"$ref":"#/components/schemas/MarketId"},"recipient":{"$ref":"#/components/schemas/EvmAddress"},"side":{"type":"string","enum":["buy","sell"]},"priceTick":{"type":"string","pattern":"^-?\\d+$"},"quantity":{"type":"string","pattern":"^-?\\d+$"},"expiry":{"$ref":"#/components/schemas/VenueOrderExpirySecondsEncoded"},"epoch":{"type":"string","pattern":"^-?\\d+$"},"salt":{"type":"string","pattern":"^-?\\d+$"},"maxFeeBps":{"type":"string","pattern":"^-?\\d+$"},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["marketId","side","priceTick","quantity","expiry","epoch","salt","maxFeeBps"],"additionalProperties":false},"VenueOrderExpirySecondsEncoded":{"type":"string","pattern":"^-?\\d+$","description":"Unix time in seconds at which the order lapses. The Console and Portal convention for good-till-cancelled orders is 32503680000 (the year 3000). The venue contract compares it with the block timestamp, so a millisecond value is refused.","examples":["1790900000"]},"TradingVenueOrderAmended":{"type":"object","properties":{"amendedOrderId":{"$ref":"#/components/schemas/OrderId"},"orderId":{"$ref":"#/components/schemas/OrderId"},"priority":{"type":"string","enum":["kept","lost"]}},"required":["amendedOrderId","orderId","priority"],"additionalProperties":false,"description":"orderId is the order now live on the book: the amended order after a reduce, the replacement after a replace."},"TradingVenueOrderAmendRequest":{"type":"object","properties":{"amendment":{"$ref":"#/components/schemas/TradingVenueOrderAmendment"},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["amendment"],"additionalProperties":false},"TradingVenueOrderAmendment":{"anyOf":[{"$ref":"#/components/schemas/TradingVenueOrderReduce"},{"$ref":"#/components/schemas/TradingVenueOrderReplace"}],"discriminator":{"propertyName":"kind","mapping":{"reduce":"#/components/schemas/TradingVenueOrderReduce","replace":"#/components/schemas/TradingVenueOrderReplace"}}},"TradingVenueOrderReplace":{"type":"object","properties":{"kind":{"type":"string","enum":["replace"]},"replacement":{"$ref":"#/components/schemas/TradingVenueSignedOrderIntent"}},"required":["kind","replacement"],"additionalProperties":false,"description":"Swaps a resting order for a newly signed one at a new price or a larger quantity. The replacement's quantity is what is still to trade; fills already on the original stay there. It takes a new order id and joins the back of the queue."},"TradingVenueSignedOrderIntent":{"type":"object","properties":{"marketId":{"$ref":"#/components/schemas/MarketId"},"maker":{"$ref":"#/components/schemas/EvmAddress"},"recipient":{"$ref":"#/components/schemas/EvmAddress"},"side":{"type":"string","enum":["buy","sell"]},"orderType":{"type":"string","enum":["limit","market"]},"timeInForce":{"type":"string","enum":["gtc","gtd","ioc","fok"]},"priceTick":{"type":"string","pattern":"^-?\\d+$"},"triggerTick":{"type":"string","pattern":"^-?\\d+$"},"quantity":{"type":"string","pattern":"^-?\\d+$"},"expiry":{"$ref":"#/components/schemas/VenueOrderExpirySecondsEncoded"},"epoch":{"type":"string","pattern":"^-?\\d+$"},"salt":{"type":"string","pattern":"^-?\\d+$"},"maxFeeBps":{"type":"string","pattern":"^-?\\d+$"},"signature":{"$ref":"#/components/schemas/EthereumHexEncoded"}},"required":["marketId","maker","recipient","side","orderType","timeInForce","priceTick","quantity","expiry","epoch","salt","maxFeeBps","signature"],"additionalProperties":false},"TradingVenueOrderReduce":{"type":"object","properties":{"kind":{"type":"string","enum":["reduce"]},"quantity":{"type":"string","pattern":"^-?\\d+$"}},"required":["kind","quantity"],"additionalProperties":false,"description":"Lowers a resting order's total quantity in place. The order keeps its id, its signature and its place in the queue; the reservation behind the cut is released."},"TradingVenueOrderCancelled":{"type":"object","properties":{"orderId":{"$ref":"#/components/schemas/OrderId"},"status":{"type":"string","enum":["pending_reservation","armed","working","partially_filled","filled","cancelled","expired","rejected","pruned"]}},"required":["orderId","status"],"additionalProperties":false},"TradingVenueOrderCancelRequest":{"type":"object","properties":{"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"additionalProperties":false},"TradingVenueOrderPlaced":{"type":"object","properties":{"orderId":{"$ref":"#/components/schemas/OrderId"},"orderHash":{"$ref":"#/components/schemas/EthereumHexEncoded"},"transactionHash":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["orderId","orderHash","transactionHash"],"additionalProperties":false},"TradingVenueOrderPlaceRequest":{"type":"object","properties":{"marketId":{"$ref":"#/components/schemas/MarketId"},"maker":{"$ref":"#/components/schemas/EvmAddress"},"recipient":{"$ref":"#/components/schemas/EvmAddress"},"side":{"type":"string","enum":["buy","sell"]},"orderType":{"type":"string","enum":["limit","market"]},"timeInForce":{"type":"string","enum":["gtc","gtd","ioc","fok"]},"priceTick":{"type":"string","pattern":"^-?\\d+$"},"triggerTick":{"type":"string","pattern":"^-?\\d+$"},"quantity":{"type":"string","pattern":"^-?\\d+$"},"expiry":{"$ref":"#/components/schemas/VenueOrderExpirySecondsEncoded"},"epoch":{"type":"string","pattern":"^-?\\d+$"},"salt":{"type":"string","pattern":"^-?\\d+$"},"maxFeeBps":{"type":"string","pattern":"^-?\\d+$"},"signature":{"$ref":"#/components/schemas/EthereumHexEncoded"},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["marketId","maker","recipient","side","orderType","timeInForce","priceTick","quantity","expiry","epoch","salt","maxFeeBps","signature"],"additionalProperties":false},"TradingVenueReservation":{"type":"object","properties":{"id":{"type":"string","minLength":1},"orderId":{"$ref":"#/components/schemas/OrderId"},"marketId":{"$ref":"#/components/schemas/MarketId"},"walletAddress":{"$ref":"#/components/schemas/EvmAddress"},"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"amount":{"type":"string","pattern":"^-?\\d+$"},"status":{"type":"string","enum":["active","released"]},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"unconfirmedPull":{"type":"string","pattern":"^-?\\d+$"}},"required":["id","orderId","marketId","walletAddress","tokenAddress","amount","status","createdAt","unconfirmedPull"],"additionalProperties":false},"TradingVenueBlotterEntry":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/TradeId"},"marketId":{"$ref":"#/components/schemas/MarketId"},"orderId":{"$ref":"#/components/schemas/OrderId"},"side":{"type":"string","enum":["buy","sell"]},"priceTick":{"type":"string","pattern":"^-?\\d+$"},"quantity":{"type":"string","pattern":"^-?\\d+$"},"fee":{"type":"string","pattern":"^-?\\d+$"},"status":{"type":"string","enum":["pending-delivery","delivered","undone"]},"undoReason":{"anyOf":[{"type":"string","enum":["bust","refused","reserver-removed"]},{"type":"null"}]},"executedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["id","marketId","orderId","side","priceTick","quantity","fee","status","undoReason","executedAt"],"additionalProperties":false},"TradingVenueOrderStreamFrameEncoded":{"type":"string","contentMediaType":"application/json"},"TradingVenueOrderStreamEventId":{"type":"string","pattern":"^(\\d{1,19})\\.(\\d{1,19})$","description":"Opaque resume cursor for the caller's order stream."},"TradingVenueOrder":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/OrderId"},"marketId":{"$ref":"#/components/schemas/MarketId"},"makerAddress":{"$ref":"#/components/schemas/EvmAddress"},"side":{"type":"string","enum":["buy","sell"]},"orderType":{"type":"string","enum":["limit","market"]},"timeInForce":{"type":"string","enum":["gtc","gtd","ioc","fok"]},"priceTick":{"anyOf":[{"type":"string","pattern":"^-?\\d+$"},{"type":"null"}]},"triggerTick":{"anyOf":[{"type":"string","pattern":"^-?\\d+$"},{"type":"null"}]},"quantity":{"type":"string","pattern":"^-?\\d+$"},"filledQuantity":{"type":"string","pattern":"^-?\\d+$"},"status":{"type":"string","enum":["pending_reservation","armed","working","partially_filled","filled","cancelled","expired","rejected","pruned"]},"closeReason":{"anyOf":[{"type":"string","enum":["filled","cancelled","expired","dust","protection-band","no-band-anchor","static-band","dynamic-band","floor-price","max-quantity","max-notional","ioc-remainder","fok-unfilled","replaced","session-closed","stop-trigger-failed","rejected"]},{"type":"null"}]},"orderHash":{"$ref":"#/components/schemas/EthereumHexEncoded"},"expiresAt":{"$ref":"#/components/schemas/TimestampEncoded"},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["id","marketId","makerAddress","side","orderType","timeInForce","priceTick","triggerTick","quantity","filledQuantity","status","closeReason","orderHash","expiresAt","createdAt"],"additionalProperties":false},"TradingVenueMarketListingPreflight":{"type":"object","properties":{"venueAddress":{"$ref":"#/components/schemas/EvmAddress"},"ready":{"type":"boolean"},"checks":{"type":"array","items":{"$ref":"#/components/schemas/TradingVenueMarketListingAccessCheck"}},"tokens":{"type":"array","items":{"$ref":"#/components/schemas/TradingVenueMarketListingTokenEligibility"}}},"required":["venueAddress","ready","checks","tokens"],"additionalProperties":false},"TradingVenueMarketListingTokenEligibility":{"type":"object","properties":{"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"side":{"$ref":"#/components/schemas/TradingVenueMarketListingTokenSide"},"state":{"$ref":"#/components/schemas/TradingVenueMarketListingTokenState"},"eligible":{"type":"boolean"}},"required":["tokenAddress","side","state","eligible"],"additionalProperties":false},"TradingVenueMarketListingTokenState":{"type":"string","enum":["hold-ready","vault-ready","no-hold-feature","venue-not-reserver","vault-not-bound","venue-refused"]},"TradingVenueMarketListingTokenSide":{"type":"string","enum":["base","quote"]},"TradingVenueMarketListingAccessCheck":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/TradingVenueMarketListingAccessCheckId"},"passed":{"type":"boolean"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","passed","reason"],"additionalProperties":false},"TradingVenueMarketListingAccessCheckId":{"type":"string","enum":["operator-role","listing-signer","operations-binding","venue-submitter","pair-available"]},"TradingVenueFeeScheduleResult":{"type":"object","properties":{"marketId":{"$ref":"#/components/schemas/MarketId"},"makerFeeBps":{"type":"integer"},"takerFeeBps":{"type":"integer"},"transactionHash":{"type":"string"}},"required":["marketId","makerFeeBps","takerFeeBps","transactionHash"],"additionalProperties":false},"TradingVenueFeeSchedulePatch":{"type":"object","properties":{"makerFeeBps":{"$ref":"#/components/schemas/FeeRateBps"},"takerFeeBps":{"$ref":"#/components/schemas/FeeRateBps"},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["makerFeeBps","takerFeeBps"],"additionalProperties":false},"FeeRateBps":{"type":"integer"},"TradingVenueMarketAdminResult":{"type":"object","properties":{"marketId":{"$ref":"#/components/schemas/MarketId"},"status":{"type":"string","enum":["pending","live","halted","delisted"]},"transactionHash":{"type":"string"}},"required":["marketId","status","transactionHash"],"additionalProperties":false},"TradingVenueMarketTransitionRequest":{"type":"object","properties":{"to":{"$ref":"#/components/schemas/TradingVenueMarketTransitionTarget"},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["to"],"additionalProperties":false},"TradingVenueMarketTransitionTarget":{"type":"string","enum":["halted","live","delisted"]},"TradingVenueParticipantRemoved":{"type":"object","properties":{"marketId":{"$ref":"#/components/schemas/MarketId"},"walletAddress":{"$ref":"#/components/schemas/EvmAddress"},"prunedCount":{"type":"integer"},"prunedOrderIds":{"type":"array","items":{"$ref":"#/components/schemas/OrderId"}}},"required":["marketId","walletAddress","prunedCount","prunedOrderIds"],"additionalProperties":false},"TradingVenueMarketParticipant":{"type":"object","properties":{"marketId":{"$ref":"#/components/schemas/MarketId"},"participantId":{"$ref":"#/components/schemas/ParticipantId"},"walletAddress":{"$ref":"#/components/schemas/EvmAddress"},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["marketId","participantId","walletAddress","createdAt"],"additionalProperties":false},"ParticipantId":{"type":"string","minLength":1,"description":"Participant identifier"},"TradingVenueParticipantAddRequest":{"type":"object","properties":{"walletAddress":{"$ref":"#/components/schemas/EvmAddress"},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["walletAddress"],"additionalProperties":false},"TradingVenueMarket":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/MarketId"},"venueId":{"type":"string","minLength":1,"examples":["0198f1c4-5e6f-7a80-bc13-4d5e6f7a8bb1"]},"venueAddress":{"$ref":"#/components/schemas/EvmAddress"},"baseTokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"quoteTokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"baseBackend":{"$ref":"#/components/schemas/TradingVenueMarketLegBackend"},"quoteBackend":{"$ref":"#/components/schemas/TradingVenueMarketLegBackend"},"tickSize":{"type":"string","pattern":"^-?\\d+$"},"valuationPriceTick":{"anyOf":[{"type":"string","pattern":"^-?\\d+$"},{"type":"null"}]},"valuationEditable":{"type":"boolean"},"publishesBaseTokenPrice":{"type":"boolean"},"lotSize":{"type":"string","pattern":"^-?\\d+$"},"minNotional":{"type":"string","pattern":"^-?\\d+$"},"makerFeeBps":{"$ref":"#/components/schemas/FeeRateBps"},"takerFeeBps":{"$ref":"#/components/schemas/FeeRateBps"},"protectionBandBps":{"$ref":"#/components/schemas/FeeRateBps"},"status":{"type":"string","enum":["pending","live","halted","delisted"]},"mode":{"type":"string","enum":["continuous","auction-only"]},"private":{"type":"boolean"},"sponsorship":{"anyOf":[{"$ref":"#/components/schemas/TradingVenueMarketSponsorship"},{"type":"null"}]},"admissionValueUsd":{"anyOf":[{"$ref":"#/components/schemas/TradingVenueAdmissionUnitsEncoded"},{"type":"null"}],"description":"Value of the securities made available for trading, in whole US dollars, as stated at listing. Null when the listing stated none."},"admissionShares":{"anyOf":[{"$ref":"#/components/schemas/TradingVenueAdmissionUnitsEncoded"},{"type":"null"}],"description":"Number of whole shares made available for trading, as stated at listing. Null when the listing stated none."},"depthVisibility":{"type":"string","enum":["full","top-of-book"]},"auctionRemainder":{"type":"string","enum":["carry","cancel"]},"auctionPriceRounding":{"type":"string","enum":["block","nearest-half-up","nearest-half-down"]},"closeMethodology":{"type":"string","enum":["last-trade","vwap"]},"closeVwapWindowMs":{"anyOf":[{"type":"integer"},{"type":"null"}]},"sessionState":{"type":"string","enum":["closed","preopen","open-continuous","auction-collection"]},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}]},"allowedOrderTypes":{"type":"array","prefixItems":[{"type":"string","enum":["limit","market","stop"]}],"minItems":1,"items":{"type":"string","enum":["limit","market","stop"]},"examples":[["limit","market","stop"]]},"allowedTimeInForce":{"type":"array","prefixItems":[{"type":"string","enum":["gtc","gtd","ioc","fok"]}],"minItems":1,"items":{"type":"string","enum":["gtc","gtd","ioc","fok"]},"examples":[["gtc","gtd","ioc","fok"]]},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"ceremony":{"$ref":"#/components/schemas/TradingVenueMarketCeremony"}},"required":["id","venueId","venueAddress","baseTokenAddress","quoteTokenAddress","baseBackend","quoteBackend","tickSize","lotSize","minNotional","makerFeeBps","takerFeeBps","protectionBandBps","status","mode","private","sponsorship","admissionValueUsd","admissionShares","depthVisibility","auctionRemainder","auctionPriceRounding","closeMethodology","closeVwapWindowMs","sessionState","timezone","allowedOrderTypes","allowedTimeInForce","createdAt"],"additionalProperties":false},"TradingVenueMarketCeremony":{"type":"object","properties":{"baseReservation":{"type":"string","enum":["complete","awaiting"]},"quoteReservation":{"type":"string","enum":["complete","awaiting"]},"feedWriter":{"type":"string","enum":["complete","awaiting"]},"feeAccountEligibility":{"type":"string","enum":["complete","awaiting"]}},"required":["baseReservation","quoteReservation","feedWriter","feeAccountEligibility"],"additionalProperties":false},"TradingVenueMarketSponsorship":{"type":"string","enum":["sponsored","unsponsored"],"description":"Who asked for a private listing: the issuer of the security (sponsored) or a holder of it (unsponsored). The venue refuses it on a public listing and applies the issuer's nationality restrictions to private sponsored listings only."},"TradingVenueMarketLegBackend":{"type":"object","properties":{"kind":{"type":"string","enum":["hold","escrow","unbound"]},"address":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]}},"required":["kind","address"],"additionalProperties":false},"TradingVenueMarketPatch":{"type":"object","properties":{"valuationPrice":{"type":"string","pattern":"^-?\\d+$"},"mode":{"type":"string","enum":["continuous","auction-only"]},"private":{"type":"boolean"},"sponsorship":{"$ref":"#/components/schemas/TradingVenueMarketSponsorship_1"},"admissionValueUsd":{"anyOf":[{"$ref":"#/components/schemas/TradingVenueAdmissionUnitsEncoded"},{"type":"null"}],"description":"Value of the securities made available, in whole US dollars. Editable while the market is pending."},"admissionShares":{"anyOf":[{"$ref":"#/components/schemas/TradingVenueAdmissionUnitsEncoded"},{"type":"null"}],"description":"Number of whole shares made available. Editable while the market is pending."},"depthVisibility":{"type":"string","enum":["full","top-of-book"]},"closeMethodology":{"type":"string","enum":["last-trade","vwap"]},"closeVwapWindowMs":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}]},"allowedOrderTypes":{"type":"array","prefixItems":[{"type":"string","enum":["limit","market","stop"]}],"minItems":1,"items":{"type":"string","enum":["limit","market","stop"]},"examples":[["limit","market","stop"]],"uniqueItems":true},"allowedTimeInForce":{"type":"array","prefixItems":[{"type":"string","enum":["gtc","gtd","ioc","fok"]}],"minItems":1,"items":{"type":"string","enum":["gtc","gtd","ioc","fok"]},"examples":[["gtc","gtd","ioc","fok"]],"uniqueItems":true},"publishesBaseTokenPrice":{"type":"boolean"},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"additionalProperties":false},"TradingVenueMarketSponsorship_1":{"type":"string","enum":["sponsored","unsponsored"],"description":"Editable while the market is pending. A listed market keeps its sponsorship, except that one listed without any may record it once."},"TradingVenueMarketCreated":{"type":"object","properties":{"marketId":{"$ref":"#/components/schemas/MarketId"},"transactionHash":{"type":"string"}},"required":["marketId","transactionHash"],"additionalProperties":false},"TradingVenueMarketDraft":{"type":"object","properties":{"baseTokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"quoteTokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"tickSize":{"type":"string","pattern":"^-?\\d+$"},"valuationPrice":{"type":"string","pattern":"^-?\\d+$"},"lotSize":{"type":"string","pattern":"^-?\\d+$"},"minNotional":{"type":"string","pattern":"^-?\\d+$"},"makerFeeBps":{"$ref":"#/components/schemas/FeeRateBps"},"takerFeeBps":{"$ref":"#/components/schemas/FeeRateBps"},"protectionBandBps":{"type":"integer","minimum":1},"feeAccount":{"$ref":"#/components/schemas/EvmAddress"},"publishesBaseTokenPrice":{"type":"boolean"},"mode":{"type":"string","enum":["continuous","auction-only"]},"private":{"type":"boolean"},"sponsorship":{"$ref":"#/components/schemas/TradingVenueMarketSponsorship"},"admissionValueUsd":{"$ref":"#/components/schemas/TradingVenueAdmissionUnitsEncoded"},"admissionShares":{"$ref":"#/components/schemas/TradingVenueAdmissionUnitsEncoded"},"depthVisibility":{"type":"string","enum":["full","top-of-book"]},"auctionRemainder":{"type":"string","enum":["carry","cancel"]},"auctionPriceRounding":{"type":"string","enum":["block","nearest-half-up","nearest-half-down"]},"participants":{"type":"array","items":{"$ref":"#/components/schemas/EvmAddress"}},"closeMethodology":{"type":"string","enum":["last-trade","vwap"]},"closeVwapWindowMs":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}]},"holdingPeriodSeconds":{"type":"integer","minimum":0,"maximum":2592000},"allowedOrderTypes":{"type":"array","prefixItems":[{"type":"string","enum":["limit","market","stop"]}],"minItems":1,"items":{"type":"string","enum":["limit","market","stop"]},"examples":[["limit","market","stop"]],"uniqueItems":true},"allowedTimeInForce":{"type":"array","prefixItems":[{"type":"string","enum":["gtc","gtd","ioc","fok"]}],"minItems":1,"items":{"type":"string","enum":["gtc","gtd","ioc","fok"]},"examples":[["gtc","gtd","ioc","fok"]],"uniqueItems":true},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["baseTokenAddress","quoteTokenAddress","tickSize","valuationPrice","lotSize","minNotional","makerFeeBps","takerFeeBps","protectionBandBps","feeAccount"],"additionalProperties":false},"TradingVenueMarketListFilter":{"type":"object","properties":{"tradeableNow":{"type":"string","enum":["true"],"description":"Keeps only the markets tradeable now for the caller: live, with a caller wallet holding an active registration in an identity registry that trusts the market's base or quote token. Omit the filter for every visible market."}},"additionalProperties":false},"TradingVenueCreated":{"type":"object","properties":{"venueAddress":{"$ref":"#/components/schemas/EvmAddress"},"transactionHash":{"type":"string"}},"required":["venueAddress","transactionHash"],"additionalProperties":false},"TradingVenueDraft":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"country":{"type":"integer","minimum":0,"maximum":999},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["name"],"additionalProperties":false},"TradingVenue":{"type":"object","properties":{"venueAddress":{"$ref":"#/components/schemas/EvmAddress"},"name":{"type":"string","minLength":1,"description":"Display name the venue was created with."},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"What the venue is for, as its operator described it. Null when the venue was created without one."},"creatorAddress":{"$ref":"#/components/schemas/EvmAddress"},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"accessManagerAddress":{"$ref":"#/components/schemas/EvmAddress"},"permissions":{"$ref":"#/components/schemas/TradingVenuePermissions"},"oneTradingModelPerSecurity":{"type":"boolean","description":"When true, the venue refuses a new market for a security it already lists under a different trading model (continuous or auction-only)."},"minimumAdmissionValueUsd":{"anyOf":[{"$ref":"#/components/schemas/TradingVenueAdmissionUnitsEncoded"},{"type":"null"}],"description":"Smallest value, in whole US dollars, of the securities a private listing must make available. Null admits any value."},"minimumAdmissionShares":{"anyOf":[{"$ref":"#/components/schemas/TradingVenueAdmissionUnitsEncoded"},{"type":"null"}],"description":"Smallest number of whole shares a private listing must make available. Null admits any count."}},"required":["venueAddress","name","description","creatorAddress","createdAt","accessManagerAddress","permissions","oneTradingModelPerSecurity","minimumAdmissionValueUsd","minimumAdmissionShares"],"additionalProperties":false},"TradingVenuePermissions":{"type":"object","properties":{"admin":{"type":"array","items":{"$ref":"#/components/schemas/EvmAddress"},"description":"Accounts holding VENUE_ADMIN_ROLE: they grant and revoke the other two roles."},"operator":{"type":"array","items":{"$ref":"#/components/schemas/EvmAddress"},"description":"Accounts holding VENUE_OPERATOR_ROLE: market administration, busts, and the venue pause."},"submitter":{"type":"array","items":{"$ref":"#/components/schemas/EvmAddress"},"description":"Accounts holding VENUE_SUBMITTER_ROLE: the engine accounts that submit settlement."}},"required":["admin","operator","submitter"],"additionalProperties":false},"ReturnsCollectionSuccess":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ReturnsCollectionResultItem"}},"remaining":{"type":"integer"}},"required":["items","remaining"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string","enum":["/api/v2/portfolio/returns/collections"]}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false,"description":"One result per claimed item, in claim order, and remaining: the collectable items this request did not attempt because at most ten are claimed per request. A failed or skipped item carries a reason and a message; the others were still claimed.","examples":[{"data":{"items":[{"returnType":"dividend","tokenAddress":"0x1111111111111111111111111111111111111111","tokenName":"Grey Matter Equity","tokenSymbol":"GME","featureAddress":"0x2222222222222222222222222222222222222222","dividendId":"3","amountExact":"40000000","denominationAddress":"0x3333333333333333333333333333333333333333","denominationSymbol":"EURC","denominationDecimals":6,"status":"collected","transactionId":"tx_01J8Z6Q0000000000000000000","transactionHash":"0x4444444444444444444444444444444444444444444444444444444444444444","reason":null,"message":null}],"remaining":0},"links":{"self":"/api/v2/portfolio/returns/collections"}}]},"ReturnsCollectionResultItem":{"type":"object","properties":{"returnType":{"type":"string","enum":["fixed","dividend","interest"]},"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"tokenName":{"anyOf":[{"type":"string"},{"type":"null"}]},"tokenSymbol":{"anyOf":[{"type":"string"},{"type":"null"}]},"featureAddress":{"$ref":"#/components/schemas/EvmAddress"},"dividendId":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"amountExact":{"type":"string","pattern":"^[0-9]+$"},"denominationAddress":{"$ref":"#/components/schemas/EvmAddress"},"denominationSymbol":{"anyOf":[{"type":"string"},{"type":"null"}]},"denominationDecimals":{"anyOf":[{"type":"integer"},{"type":"null"}]},"status":{"type":"string","enum":["collected","queued","failed","skipped"]},"transactionId":{"anyOf":[{"type":"string"},{"type":"null"}]},"transactionHash":{"anyOf":[{"$ref":"#/components/schemas/EthereumHashEncoded"},{"type":"null"}]},"reason":{"anyOf":[{"type":"string","enum":["nothing-to-collect","not-indexed","feature-not-attached","transaction-reverted","queue-unavailable","not-authorized","compliance-rejected","state-unavailable"]},{"type":"null"}]},"message":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["returnType","tokenAddress","tokenName","tokenSymbol","featureAddress","dividendId","amountExact","denominationAddress","denominationSymbol","denominationDecimals","status","transactionId","transactionHash","reason","message"],"additionalProperties":false,"description":"The outcome of one claim. collected carries the settled transaction, queued carries a transaction the queue accepted but has not settled, failed and skipped carry a reason and message."},"ReturnsCollectableSuccess":{"type":"object","properties":{"data":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ReturnsCollectableItem"}}},"required":["items"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string","enum":["/api/v2/portfolio/returns/collectable"]}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false,"description":"Every return the acting wallet can collect now, in the order a collection claims them: fixed treasury yield, then dividends by payment date, then interest. An empty list means there is nothing to collect.","examples":[{"data":{"items":[{"returnType":"dividend","tokenAddress":"0x1111111111111111111111111111111111111111","tokenName":"Grey Matter Equity","tokenSymbol":"GME","featureAddress":"0x2222222222222222222222222222222222222222","dividendId":"3","amountExact":"40000000","denominationAddress":"0x3333333333333333333333333333333333333333","denominationSymbol":"EURC","denominationDecimals":6}]},"links":{"self":"/api/v2/portfolio/returns/collectable"}}]},"ReturnsCollectableItem":{"type":"object","properties":{"returnType":{"type":"string","enum":["fixed","dividend","interest"]},"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"tokenName":{"anyOf":[{"type":"string"},{"type":"null"}]},"tokenSymbol":{"anyOf":[{"type":"string"},{"type":"null"}]},"featureAddress":{"$ref":"#/components/schemas/EvmAddress"},"dividendId":{"anyOf":[{"type":"string","pattern":"^[0-9]+$"},{"type":"null"}]},"amountExact":{"type":"string","pattern":"^[0-9]+$"},"denominationAddress":{"$ref":"#/components/schemas/EvmAddress"},"denominationSymbol":{"anyOf":[{"type":"string"},{"type":"null"}]},"denominationDecimals":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"required":["returnType","tokenAddress","tokenName","tokenSymbol","featureAddress","dividendId","amountExact","denominationAddress","denominationSymbol","denominationDecimals"],"additionalProperties":false,"description":"One return the acting wallet can collect now. dividendId is set for a dividend and null otherwise. amountExact is in the denomination asset's smallest unit."},"TokenRecord":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"tokenFactory":{"$ref":"#/components/schemas/EvmAddress"},"complianceContract":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"identityRegistry":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"type":{"$ref":"#/components/schemas/AssetTypeOrSlug"},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"name":{"type":"string"},"symbol":{"type":"string"},"logoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"decimals":{"$ref":"#/components/schemas/DecimalsEncoded"},"basePrice":{"$ref":"#/components/schemas/BigDecimal"},"basePriceCurrencyCode":{"anyOf":[{"$ref":"#/components/schemas/FiatCurrency"},{"type":"null"}]},"totalSupply":{"$ref":"#/components/schemas/BigDecimal"},"totalSupplyExact":{"$ref":"#/components/schemas/AssetAmount"},"extensions":{"$ref":"#/components/schemas/AssetExtensionArray"},"implementsERC3643":{"type":"boolean"},"smartInterface":{"anyOf":[{"type":"integer"},{"type":"null"}]},"implementsSMART":{"type":"boolean"},"identity":{"$ref":"#/components/schemas/TokenRecordIdentity"},"pausable":{"type":"object","properties":{"paused":{"type":"boolean"}},"required":["paused"],"additionalProperties":false},"collateral":{"anyOf":[{"$ref":"#/components/schemas/TokenRecordCollateral"},{"type":"null"}]},"capped":{"anyOf":[{"$ref":"#/components/schemas/TokenRecordCapped"},{"type":"null"}]},"createdBy":{"$ref":"#/components/schemas/TokenRecordAddressRef"},"redeemable":{"anyOf":[{"$ref":"#/components/schemas/TokenRecordRedeemable"},{"type":"null"}]},"yield":{"anyOf":[{"$ref":"#/components/schemas/TokenRecordYield"},{"type":"null"}]},"bond":{"anyOf":[{"$ref":"#/components/schemas/TokenRecordBond"},{"type":"null"}]},"fund":{"anyOf":[{"$ref":"#/components/schemas/TokenRecordFund"},{"type":"null"}]},"accessControl":{"$ref":"#/components/schemas/AccessControl_1"},"complianceModuleConfigs":{"type":"array","items":{"$ref":"#/components/schemas/TokenRecordComplianceModuleConfig"}},"userPermissions":{"$ref":"#/components/schemas/TokenRecordUserPermissions"},"stats":{"anyOf":[{"$ref":"#/components/schemas/TokenRecordStats"},{"type":"null"}]}},"required":["id","tokenFactory","complianceContract","identityRegistry","type","createdAt","name","symbol","decimals","basePrice","basePriceCurrencyCode","totalSupply","extensions","implementsERC3643","smartInterface","implementsSMART","pausable","collateral","capped","createdBy","redeemable","yield","bond","fund","complianceModuleConfigs","stats"],"additionalProperties":false,"description":"Indexed token. Amounts such as `totalSupply` are decimal-adjusted. `*Exact` fields are raw uint256 decimal strings. Extension blocks (`bond`, `yield`, `fund`, `capped`, `collateral`, `redeemable`) are `null` when that feature is not installed."},"TokenRecordStats":{"type":"object","properties":{"balancesCount":{"type":"number"},"totalValueInBaseCurrency":{"$ref":"#/components/schemas/BigDecimal"},"totalBurned":{"$ref":"#/components/schemas/BigDecimal"},"totalBurnedExact":{"$ref":"#/components/schemas/AssetAmount"}},"required":["balancesCount","totalValueInBaseCurrency","totalBurned","totalBurnedExact"],"additionalProperties":false},"AssetAmount":{"type":"string","pattern":"^[0-9]+$","description":"Non-negative uint256 asset amount decoded to a bigint"},"BigDecimal":{"anyOf":[{"type":"string"},{"type":"number"}],"description":"A decimal number with arbitrary precision"},"TokenRecordUserPermissions":{"type":"object","properties":{"roles":{"type":"object","properties":{"admin":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"custodian":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"emergency":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"fundsManager":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"governance":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"saleAdmin":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"supplyManagement":{"anyOf":[{"type":"boolean"},{"type":"null"}]}},"additionalProperties":false},"actions":{"$ref":"#/components/schemas/TokenRecordPermissionActions"}},"required":["roles","actions"],"additionalProperties":false},"TokenRecordPermissionActions":{"type":"object","properties":{"burn":{"type":"boolean"},"grantRole":{"type":"boolean"},"grantRoleByParticipant":{"type":"boolean"},"revokeRole":{"type":"boolean"},"revokeRoleByParticipant":{"type":"boolean"},"mint":{"type":"boolean"},"pause":{"type":"boolean"},"addComplianceModule":{"type":"boolean"},"approve":{"type":"boolean"},"forcedRecover":{"type":"boolean"},"freezeAddress":{"type":"boolean"},"recoverERC20":{"type":"boolean"},"recoverTokens":{"type":"boolean"},"redeem":{"type":"boolean"},"mature":{"type":"boolean"},"removeComplianceModule":{"type":"boolean"},"setCap":{"type":"boolean"},"setComplianceModuleParams":{"type":"boolean"},"setYieldSchedule":{"type":"boolean"},"topUpDenominationAsset":{"type":"boolean"},"withdrawDenominationAsset":{"type":"boolean"},"transfer":{"type":"boolean"},"forcedTransfer":{"type":"boolean"},"unpause":{"type":"boolean"},"updateCollateral":{"type":"boolean"},"freezePartial":{"type":"boolean"},"unfreezePartial":{"type":"boolean"},"claimIssue":{"type":"boolean"},"claimRevoke":{"type":"boolean"},"setMetadata":{"type":"boolean"},"removeMetadata":{"type":"boolean"},"setAumFeeBps":{"type":"boolean"},"setAumFeeRecipient":{"type":"boolean"},"approveTransfer":{"type":"boolean"},"revokeTransferApproval":{"type":"boolean"},"collectAumFee":{"type":"boolean"},"freezeAumFeeRate":{"type":"boolean"},"claimYield":{"type":"boolean"},"setYieldTreasury":{"type":"boolean"},"matureEarly":{"type":"boolean"},"setMaturityTreasury":{"type":"boolean"},"topUpMaturityTreasury":{"type":"boolean"},"topUpYieldTreasury":{"type":"boolean"},"topUpBondDenomination":{"type":"boolean"},"setTransactionFeeRates":{"type":"boolean"},"setTransactionFeeRecipient":{"type":"boolean"},"freezeTransactionFeeRates":{"type":"boolean"},"setExternalTransactionFees":{"type":"boolean"},"setExternalTransactionFeeRecipient":{"type":"boolean"},"setExternalTransactionFeeToken":{"type":"boolean"},"freezeExternalTransactionFees":{"type":"boolean"},"setTransactionFeeAccountingRates":{"type":"boolean"},"setTransactionFeeAccountingRecipient":{"type":"boolean"},"freezeTransactionFeeAccountingRates":{"type":"boolean"},"reconcileFees":{"type":"boolean"},"setFeeExemption":{"type":"boolean"},"delegate":{"type":"boolean"},"delegateBySig":{"type":"boolean"},"permit":{"type":"boolean"},"publishTrigger":{"type":"boolean"},"disableTrigger":{"type":"boolean"},"setConversionWindow":{"type":"boolean"},"convert":{"type":"boolean"},"forceConvert":{"type":"boolean"},"addAuthorizedConverter":{"type":"boolean"},"removeAuthorizedConverter":{"type":"boolean"},"addHoldReserver":{"type":"boolean"},"removeHoldReserver":{"type":"boolean"},"setPrice":{"type":"boolean"},"featureAttach":{"type":"boolean"},"featureDetach":{"type":"boolean"},"featureRotate":{"type":"boolean"}},"required":["burn","grantRole","grantRoleByParticipant","revokeRole","revokeRoleByParticipant","mint","pause","addComplianceModule","approve","forcedRecover","freezeAddress","recoverERC20","recoverTokens","redeem","mature","removeComplianceModule","setCap","setComplianceModuleParams","setYieldSchedule","topUpDenominationAsset","withdrawDenominationAsset","transfer","forcedTransfer","unpause","updateCollateral","freezePartial","unfreezePartial","claimIssue","claimRevoke","setMetadata","removeMetadata","setAumFeeBps","setAumFeeRecipient","approveTransfer","revokeTransferApproval","collectAumFee","freezeAumFeeRate","claimYield","setYieldTreasury","matureEarly","setMaturityTreasury","topUpMaturityTreasury","topUpYieldTreasury","topUpBondDenomination","setTransactionFeeRates","setTransactionFeeRecipient","freezeTransactionFeeRates","setExternalTransactionFees","setExternalTransactionFeeRecipient","setExternalTransactionFeeToken","freezeExternalTransactionFees","setTransactionFeeAccountingRates","setTransactionFeeAccountingRecipient","freezeTransactionFeeAccountingRates","reconcileFees","setFeeExemption","delegate","delegateBySig","permit","publishTrigger","disableTrigger","setConversionWindow","convert","forceConvert","addAuthorizedConverter","removeAuthorizedConverter","addHoldReserver","removeHoldReserver","setPrice","featureAttach","featureDetach","featureRotate"],"additionalProperties":false},"TokenRecordComplianceModuleConfig":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EthereumCompositeIdEncoded"},"complianceModule":{"type":"object","properties":{"typeId":{"$ref":"#/components/schemas/ComplianceTypeId"}},"required":["typeId"],"additionalProperties":false}},"required":["id","complianceModule"],"additionalProperties":false,"description":"Enabled compliance module for this token"},"ComplianceTypeId":{"type":"string","enum":["address-block-list","address-block-list-v2","capital-raise-limit","capped","capped-v2","claim-expiry","collateral","collateral-v2","country-allow-list","country-allow-list-v2","country-block-list","country-block-list-v2","identity-allow-list","identity-allow-list-v2","identity-block-list","identity-block-list-v2","identity-verification","identity-verification-v2","investor-count","investor-count-v2","identity-count","issuance-volume-limit","minimum-holding","time-lock","time-lock-v2","token-supply-limit","transfer-approval","transfer-approval-v2"],"description":"Compliance module typeId identifier"},"EthereumCompositeIdEncoded":{"type":"string","minLength":82,"maxLength":82,"pattern":"^0x[a-fA-F0-9]{80}$"},"AccessControl_1":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"addonModule":{"$ref":"#/components/schemas/AccessControlAccountArray"},"addonRegistryModule":{"$ref":"#/components/schemas/AccessControlAccountArray"},"admin":{"$ref":"#/components/schemas/AccessControlAccountArray"},"auditor":{"$ref":"#/components/schemas/AccessControlAccountArray"},"claimPolicyManager":{"$ref":"#/components/schemas/AccessControlAccountArray"},"claimIssuer":{"$ref":"#/components/schemas/AccessControlAccountArray"},"complianceManager":{"$ref":"#/components/schemas/AccessControlAccountArray"},"custodian":{"$ref":"#/components/schemas/AccessControlAccountArray"},"emergency":{"$ref":"#/components/schemas/AccessControlAccountArray"},"feedsManager":{"$ref":"#/components/schemas/AccessControlAccountArray"},"fundsManager":{"$ref":"#/components/schemas/AccessControlAccountArray"},"gasManager":{"$ref":"#/components/schemas/AccessControlAccountArray"},"governance":{"$ref":"#/components/schemas/AccessControlAccountArray"},"identityManager":{"$ref":"#/components/schemas/AccessControlAccountArray"},"identityRegistryModule":{"$ref":"#/components/schemas/AccessControlAccountArray"},"organisationIdentityManager":{"$ref":"#/components/schemas/AccessControlAccountArray"},"saleAdmin":{"$ref":"#/components/schemas/AccessControlAccountArray"},"supplyManagement":{"$ref":"#/components/schemas/AccessControlAccountArray"},"systemManager":{"$ref":"#/components/schemas/AccessControlAccountArray"},"systemModule":{"$ref":"#/components/schemas/AccessControlAccountArray"},"tokenFactoryModule":{"$ref":"#/components/schemas/AccessControlAccountArray"},"tokenFactoryRegistryModule":{"$ref":"#/components/schemas/AccessControlAccountArray"},"tokenManager":{"$ref":"#/components/schemas/AccessControlAccountArray"},"trustedIssuersMetaRegistryModule":{"$ref":"#/components/schemas/AccessControlAccountArray"},"addonManager":{"$ref":"#/components/schemas/AccessControlAccountArrayEncoded_2"},"tradingVenueOperator":{"$ref":"#/components/schemas/AccessControlAccountArrayEncoded_2"},"assetDesigner":{"$ref":"#/components/schemas/AccessControlAccountArrayEncoded_2"},"roleAdmins":{"$ref":"#/components/schemas/AccessControlRoleAdminsEncoded"}},"required":["id","addonModule","addonRegistryModule","admin","auditor","claimPolicyManager","claimIssuer","complianceManager","custodian","emergency","feedsManager","fundsManager","gasManager","governance","identityManager","identityRegistryModule","organisationIdentityManager","saleAdmin","supplyManagement","systemManager","systemModule","tokenFactoryModule","tokenFactoryRegistryModule","tokenManager","trustedIssuersMetaRegistryModule"],"additionalProperties":false},"AccessControlRoleAdminsEncoded":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/AccessControlRoleAdmin"}},{"type":"null"}]},"AccessControlRoleAdmin":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EthereumHexEncoded"},"role":{"$ref":"#/components/schemas/EthereumHexEncoded"},"roleFieldName":{"$ref":"#/components/schemas/AccessControlRole"},"adminRole":{"$ref":"#/components/schemas/EthereumHexEncoded"},"adminFieldName":{"$ref":"#/components/schemas/AccessControlRole"}},"required":["id","role","roleFieldName","adminRole","adminFieldName"],"additionalProperties":false},"AccessControlRole":{"type":"string","enum":["addonManager","addonModule","addonRegistryModule","admin","assetDesigner","auditor","claimPolicyManager","claimIssuer","complianceManager","custodian","emergency","feedsManager","fundsManager","gasManager","governance","identityManager","identityRegistryModule","organisationIdentityManager","saleAdmin","supplyManagement","systemManager","systemModule","tokenFactoryModule","tokenFactoryRegistryModule","tokenManager","tradingVenueOperator","trustedIssuersMetaRegistryModule"]},"AccessControlAccountArrayEncoded_2":{"anyOf":[{"$ref":"#/components/schemas/AccessControlAccountArray"},{"type":"null"}]},"AccessControlAccountArray":{"type":"array","items":{"$ref":"#/components/schemas/AccessControlAccount"}},"AccessControlAccount":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"isContract":{"type":"boolean"}},"required":["id","isContract"],"additionalProperties":false},"TokenRecordFund":{"type":"object","properties":{"managementFeeBps":{"$ref":"#/components/schemas/BigDecimal"}},"required":["managementFeeBps"],"additionalProperties":false},"TokenRecordBond":{"type":"object","properties":{"faceValue":{"$ref":"#/components/schemas/BigDecimal"},"faceValueExact":{"$ref":"#/components/schemas/AssetAmount"},"isMatured":{"type":"boolean"},"maturityDate":{"$ref":"#/components/schemas/TimestampEncoded"},"totalRedeemed":{"$ref":"#/components/schemas/BigDecimal"},"totalRedeemedExact":{"$ref":"#/components/schemas/AssetAmount"},"denominationAsset":{"$ref":"#/components/schemas/TokenRecordDenominationAsset"}},"required":["faceValue","faceValueExact","isMatured","maturityDate","totalRedeemed","totalRedeemedExact","denominationAsset"],"additionalProperties":false},"TokenRecordDenominationAsset":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"symbol":{"$ref":"#/components/schemas/AssetSymbol"},"decimals":{"$ref":"#/components/schemas/DecimalsEncoded"}},"required":["id","symbol","decimals"],"additionalProperties":false,"description":"Asset used to denominate bond face value or yield payments"},"DecimalsEncoded":{"anyOf":[{"type":"string"},{"type":"number"}]},"AssetSymbol":{"type":"string","minLength":1,"maxLength":24,"pattern":"^[A-Z0-9]+$","description":"Trading symbol for the asset","examples":["ETH","BTC","USDC","AAPL"]},"TokenRecordYield":{"type":"object","properties":{"schedule":{"anyOf":[{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"denominationAsset":{"$ref":"#/components/schemas/TokenRecordDenominationAsset"}},"required":["id","denominationAsset"],"additionalProperties":false},{"type":"null"}]}},"required":["schedule"],"additionalProperties":false},"TokenRecordRedeemable":{"type":"object","properties":{"redeemedAmount":{"$ref":"#/components/schemas/BigDecimal"},"redeemedAmountExact":{"$ref":"#/components/schemas/AssetAmount"}},"required":["redeemedAmount"],"additionalProperties":false},"TokenRecordAddressRef":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"}},"required":["id"],"additionalProperties":false,"description":"Reference to an account or contract by address"},"TokenRecordCapped":{"type":"object","properties":{"cap":{"$ref":"#/components/schemas/BigDecimal"},"capExact":{"$ref":"#/components/schemas/AssetAmount"}},"required":["cap","capExact"],"additionalProperties":false},"TokenRecordCollateral":{"type":"object","properties":{"collateral":{"anyOf":[{"$ref":"#/components/schemas/BigDecimal"},{"type":"null"}]},"collateralExact":{"$ref":"#/components/schemas/AssetAmount"},"expiryTimestamp":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]}},"required":["expiryTimestamp"],"additionalProperties":false},"TokenRecordIdentity":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"account":{"anyOf":[{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"contractName":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id"],"additionalProperties":false},{"type":"null"}]},"isContract":{"type":"boolean"},"registered":{"$ref":"#/components/schemas/TokenRecordIdentityRegistration"},"claims":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/IdentityClaim"}},{"type":"null"}]}},"required":["id","account","isContract"],"additionalProperties":false,"description":"On-chain identity bound to this token. `registered` is the registry state; `claims` are the claims currently indexed for the identity."},"IdentityClaim":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"signature":{"type":"string"},"revoked":{"type":"boolean"},"issuer":{"$ref":"#/components/schemas/ClaimIssuer"},"values":{"type":"array","items":{"$ref":"#/components/schemas/ClaimValue"}},"isTrusted":{"anyOf":[{"type":"boolean"},{"type":"null"}]}},"required":["id","name","signature","revoked","issuer","values"],"additionalProperties":false},"ClaimValue":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"],"additionalProperties":false},"ClaimIssuer":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"account":{"anyOf":[{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"}},"required":["id"],"additionalProperties":false},{"type":"null"}]}},"required":["id","account"],"additionalProperties":false},"TokenRecordIdentityRegistration":{"anyOf":[{"$ref":"#/components/schemas/TokenRecordIdentityRegistered"},{"$ref":"#/components/schemas/TokenRecordIdentityUnregistered"}]},"TokenRecordIdentityUnregistered":{"type":"boolean","enum":[false],"description":"`false` means the identity is not registered in this registry"},"TokenRecordIdentityRegistered":{"type":"object","properties":{"isRegistered":{"type":"boolean","enum":[true]},"country":{"anyOf":[{"$ref":"#/components/schemas/ISOCountryCode"},{"type":"null"}]}},"required":["isRegistered","country"],"additionalProperties":false,"description":"The identity is registered and ACTIVE; `country` is the stored ISO alpha-2 code when one is set"},"ISOCountryCode":{"type":"string"},"AssetExtensionArray":{"type":"array","items":{"$ref":"#/components/schemas/AssetExtension"}},"AssetExtension":{"type":"string","enum":["ACCESS_MANAGED","BOND","BURNABLE","CAPPED","COLLATERAL","CONFIGURABLE","CUSTODIAN","FUND","HISTORICAL_BALANCES","METADATA","PAUSABLE","REDEEMABLE","YIELD"],"description":"Token extension capability"},"FiatCurrency":{"type":"string","pattern":"^[A-Z]{3}$"},"AssetTypeOrSlug":{"anyOf":[{"$ref":"#/components/schemas/AssetType"},{"$ref":"#/components/schemas/AssetTypeTemplateSlug"}]},"AssetTypeTemplateSlug":{"type":"string","minLength":1,"description":"Custom asset type template slug"},"AssetType":{"type":"string","enum":["bond","equity","fund","stablecoin","deposit","real-estate","precious-metal"],"description":"Type of financial asset"},"TokenHoldReserverImpact":{"type":"object","properties":{"restingOrders":{"type":"integer"},"pendingDeliveries":{"type":"integer"}},"required":["restingOrders","pendingDeliveries"],"additionalProperties":false},"FeatureFieldDefinition":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["scalar"]},"id":{"type":"string","minLength":1,"maxLength":128},"label":{"type":"string","minLength":1,"maxLength":256},"scalarType":{"type":"string","enum":["string","integer","number","decimal","boolean","address","date","entry-id"]},"required":{"type":"boolean"},"accepts":{"type":"array","items":{"type":"string","enum":["account","erc20","dalp-asset","feature"]},"minItems":1,"maxItems":4},"createInputKey":{"type":"string","minLength":1,"maxLength":128},"minimum":{"type":"number"},"maximum":{"type":"number"},"positive":{"type":"boolean"},"nonzero":{"type":"boolean"},"choices":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}]}},"defaultValue":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}]},"fixedValue":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}]},"reference":{"type":"object","properties":{"targets":{"type":"array","items":{"type":"string","enum":["token","feature"]},"minItems":1,"maxItems":2},"requiresFeature":{"type":"string","minLength":1,"maxLength":128},"acceptsFrom":{"type":"array","items":{"type":"string","minLength":1,"maxLength":128},"minItems":1,"maxItems":2048},"allowSelf":{"type":"boolean"},"multipleInstances":{"type":"boolean"},"operation":{"type":"string","enum":["addAuthorizedConverter","bindClass"]},"reciprocal":{"type":"object","properties":{"featureId":{"type":"string","minLength":1,"maxLength":128},"fieldId":{"type":"string","minLength":1,"maxLength":128}},"required":["featureId","fieldId"],"additionalProperties":false},"linkedFeature":{"type":"object","properties":{"featureId":{"type":"string","minLength":1,"maxLength":128},"pointsBack":{"type":"object","properties":{"fieldId":{"type":"string","minLength":1,"maxLength":128},"message":{"type":"string","minLength":1,"maxLength":256}},"required":["fieldId","message"],"additionalProperties":false},"sameValue":{"type":"object","properties":{"fieldId":{"type":"string","minLength":1,"maxLength":128},"message":{"type":"string","minLength":1,"maxLength":256}},"required":["fieldId","message"],"additionalProperties":false}},"required":["featureId"],"additionalProperties":false}},"required":["targets","allowSelf","multipleInstances"],"additionalProperties":false},"entryGroup":{"type":"object","properties":{"fields":{"type":"array","items":{"type":"string","minLength":1,"maxLength":128},"minItems":1,"maxItems":8},"scope":{"type":"string","enum":["root","entry"]}},"required":["fields","scope"],"additionalProperties":false},"resolvedOnChain":{"type":"boolean"}},"required":["kind","id","label","scalarType","required"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["object"]},"id":{"type":"string","minLength":1,"maxLength":128},"label":{"type":"string","minLength":1,"maxLength":256},"fields":{"type":"array","items":{"$ref":"#/components/schemas/FeatureFieldDefinition"}}},"required":["kind","id","label","fields"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["repeatable"]},"id":{"type":"string","minLength":1,"maxLength":128},"label":{"type":"string","minLength":1,"maxLength":256},"minEntries":{"type":"integer","minimum":0},"maxEntries":{"type":"integer","minimum":1,"maximum":2048},"fields":{"type":"array","items":{"$ref":"#/components/schemas/FeatureFieldDefinition"}}},"required":["kind","id","label","minEntries","maxEntries","fields"],"additionalProperties":false}]},"CorporateActionElectionOption":{"type":"object","properties":{"key":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,63}$"},"label":{"type":"string","minLength":1},"settlementLeg":{"type":"string","enum":["primary","none"]}},"required":["key","label","settlementLeg"],"additionalProperties":false},"DividendKind":{"type":"string","enum":["regular","special"]},"CorporateActionElectionConfig":{"type":"object","properties":{"deadline":{"$ref":"#/components/schemas/TimestampEncoded"},"options":{"type":"array","items":{"$ref":"#/components/schemas/CorporateActionElectionOption"},"minItems":2},"defaultOption":{"type":"string","minLength":1,"pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,63}$"}},"required":["deadline","options","defaultOption"],"additionalProperties":false},"CorporateActionId":{"type":"string","minLength":1,"description":"Corporate Action identifier"},"FundingCoverage":{"type":"object","properties":{"available":{"$ref":"#/components/schemas/AssetAmount"},"outstanding":{"$ref":"#/components/schemas/AssetAmount"},"projected":{"$ref":"#/components/schemas/AssetAmount"},"coverageBps":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"status":{"$ref":"#/components/schemas/FundingCoverageStatus"},"measuredAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]}},"required":["available","outstanding","projected","coverageBps","status","measuredAt"],"additionalProperties":false},"FundingCoverageStatus":{"type":"string","enum":["covered","at-risk","underfunded"]},"FixedYieldRateBasis":{"type":"string","enum":["annual","per_period"],"description":"How `rate` is stated. `annual`: basis points per year (365 days). DALP converts it to the rate paid each full payment period, the annual rate times the interval over a 365-day year, rounded to the nearest whole basis point, and refuses it when that rounding moves the yield by more than 1%. A shorter final period pays that rate prorated to its length. `per_period`: basis points paid each payment interval, sent to the contract unchanged. Defaults to `per_period`."},"SingleResourceLinks":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false},"TransferApprovalAuthority":{"type":"object","properties":{"approvalAuthority":{"type":"boolean"}},"required":["approvalAuthority"],"additionalProperties":false},"AsyncAcceptedResult":{"type":"object","properties":{"transactionId":{"type":"string","minLength":1},"status":{"type":"string","minLength":1},"statusUrl":{"type":"string","minLength":1}},"required":["transactionId","status","statusUrl"],"additionalProperties":false,"description":"Accepted handle for a queued mutation. The write is queued, not finished. Poll `statusUrl`, also sent as `Location`, and honour `Preference-Applied`. Do not resubmit the original request unless the queue reports a retryable failure."},"TokenRoleSetMutationResponse":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenRoleSetOutput"},"meta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"type":"string","minLength":1}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string","minLength":1}},"required":["self"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"TokenRoleSetOutput":{"type":"object","properties":{"accounts":{"$ref":"#/components/schemas/TokenRoleSetAccounts"},"grant":{"type":"array","items":{"$ref":"#/components/schemas/AssetAccessControlRole_1"}},"revoke":{"type":"array","items":{"$ref":"#/components/schemas/AssetAccessControlRole_1"}}},"required":["accounts","grant","revoke"],"additionalProperties":false},"AssetAccessControlRole_1":{"type":"string","enum":["admin","custodian","emergency","fundsManager","governance","saleAdmin","supplyManagement"]},"TokenRoleSetAccounts":{"type":"array","items":{"$ref":"#/components/schemas/EvmAddress"}},"TokenRoleSetBody":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"participantId":{"type":"string","minLength":1},"address":{"$ref":"#/components/schemas/EvmAddress"},"grant":{"type":"array","items":{"$ref":"#/components/schemas/AssetAccessControlRole_1"}},"revoke":{"type":"array","items":{"$ref":"#/components/schemas/AssetAccessControlRole_1"}}},"required":["grant","revoke"],"additionalProperties":false},"WalletVerification_1":{"type":"object","properties":{"secretVerificationCode":{"type":"string","minLength":1,"description":"Code produced by the verification method named in `verificationType`.","examples":["482913"]},"verificationType":{"anyOf":[{"type":"string","enum":["OTP","PINCODE","SECRET_CODES","OIDC_MFA"]},{"type":"null"}]}},"required":["secretVerificationCode"],"additionalProperties":false},"MarkRefreshResult":{"type":"object","properties":{"outcome":{"$ref":"#/components/schemas/MarkRefreshOutcome"},"imageUrl":{"anyOf":[{"type":"string","description":"Path of the mark route that serves this subject, or null when the subject carries no address the platform can serve a mark for."},{"type":"null"}]},"imageProvenance":{"$ref":"#/components/schemas/ImageProvenance"}},"required":["outcome","imageUrl","imageProvenance"],"additionalProperties":false,"description":"The result of one mark refresh and the mark route that serves the subject after it.","examples":[{"outcome":"stored","imageUrl":"/api/v2/marks/accounts/1/0x71c7656ec7ab88b098defb751b7401b5f6d8976f","imageProvenance":"ens"}]},"ImageProvenance":{"type":"string","enum":["upload","ens","bundle","generated"],"description":"Where the mark at imageUrl comes from: an uploaded image, an ENS avatar, a bundled brand pack, or a generated disc."},"MarkRefreshOutcome":{"type":"string","enum":["stored","negative","deferred","blocked","unchanged"],"description":"What the refresh did: `stored` wrote a new avatar, `negative` recorded that the address carries none, `deferred` left the work to the next refresh because the hourly budget is spent, `blocked` left a suppressed mark alone, and `unchanged` kept what was already stored."},"IssuanceRunResponse":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/IssuanceRunView"}},"required":["data"],"additionalProperties":false,"examples":[{"data":{"runId":"01990a4e-7c2b-7d31-9a55-3f0b6c8e2a11","structure":{"id":"northwind-dual-class","revision":3,"instanceId":"01990a4e-7c2b-7d31-9a55-3f0b6c8e2a17"},"members":[{"memberId":"01990a4e-7c2b-7d31-9a55-3f0b6c8e2a12","role":"controlling","label":"Founder class","templateId":"att_northwind_founder_shares","tokenAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"},{"memberId":"01990a4e-7c2b-7d31-9a55-3f0b6c8e2a13","role":"economic","label":"Investor class","templateId":"att_northwind_investor_shares","tokenAddress":null}],"operations":[{"operationId":"01990a4e-7c2b-7d31-9a55-3f0b6c8e2a14","kind":"deploy-member","memberId":"01990a4e-7c2b-7d31-9a55-3f0b6c8e2a12","featureId":null,"featureOperationId":null,"dependsOn":[],"status":"confirmed"},{"operationId":"01990a4e-7c2b-7d31-9a55-3f0b6c8e2a15","kind":"deploy-member","memberId":"01990a4e-7c2b-7d31-9a55-3f0b6c8e2a13","featureId":null,"featureOperationId":null,"dependsOn":[],"status":"submitted"},{"operationId":"01990a4e-7c2b-7d31-9a55-3f0b6c8e2a16","kind":"claim-structure","memberId":"01990a4e-7c2b-7d31-9a55-3f0b6c8e2a12","featureId":null,"featureOperationId":null,"dependsOn":["01990a4e-7c2b-7d31-9a55-3f0b6c8e2a14","01990a4e-7c2b-7d31-9a55-3f0b6c8e2a15"],"status":"accepted"}],"nextOperationId":"01990a4e-7c2b-7d31-9a55-3f0b6c8e2a15"}}]},"IssuanceRunView":{"type":"object","properties":{"runId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"structure":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"revision":{"type":"integer"},"instanceId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"}},"required":["id","revision","instanceId"],"additionalProperties":false},{"type":"null"}]},"members":{"type":"array","items":{"type":"object","properties":{"memberId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"role":{"type":"string"},"label":{"type":"string"},"templateId":{"anyOf":[{"type":"string"},{"type":"null"}]},"tokenAddress":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}],"description":"The deployed or selected token address, or null while the member is not deployed."}},"required":["memberId","role","label","templateId","tokenAddress"],"additionalProperties":false}},"operations":{"type":"array","items":{"type":"object","properties":{"operationId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"kind":{"type":"string","enum":["deploy-member","deploy-feature","invoke-feature-operation","claim-structure"]},"memberId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"featureId":{"anyOf":[{"type":"string"},{"type":"null"}]},"featureOperationId":{"anyOf":[{"type":"string"},{"type":"null"}]},"dependsOn":{"type":"array","items":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"}},"status":{"type":"string","enum":["accepted","submitted","confirmed","failed"]}},"required":["operationId","kind","memberId","featureId","featureOperationId","dependsOn","status"],"additionalProperties":false}},"nextOperationId":{"anyOf":[{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},{"type":"null"}],"description":"The first operation that is not confirmed, or null when the run is complete."}},"required":["runId","structure","members","operations","nextOperationId"],"additionalProperties":false},"IssuanceRunAcceptBody":{"type":"object","properties":{"structure":{"type":"object","properties":{"id":{"type":"string","minLength":1},"expectedRevision":{"type":"integer","minimum":1}},"required":["id","expectedRevision"],"additionalProperties":false,"description":"The structure and the revision the caller reviewed. Omit for a standalone issuance. A newer revision refuses the run."},"members":{"type":"array","items":{"$ref":"#/components/schemas/IssuanceRunMemberInput"},"minItems":1,"maxItems":8}},"required":["members"],"additionalProperties":false},"IssuanceRunMemberInput":{"type":"object","properties":{"memberId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid","description":"Stable member identity from the structure or the review."},"source":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["create"]},"input":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":50},"symbol":{"$ref":"#/components/schemas/AssetSymbol"},"decimals":{"$ref":"#/components/schemas/DecimalsEncoded"},"countryCode":{"$ref":"#/components/schemas/ISOCountryCodeNumericEncoded"},"initialModulePairs":{"type":"array","items":{"type":"object","properties":{"typeId":{"$ref":"#/components/schemas/ComplianceTypeId"},"values":{},"module":{"$ref":"#/components/schemas/EvmAddress"},"scope":{"$ref":"#/components/schemas/ModuleScope_1"}},"required":["typeId","values","module"],"additionalProperties":false}},"factoryAddress":{"$ref":"#/components/schemas/EvmAddress"},"initialPermissions":{"type":"array","items":{"type":"object","properties":{"account":{"$ref":"#/components/schemas/EvmAddress"},"roles":{"type":"array","items":{"$ref":"#/components/schemas/AccessControlRole"},"minItems":1}},"required":["account","roles"],"additionalProperties":false}},"unpauseOnCreation":{"type":"boolean"},"templateId":{"type":"string","minLength":1},"type":{"type":"string","enum":["dalp-asset"]},"issuanceRun":{"type":"object","properties":{"runId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"},"memberId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"}},"required":["runId","memberId"],"additionalProperties":false},"complianceTemplateSelection":{"type":"string","minLength":1},"complianceTemplateExpectedTypeIds":{"type":"array","items":{"$ref":"#/components/schemas/ComplianceTypeId"}},"priceCurrency":{"$ref":"#/components/schemas/FiatCurrency"},"basePrice":{"$ref":"#/components/schemas/BigDecimal"},"metadataValues":{"type":"object","additionalProperties":{"anyOf":[{"type":"string"},{"type":"number"}]}},"featureConfigs":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/JsonValue"}}}},"required":["name","symbol","decimals","countryCode","initialModulePairs","initialPermissions","unpauseOnCreation","templateId","type","metadataValues","featureConfigs"],"additionalProperties":false,"description":"The reviewed create input for this new member. The server freezes it with the template's pinned values."},"expectedTemplateVersion":{"type":"integer","minimum":0,"description":"The version of the input's template the caller reviewed. A newer template version refuses the run."}},"required":["kind","input","expectedTemplateVersion"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["existing"]},"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"}},"required":["kind","tokenAddress"],"additionalProperties":false}]},"label":{"type":"string","minLength":1,"maxLength":256,"description":"Display label for a standalone member. A structure member takes its label from the structure."},"role":{"type":"string","description":"Role slug for a standalone member. A structure member takes its role from the structure."},"features":{"type":"array","items":{"type":"object","properties":{"configuration":{"type":"object","properties":{"definitionId":{"type":"string","minLength":1,"maxLength":128},"definitionRevision":{"type":"integer","minimum":1},"fields":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureConfigurationNode"}}},"required":["definitionId","definitionRevision","fields"],"additionalProperties":false},"policy":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureFieldPolicy"}},"instanceId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"},"address":{"$ref":"#/components/schemas/EvmAddress"}},"required":["configuration"],"additionalProperties":false},"description":"Declared feature configuration and links for a standalone member. A structure member's features are locked by the structure and must be omitted."}},"required":["memberId","source"],"additionalProperties":false},"FeatureFieldPolicy":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["scalar"]},"mode":{"type":"string","enum":["fixed"]},"value":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}]}},"required":["kind","mode","value"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["scalar"]},"mode":{"type":"string","enum":["issuer"]},"defaultValue":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}]},"required":{"type":"boolean"},"minimum":{"type":"number"},"maximum":{"type":"number"}},"required":["kind","mode"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["object"]},"fields":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureFieldPolicy"}}},"required":["kind","fields"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["repeatable"]},"minEntries":{"type":"integer","minimum":0},"maxEntries":{"type":"integer","minimum":1},"allowAdd":{"type":"boolean"},"allowRemove":{"type":"boolean"},"fields":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureFieldPolicy"}}},"required":["kind","minEntries","maxEntries","allowAdd","allowRemove","fields"],"additionalProperties":false}]},"FeatureConfigurationNode":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["scalar"]},"source":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["literal"]},"value":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}]}},"required":["kind","value"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["issuer-input"]},"inputId":{"type":"string","minLength":1,"maxLength":128},"value":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}]}},"required":["kind","inputId"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["member-token"]},"memberId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"},"chainId":{"type":"integer","minimum":1}},"required":["kind","memberId"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["member-feature"]},"memberId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"},"featureId":{"type":"string","minLength":1,"maxLength":128},"instanceId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"},"chainId":{"type":"integer","minimum":1}},"required":["kind","memberId","featureId"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["field"]},"address":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["field"]},"id":{"type":"string","minLength":1,"maxLength":128}},"required":["kind","id"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["entry"]},"id":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"}},"required":["kind","id"],"additionalProperties":false}]},"minItems":1,"maxItems":18},"memberId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"},"featureId":{"type":"string","minLength":1,"maxLength":128},"instanceId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"}},"required":["kind","address"],"additionalProperties":false}]}},"required":["kind","source"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["object"]},"fields":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureConfigurationNode"}}},"required":["kind","fields"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["repeatable"]},"entries":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"},"label":{"type":"string","minLength":1,"maxLength":256},"fields":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureConfigurationNode"}}},"required":["id","label","fields"],"additionalProperties":false}}},"required":["kind","entries"],"additionalProperties":false}]},"JsonValue":{"anyOf":[{"type":"null"},{"type":"boolean"},{"type":"number"},{"type":"string"},{"type":"array","items":{"$ref":"#/components/schemas/JsonValue"}},{"type":"object","additionalProperties":{"$ref":"#/components/schemas/JsonValue"}}]},"ModuleScope_1":{"type":"object","properties":{"senderInclusion":{"$ref":"#/components/schemas/ModuleScopeSenderInclusionEncoded"},"senderExemption":{"$ref":"#/components/schemas/ModuleScopeSenderExemptionEncoded"},"senderCountryInclusion":{"$ref":"#/components/schemas/ModuleScopeSenderCountryInclusionEncoded"},"senderCountryExclusion":{"$ref":"#/components/schemas/ModuleScopeSenderCountryExclusionEncoded"},"receiverInclusion":{"$ref":"#/components/schemas/ModuleScopeReceiverInclusionEncoded"},"receiverExemption":{"$ref":"#/components/schemas/ModuleScopeReceiverExemptionEncoded"},"receiverCountryInclusion":{"$ref":"#/components/schemas/ModuleScopeReceiverCountryInclusionEncoded"},"receiverCountryExclusion":{"$ref":"#/components/schemas/ModuleScopeReceiverCountryExclusionEncoded"},"executionMode":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"additionalProperties":false},"ModuleScopeReceiverCountryExclusionEncoded":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/ISOCountryCodeNumericEncoded"}},{"type":"null"}]},"ISOCountryCodeNumericEncoded":{"anyOf":[{"type":"string","pattern":"^\\d{1,3}$"},{"type":"number","multipleOf":1,"minimum":0,"maximum":999}]},"ModuleScopeReceiverCountryInclusionEncoded":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/ISOCountryCodeNumericEncoded"}},{"type":"null"}]},"ModuleScopeReceiverExemptionEncoded":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/ExpressionNodeWithGroups"}},{"type":"null"}]},"ExpressionNodeWithGroups":{"anyOf":[{"$ref":"#/components/schemas/ExpressionNode"},{"$ref":"#/components/schemas/ExpressionGroupOpen"},{"$ref":"#/components/schemas/ExpressionGroupClose"}]},"ExpressionGroupClose":{"type":"string","enum":[")"]},"ExpressionGroupOpen":{"type":"string","enum":["("]},"ExpressionNode":{"type":"object","properties":{"nodeType":{"$ref":"#/components/schemas/ExpressionType"},"value":{"$ref":"#/components/schemas/ApiBigIntEncoded"}},"required":["nodeType","value"],"additionalProperties":false},"ApiBigIntEncoded":{"anyOf":[{"type":"string","maxLength":1024,"pattern":"^(?:\\s*[-+]?\\d+\\s*|-?(?:\\d+|\\d*\\.\\d+)(?:e[+-]?\\d+)?)$"},{"type":"number","multipleOf":1}]},"ExpressionType":{"type":"number","enum":[0,1,2,3],"description":"Expression type identifier"},"ModuleScopeReceiverInclusionEncoded":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/ExpressionNodeWithGroups"}},{"type":"null"}]},"ModuleScopeSenderCountryExclusionEncoded":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/ISOCountryCodeNumericEncoded"}},{"type":"null"}]},"ModuleScopeSenderCountryInclusionEncoded":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/ISOCountryCodeNumericEncoded"}},{"type":"null"}]},"ModuleScopeSenderExemptionEncoded":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/ExpressionNodeWithGroups"}},{"type":"null"}]},"ModuleScopeSenderInclusionEncoded":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/ExpressionNodeWithGroups"}},{"type":"null"}]},"AccountsV2OutputSchema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/CantonAccountItem"}},"meta":{"$ref":"#/components/schemas/CollectionMeta"},"links":{"$ref":"#/components/schemas/CollectionLinks"}},"required":["data","meta","links"],"additionalProperties":false},"CollectionLinks":{"type":"object","properties":{"self":{"type":"string"},"first":{"type":"string"},"last":{"type":"string"},"prev":{"anyOf":[{"type":"string"},{"type":"null"}]},"next":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["self"],"additionalProperties":false},"CollectionMeta":{"type":"object","properties":{"total":{"type":"integer"}},"required":["total"],"additionalProperties":false},"CantonAccountItem":{"type":"object","properties":{"family":{"type":"string","enum":["canton"]},"networkIdentity":{"type":"string","minLength":1},"contractId":{"type":"string","minLength":1},"kind":{"type":"string","enum":["account","book"]},"instrumentAdmin":{"$ref":"#/components/schemas/CantonPartyId"},"instrumentId":{"type":"string","minLength":1},"ownerParty":{"anyOf":[{"$ref":"#/components/schemas/CantonPartyId"},{"type":"null"}]},"providerParty":{"anyOf":[{"$ref":"#/components/schemas/CantonPartyId"},{"type":"null"}]},"accountId":{"type":"string"},"fullyFrozen":{"type":"boolean"},"createdOffset":{"$ref":"#/components/schemas/LedgerOffset"},"updateId":{"type":"string","minLength":1},"recordTime":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["family","networkIdentity","contractId","kind","instrumentAdmin","instrumentId","ownerParty","providerParty","accountId","fullyFrozen","createdOffset","updateId","recordTime"],"additionalProperties":false},"LedgerOffset":{"type":"string","pattern":"^\\d+$","description":"Canton ledger update offset reference (decimal string)"},"CantonPartyId":{"type":"string","minLength":1,"description":"Canton external party identifier"},"CollectionPageQuery":{"type":"object","properties":{"offset":{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},"limit":{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"}},"additionalProperties":false},"CantonArmSettledResult":{"type":"object","properties":{"operationId":{"type":"string","minLength":1},"submissionId":{"type":"string","minLength":1},"ledgerSubmissionId":{"type":"string","minLength":1},"preparedHashHex":{"type":"string","minLength":1},"contractId":{"type":"string"}},"required":["operationId","submissionId","ledgerSubmissionId","preparedHashHex"],"additionalProperties":false},"CantonPartyId_23":{"type":"string","minLength":1,"description":"Admin party of a Canton instrument. Present, this write runs on the Canton instrument whose id the path segment names; absent, the segment is an EVM token contract address."},"InstrumentCapability":{"type":"string","enum":["share-capital","unit-capital"]},"CantonCollateralArmBody":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"instrumentAdmin":{"$ref":"#/components/schemas/CantonPartyId_22"},"cantonPartyId":{"$ref":"#/components/schemas/CantonPartyId"},"moduleContractId":{"type":"string","minLength":1},"collateralAmount":{"type":"string","pattern":"^(0|[1-9]\\d*)(\\.\\d{1,10})?$"},"collateralExpiresAt":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,6})?Z$"}},"required":["instrumentAdmin","cantonPartyId","moduleContractId","collateralAmount","collateralExpiresAt"],"additionalProperties":false},"CantonPartyId_22":{"type":"string","minLength":1,"description":"Admin party of the Canton instrument this write acts on. Present, the path segment is the instrument id under that admin and the route submits the operation as one of the organization's party wallets."},"BlocktimeEncoded":{"anyOf":[{"type":"string","description":"Epoch milliseconds as a digit string, or a readable datetime.","format":"timestamp"},{"type":"integer","minimum":0}]},"TokenPriceResponseResponse":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TokenPriceResponse"},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"TokenPriceResponse":{"type":"object","properties":{"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"price":{"type":"string"},"currency":{"$ref":"#/components/schemas/FiatCurrency_2"},"decimals":{"type":"number"},"source":{"type":"string","enum":["feed","claim"]},"sourceCurrency":{"$ref":"#/components/schemas/FiatCurrency_2"},"convertible":{"type":"boolean"},"targetCurrency":{"$ref":"#/components/schemas/FiatCurrency_2"},"reason":{"type":"string"},"message":{"type":"string"},"availableCurrencies":{"type":"array","items":{"$ref":"#/components/schemas/FiatCurrency_2"}},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded_3"},"conversionPath":{"type":"array","items":{"$ref":"#/components/schemas/TokenPriceConversionHop"}}},"required":["tokenAddress","price","currency","decimals","source","sourceCurrency","convertible","updatedAt","conversionPath"],"additionalProperties":false},"TokenPriceConversionHop":{"type":"object","properties":{"from":{"$ref":"#/components/schemas/FiatCurrency_2"},"to":{"$ref":"#/components/schemas/FiatCurrency_2"},"rate":{"type":"string"},"feedAddress":{"$ref":"#/components/schemas/EvmAddress"},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded_3"},"inverse":{"type":"boolean"}},"required":["from","to","rate","feedAddress","updatedAt","inverse"],"additionalProperties":false},"TimestampEncoded_3":{"anyOf":[{"type":"string"},{"type":"number","minimum":0}]},"FiatCurrency_2":{"type":"string","enum":["AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BMD","BND","BOB","BRL","BSD","BTN","BWP","BYN","BZD","CAD","CDF","CHF","CLP","CNY","COP","CRC","CUC","CUP","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","FKP","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MRU","MUR","MVR","MWK","MXN","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SHP","SLE","SOS","SRD","SSP","STN","SVC","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","UYU","UYW","UZS","VED","VES","VND","VUV","WST","XAF","XCD","XOF","XPF","YER","ZAR","ZMW","ZWG"]},"CantonHoldingUnlockArmBody":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"instrumentAdmin":{"$ref":"#/components/schemas/CantonPartyId"},"cantonPartyId":{"$ref":"#/components/schemas/CantonPartyId"},"rulesContractId":{"type":"string","minLength":1},"accountId":{"type":"string"},"holdingContractId":{"type":"string","minLength":1}},"required":["instrumentAdmin","cantonPartyId","rulesContractId","holdingContractId"],"additionalProperties":false,"description":"Canton arm of this folded write. The path segment is the instrument id."},"CantonFamilyProbeBody":{"type":"object","properties":{"instrumentAdmin":{"$ref":"#/components/schemas/CantonPartyId"}},"required":["instrumentAdmin"],"additionalProperties":false,"description":"A Canton intent on a route that serves no Canton arm. The route refuses it with the family it does serve."},"TokenAaRoleMigrationPendingItemCollectionResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/TokenAaRoleMigrationPendingItem"}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0},"facets":{"type":"object","additionalProperties":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"count":{"type":"integer","minimum":0}},"required":["value","count"],"additionalProperties":false}}}},"required":["total"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"},"first":{"type":"string"},"prev":{"anyOf":[{"type":"string"},{"type":"null"}]},"next":{"anyOf":[{"type":"string"},{"type":"null"}]},"last":{"type":"string"}},"required":["self","first","prev","next","last"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"TokenAaRoleMigrationPendingItem":{"type":"object","properties":{"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"tokenName":{"type":"string"},"tokenSymbol":{"type":"string"},"accessManagerAddress":{"$ref":"#/components/schemas/EvmAddress"},"driftingParticipantCount":{"type":"integer","minimum":0},"adminAddresses":{"type":"array","items":{"$ref":"#/components/schemas/EvmAddress"}}},"required":["tokenAddress","tokenName","tokenSymbol","accessManagerAddress","driftingParticipantCount","adminAddresses"],"additionalProperties":false},"TransfersV2OutputSchema":{"type":"object","properties":{"data":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/EvmTransferV2Entry"},{"$ref":"#/components/schemas/CantonTransferItem"}],"discriminator":{"propertyName":"family","mapping":{"evm":"#/components/schemas/EvmTransferV2Entry","canton":"#/components/schemas/CantonTransferItem"}}}},"meta":{"$ref":"#/components/schemas/CollectionMeta"},"links":{"$ref":"#/components/schemas/CollectionLinks"}},"required":["data","meta","links"],"additionalProperties":false},"CantonTransferItem":{"type":"object","properties":{"family":{"type":"string","enum":["canton"]},"networkIdentity":{"type":"string","minLength":1},"contractId":{"type":"string","minLength":1},"instrumentAdmin":{"$ref":"#/components/schemas/CantonPartyId"},"instrumentId":{"type":"string","minLength":1},"senderParty":{"$ref":"#/components/schemas/CantonPartyId"},"receiverParty":{"$ref":"#/components/schemas/CantonPartyId"},"amount":{"type":"string","pattern":"^-?\\d+(\\.\\d+)?$"},"allowanceSpender":{"anyOf":[{"$ref":"#/components/schemas/CantonPartyId"},{"type":"null"}]},"requestedAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"expiresAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"lockExpiresAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"assessedFees":{"anyOf":[{},{"type":"null"}]},"createdOffset":{"$ref":"#/components/schemas/LedgerOffset"},"updateId":{"type":"string","minLength":1},"recordTime":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["family","networkIdentity","contractId","instrumentAdmin","instrumentId","senderParty","receiverParty","amount","allowanceSpender","requestedAt","expiresAt","lockExpiresAt","assessedFees","createdOffset","updateId","recordTime"],"additionalProperties":false},"EvmTransferV2Entry":{"type":"object","properties":{"family":{"type":"string","enum":["evm"]},"id":{"type":"string"},"token":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"}},"required":["id"],"additionalProperties":false},"fromIdentity":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"}},"required":["id"],"additionalProperties":false},"toIdentity":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"}},"required":["id"],"additionalProperties":false},"value":{"$ref":"#/components/schemas/AssetAmount"},"approverIdentity":{"$ref":"#/components/schemas/EvmAddress"},"expiry":{"$ref":"#/components/schemas/TimestampEncoded"},"status":{"type":"string","enum":["pending","consumed","revoked"]},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["family","id","token","fromIdentity","toIdentity","value","approverIdentity","expiry","status","createdAt","updatedAt"],"additionalProperties":false},"CantonTransferApprovalArmBody":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"instrumentAdmin":{"$ref":"#/components/schemas/CantonPartyId_22"},"cantonPartyId":{"$ref":"#/components/schemas/CantonPartyId"},"moduleContractId":{"type":"string","minLength":1},"senderParty":{"$ref":"#/components/schemas/CantonPartyId"},"receiverParty":{"$ref":"#/components/schemas/CantonPartyId"},"amount":{"type":"string","pattern":"^(?!0(\\.0+)?$)(0|[1-9]\\d*)(\\.\\d{1,10})?$"}},"required":["instrumentAdmin","cantonPartyId","moduleContractId","senderParty","receiverParty","amount"],"additionalProperties":false},"TransferApprovalCollectionResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/TransferApproval"}},"meta":{"type":"object","properties":{"total":{"type":"integer","minimum":0},"facets":{"type":"object","additionalProperties":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"count":{"type":"integer","minimum":0}},"required":["value","count"],"additionalProperties":false}}}},"required":["total"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"},"first":{"type":"string"},"prev":{"anyOf":[{"type":"string"},{"type":"null"}]},"next":{"anyOf":[{"type":"string"},{"type":"null"}]},"last":{"type":"string"}},"required":["self","first","prev","next","last"],"additionalProperties":false}},"required":["data","meta","links"],"additionalProperties":false},"TransferApproval":{"type":"object","properties":{"id":{"type":"string"},"token":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"}},"required":["id"],"additionalProperties":false},"fromIdentity":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"}},"required":["id"],"additionalProperties":false},"toIdentity":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"}},"required":["id"],"additionalProperties":false},"value":{"type":"string","pattern":"^[0-9]+$"},"approverIdentity":{"$ref":"#/components/schemas/EvmAddress"},"expiry":{"$ref":"#/components/schemas/TimestampEncoded_3"},"status":{"type":"string","enum":["pending","consumed","revoked"]},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded_3"},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded_3"}},"required":["id","token","fromIdentity","toIdentity","value","approverIdentity","expiry","status","createdAt","updatedAt"],"additionalProperties":false},"TokenTransferSimulateOutputSchema":{"type":"object","properties":{"data":{"type":"object","properties":{"verdict":{"type":"string","enum":["will-clear","will-revert"]},"blockers":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","minLength":1},"moduleTypeId":{"type":"string","enum":["address-block-list","address-block-list-v2","capital-raise-limit","capped","capped-v2","claim-expiry","collateral","collateral-v2","country-allow-list","country-allow-list-v2","country-block-list","country-block-list-v2","identity-allow-list","identity-allow-list-v2","identity-block-list","identity-block-list-v2","identity-count","identity-verification","identity-verification-v2","investor-count","investor-count-v2","issuance-volume-limit","minimum-holding","time-lock","time-lock-v2","token-supply-limit","transfer-approval","transfer-approval-v2"]},"moduleInstance":{"$ref":"#/components/schemas/EvmAddress"},"party":{"type":"string","enum":["sender","recipient"]},"reason":{"type":"string","enum":["identity-not-registered","identity-not-verified","module-blocked","stale-price"]},"remediationClass":{"type":"string","enum":["self-serve","operator","structural"]},"remediation":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["issue-claim"]},"topics":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["kind","topics"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["operator-action"]},"action":{"type":"string","enum":["unfreeze","remove-blocklist","register-identity"]}},"required":["kind","action"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["approve-transfer"]},"authorities":{"type":"array","items":{"$ref":"#/components/schemas/EvmAddress"}}},"required":["kind","authorities"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["none"]}},"required":["kind"],"additionalProperties":false}]},"topics":{"type":"array","items":{"type":"string"}}},"required":["code","moduleTypeId","moduleInstance","party","reason","remediationClass","remediation"],"additionalProperties":false}}},"required":["verdict","blockers"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string","minLength":1}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"CantonTransferAcceptanceArmBody":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"instrumentAdmin":{"$ref":"#/components/schemas/CantonPartyId"},"cantonPartyId":{"$ref":"#/components/schemas/CantonPartyId"},"transferInstructionContractId":{"type":"string","minLength":1}},"required":["instrumentAdmin","cantonPartyId","transferInstructionContractId"],"additionalProperties":false,"description":"Canton arm of this folded write. The path segment is the instrument id."},"CantonAllowanceSpendArmBody":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"instrumentAdmin":{"$ref":"#/components/schemas/CantonPartyId"},"cantonPartyId":{"$ref":"#/components/schemas/CantonPartyId"},"rulesContractId":{"type":"string","minLength":1},"allowanceContractId":{"type":"string","minLength":1},"allowanceBookContractId":{"type":"string","minLength":1},"ownerParty":{"$ref":"#/components/schemas/CantonPartyId"},"ownerAccountId":{"type":"string"},"receiverParty":{"$ref":"#/components/schemas/CantonPartyId"},"receiverAccountId":{"type":"string"},"amount":{"type":"string","pattern":"^-?(0|[1-9]\\d*)(\\.\\d{1,10})?$"},"executeBefore":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,6})?Z$"},"inputHoldingContractIds":{"type":"array","items":{"type":"string","minLength":1},"minItems":1},"ownerAccountStateBookContractId":{"type":"string","minLength":1},"complianceRegistrationContractId":{"type":"string","minLength":1}},"required":["instrumentAdmin","cantonPartyId","rulesContractId","allowanceContractId","allowanceBookContractId","ownerParty","receiverParty","amount","executeBefore","inputHoldingContractIds"],"additionalProperties":false,"description":"Canton arm of this folded write. The path segment is the instrument id."},"CantonTransferArmBody":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"instrumentAdmin":{"$ref":"#/components/schemas/CantonPartyId"},"cantonPartyId":{"$ref":"#/components/schemas/CantonPartyId"},"transferFactoryContractId":{"type":"string","minLength":1},"senderAccountId":{"type":"string"},"receiverParty":{"$ref":"#/components/schemas/CantonPartyId"},"receiverAccountId":{"type":"string"},"amount":{"type":"string","pattern":"^-?(0|[1-9]\\d*)(\\.\\d{1,10})?$"},"executeBefore":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,6})?Z$"},"inputHoldingContractIds":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["instrumentAdmin","cantonPartyId","transferFactoryContractId","receiverParty","amount","executeBefore","inputHoldingContractIds"],"additionalProperties":false,"description":"Canton arm of this folded write. The path segment is the instrument id."},"CantonBurnArmBody":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"instrumentAdmin":{"$ref":"#/components/schemas/CantonPartyId"},"cantonPartyId":{"$ref":"#/components/schemas/CantonPartyId"},"rulesContractId":{"type":"string","minLength":1},"accountId":{"type":"string"},"holdingContractId":{"type":"string","minLength":1},"reason":{"type":"string"}},"required":["instrumentAdmin","cantonPartyId","rulesContractId","holdingContractId"],"additionalProperties":false,"description":"Canton arm of this folded write. The path segment is the instrument id."},"CantonMintArmBody":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"instrumentAdmin":{"$ref":"#/components/schemas/CantonPartyId"},"cantonPartyId":{"$ref":"#/components/schemas/CantonPartyId"},"rulesContractId":{"type":"string","minLength":1},"accountId":{"type":"string"},"amount":{"type":"string","pattern":"^-?(0|[1-9]\\d*)(\\.\\d{1,10})?$"},"reason":{"type":"string"}},"required":["instrumentAdmin","cantonPartyId","rulesContractId","amount"],"additionalProperties":false,"description":"Canton arm of this folded write. The path segment is the instrument id."},"RealEstatePropertyUse":{"type":"string","enum":["RESIDENTIAL","COMMERCIAL","INDUSTRIAL","AGRICULTURAL","INSTITUTIONAL","MIXED_USE","RETAIL","OFFICE","HOSPITALITY","HEALTHCARE","EDUCATIONAL","RELIGIOUS","RECREATIONAL","CULTURAL","STORAGE","PARKING","TRANSPORTATION","UTILITIES","GOVERNMENTAL","PUBLIC_SPACE","DEVELOPMENT","VACANT","UNAVAILABLE","PUBLIC_SERVICES","PUBLIC_FACILITIES_TRANSPORTATION","ANCIENT_URBAN_REGION","VACANT_LAND","PLANS_AND_SYMBOLS","MANSION_USE","OTHER"],"description":"Usage classification of property"},"RealEstatePropertyType":{"type":"string","enum":["EMPTY_LAND","AGRICULTURAL_LAND","RESIDENTIAL_LAND","COMMERCIAL_LAND","INDUSTRIAL_LAND","SINGLE_FAMILY_HOUSE","VILLA","TOWNHOUSE","APARTMENT","CONDOMINIUM","OFFICE_BUILDING","RETAIL_SPACE","SHOPPING_MALL","WAREHOUSE","INDUSTRIAL_BUILDING","HOTEL","RESORT","HOSPITAL","CLINIC","SCHOOL","UNIVERSITY","SPORTS_FACILITY","PARKING_FACILITY","MIXED_USE_BUILDING","PLACE_OF_WORSHIP","GOVERNMENT_BUILDING","UNDER_CONSTRUCTION","OTHER"],"description":"Type of real estate property"},"RealEstateNumberEncoded":{"type":"string"},"FundCategory":{"type":"string","enum":["ACTIVIST","COMMODITY_TRADING","CONVERTIBLE_ARBITRAGE","CREDIT","CURRENCY_FX","DISTRESSED_DEBT","EMERGING_MARKETS","EQUITY_HEDGE","EVENT_DRIVEN","FIXED_INCOME_ARBITRAGE","FUND_OF_FUNDS","GLOBAL_MACRO","HIGH_FREQUENCY_TRADING","MANAGED_FUTURES_CTA","MARKET_NEUTRAL","MERGER_ARBITRAGE","MULTI_STRATEGY","PRIVATE_EQUITY","VENTURE_CAPITAL"],"description":"Category of investment fund"},"FundClass":{"type":"string","enum":["ABSOLUTE_RETURN","CORE_BLEND","DIVERSIFIED","EARLY_STAGE","FACTOR_BASED","GROWTH_FOCUSED","INCOME_FOCUSED","LARGE_CAP","LONG_EQUITY","LONG_SHORT_EQUITY","MARKET_NEUTRAL","MID_CAP","MOMENTUM_ORIENTED","OPPORTUNISTIC","PRE_SERIES_B","QUANTITATIVE_ALGORITHMIC","REGIONAL","SECTOR_SPECIFIC","SEED_PRE_SEED","SERIES_B_LATE_STAGE","SHORT_EQUITY","SMALL_CAP","TACTICAL_ASSET_ALLOCATION","VALUE_FOCUSED"],"description":"Class of investment fund"},"EquityCategory":{"type":"string","enum":["COMMON_EQUITY","VOTING_COMMON_STOCK","NON_VOTING_COMMON_STOCK","CUMULATIVE_PREFERRED_STOCK","NON_CUMULATIVE_PREFERRED_STOCK","CONVERTIBLE_PREFERRED_STOCK","REDEEMABLE_PREFERRED_STOCK","LARGE_CAP_EQUITY","MID_CAP_EQUITY","SMALL_CAP_EQUITY","MICRO_CAP_EQUITY","DOMESTIC_EQUITY","INTERNATIONAL_EQUITY","GLOBAL_EQUITY","EMERGING_MARKET_EQUITY","FRONTIER_MARKET_EQUITY","TECHNOLOGY","FINANCIALS","HEALTHCARE","ENERGY","CONSUMER_STAPLES","CONSUMER_DISCRETIONARY","INDUSTRIALS","MATERIALS","UTILITIES","COMMUNICATION_SERVICES","REAL_ESTATE","GROWTH_EQUITY","VALUE_EQUITY","BLEND_EQUITY","INCOME_EQUITY","VENTURE_CAPITAL","GROWTH_CAPITAL","LEVERAGED_BUYOUTS","MEZZANINE_FINANCING","DISTRESSED_EQUITY","RESTRICTED_STOCK","ESOP_SHARES","TRACKING_STOCKS","DUAL_CLASS_SHARES"],"description":"Category of equity"},"EquityClass":{"type":"string","enum":["COMMON_EQUITY","PREFERRED_EQUITY","MARKET_CAPITALIZATION_EQUITY","GEOGRAPHIC_EQUITY","SECTOR_INDUSTRY_EQUITY","INVESTMENT_STYLE_EQUITY","INVESTMENT_STAGE_PRIVATE_EQUITY","SPECIAL_CLASSES_EQUITY"],"description":"Class of equity"},"TokenCreateLogoUploadUrlBody":{"type":"object","properties":{"fileName":{"type":"string","minLength":1,"maxLength":255,"description":"Original file name, including extension. 1 to 255 characters.","examples":["northwind-logo.png"]},"fileSize":{"type":"integer"},"mimeType":{"type":"string","enum":["image/png","image/jpeg","image/webp"],"description":"Brand logo must be a PNG, JPEG or WebP image","examples":["image/png"]}},"required":["fileName","fileSize","mimeType"],"additionalProperties":false,"description":"Brand logo to upload before the token exists. It must be a PNG, JPEG or WebP image of at most 5242880 bytes. PUT the bytes to the returned URL, then send the returned object key as `logo.objectKey` on the create call.","examples":[{"fileName":"northwind-logo.png","fileSize":24576,"mimeType":"image/png"}]},"TokenDocumentsReadOutputSchema":{"type":"object","properties":{"data":{"type":"object","properties":{"downloadUrl":{"type":"string"},"expiresAt":{"type":"string"}},"required":["downloadUrl","expiresAt"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleLinks"}},"required":["data","links"],"additionalProperties":false},"SingleLinks":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false},"TokenHttpEmptyPart":{"type":"object","additionalProperties":true},"TokenDocumentsV2ListOutputSchema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"token":{"$ref":"#/components/schemas/EvmAddress"},"documentType":{"$ref":"#/components/schemas/TokenDocumentType"},"visibility":{"$ref":"#/components/schemas/TokenDocumentVisibility"},"groupId":{"type":"string"},"versionNumber":{"type":"integer","minimum":0},"isLatest":{"type":"boolean"},"fileName":{"type":"string","minLength":1},"fileSize":{"type":"integer","minimum":0},"mimeType":{"type":"string","enum":["application/pdf","image/jpeg","image/png","image/webp","application/vnd.openxmlformats-officedocument.wordprocessingml.document","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","text/csv"]},"fileHash":{"type":"string","minLength":1},"title":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"thumbnailKey":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"uploadedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["id","token","documentType","visibility","groupId","versionNumber","isLatest","fileName","fileSize","mimeType","fileHash","title","description","thumbnailKey","uploadedAt"],"additionalProperties":false}},"meta":{"$ref":"#/components/schemas/CollectionMeta"},"links":{"$ref":"#/components/schemas/CollectionLinks"}},"required":["data","meta","links"],"additionalProperties":false},"TokenDocumentVisibility":{"type":"string","enum":["public","holders","restricted"],"description":"Visibility level of a token document"},"TokenDocumentType":{"type":"string","enum":["prospectus","term_sheet","legal_opinion","regulatory_filing","compliance_report","annual_report","financial_statement","credit_rating","covenant_agreement","shareholder_agreement","fund_fact_sheet","subscription_agreement","nav_report","reserve_audit","attestation_report","reserve_composition","certificate","interest_schedule","property_deed","survey_report","appraisal","environmental_assessment","title_insurance","assay_certificate","storage_receipt","chain_of_custody","insurance_certificate","brand_logo","other"],"description":"Type of token document"},"TokenRecipientEligibilityResponseSchema":{"type":"object","properties":{"data":{"type":"object","properties":{"address":{"$ref":"#/components/schemas/EvmAddress"},"action":{"type":"string","enum":["mint","transfer","burn"]},"eligible":{"type":"boolean"},"reason":{"anyOf":[{"$ref":"#/components/schemas/RecipientIneligibleReason"},{"type":"null"}]}},"required":["address","action","eligible","reason"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleLinks"}},"required":["data","links"],"additionalProperties":false},"RecipientIneligibleReason":{"type":"string","enum":["identity-not-registered","no-identity-registry"],"description":"Why the address is not eligible: its identity has no active registration in the token's identity registries, or the token has no identity registry to register in."},"InheritedGlobalControlsV2OutputSchema":{"type":"object","properties":{"data":{"type":"object","properties":{"family":{"type":"string","enum":["evm","canton"]},"controls":{"type":"array","items":{"type":"string","minLength":1}}},"required":["family","controls"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleLinks"}},"required":["data","links"],"additionalProperties":false},"TokenComplianceV2OutputSchema":{"type":"object","properties":{"data":{"type":"object","properties":{"family":{"type":"string","enum":["evm","canton"]},"modules":{"type":"array","items":{"type":"string","minLength":1}}},"required":["family","modules"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleLinks"}},"required":["data","links"],"additionalProperties":false},"StatsYieldDistributionV2OutputSchema":{"type":"object","properties":{"data":{"type":"object","properties":{"family":{"type":"string","enum":["evm"]},"periods":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"timestamp":{"$ref":"#/components/schemas/TimestampEncoded"},"totalYield":{"$ref":"#/components/schemas/BigDecimal"},"claimed":{"$ref":"#/components/schemas/BigDecimal"},"unclaimed":{"$ref":"#/components/schemas/BigDecimal"}},"required":["id","timestamp","totalYield","claimed","unclaimed"],"additionalProperties":false}},"totalYield":{"$ref":"#/components/schemas/BigDecimal"},"totalClaimed":{"$ref":"#/components/schemas/BigDecimal"},"totalUnclaimed":{"$ref":"#/components/schemas/BigDecimal"}},"required":["family","periods","totalYield","totalClaimed","totalUnclaimed"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleLinks"}},"required":["data","links"],"additionalProperties":false},"StatsYieldCoverageV2OutputSchema":{"type":"object","properties":{"data":{"type":"object","properties":{"family":{"type":"string","enum":["evm"]},"yieldCoverage":{"type":"number"},"hasYieldSchedule":{"type":"boolean"},"isRunning":{"type":"boolean"},"totalUnclaimedYield":{"$ref":"#/components/schemas/BigDecimal"},"denominationAssetBalance":{"$ref":"#/components/schemas/BigDecimal"},"denominationAssetTreasuryAllowance":{"$ref":"#/components/schemas/BigDecimal"},"allowanceCoveredPercentage":{"$ref":"#/components/schemas/BigDecimal"},"requiredAllowance":{"$ref":"#/components/schemas/BigDecimal"},"treasuryIsContract":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"treasuryAddress":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"scheduleAddress":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"scheduleAbsenceReason":{"anyOf":[{"type":"string","enum":["token-not-indexed","no-schedule"]},{"type":"null"}]},"funding":{"anyOf":[{"$ref":"#/components/schemas/FundingCoverage"},{"type":"null"}]}},"required":["family","yieldCoverage","hasYieldSchedule","isRunning","totalUnclaimedYield","denominationAssetBalance","denominationAssetTreasuryAllowance","allowanceCoveredPercentage","requiredAllowance","treasuryIsContract","treasuryAddress","scheduleAddress","scheduleAbsenceReason","funding"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleLinks"}},"required":["data","links"],"additionalProperties":false},"StatsWalletDistributionV2OutputSchema":{"type":"object","properties":{"data":{"type":"object","properties":{"family":{"type":"string","enum":["evm"]},"buckets":{"type":"array","items":{"type":"object","properties":{"range":{"type":"string"},"count":{"type":"number"}},"required":["range","count"],"additionalProperties":false}},"totalHolders":{"type":"number"}},"required":["family","buckets","totalHolders"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleLinks"}},"required":["data","links"],"additionalProperties":false},"StatsVolumeV2OutputSchema":{"type":"object","properties":{"data":{"type":"object","properties":{"family":{"type":"string","enum":["evm"]},"volumeHistory":{"type":"array","items":{"type":"object","properties":{"timestamp":{"$ref":"#/components/schemas/TimestampEncoded"},"totalVolume":{"type":"string"}},"required":["timestamp","totalVolume"],"additionalProperties":false}}},"required":["family","volumeHistory"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleLinks"}},"required":["data","links"],"additionalProperties":false},"StatsTotalSupplyV2OutputSchema":{"type":"object","properties":{"data":{"type":"object","properties":{"family":{"type":"string","enum":["evm"]},"totalSupplyHistory":{"type":"array","items":{"type":"object","properties":{"timestamp":{"$ref":"#/components/schemas/TimestampEncoded"},"totalSupply":{"type":"string"}},"required":["timestamp","totalSupply"],"additionalProperties":false}}},"required":["family","totalSupplyHistory"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleLinks"}},"required":["data","links"],"additionalProperties":false},"StatsSupplyChangesV2OutputSchema":{"type":"object","properties":{"data":{"type":"object","properties":{"family":{"type":"string","enum":["evm"]},"supplyChangesHistory":{"type":"array","items":{"type":"object","properties":{"timestamp":{"$ref":"#/components/schemas/TimestampEncoded"},"totalMinted":{"type":"string"},"totalBurned":{"type":"string"}},"required":["timestamp","totalMinted","totalBurned"],"additionalProperties":false}}},"required":["family","supplyChangesHistory"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleLinks"}},"required":["data","links"],"additionalProperties":false},"StatsCollateralRatioV2OutputSchema":{"type":"object","properties":{"data":{"type":"object","properties":{"buckets":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"value":{"$ref":"#/components/schemas/BigDecimal"}},"required":["name","value"],"additionalProperties":false}},"totalCollateral":{"$ref":"#/components/schemas/BigDecimal"},"requiredCollateral":{"$ref":"#/components/schemas/BigDecimal"},"mintableSupply":{"$ref":"#/components/schemas/BigDecimal"},"collateralizationPercentage":{"type":"number"},"configuredCollateralRatioBps":{"type":"number"},"parity_confidence":{"type":"string","enum":["high","degraded"]},"utilizationPercentage":{"type":"number"}},"required":["buckets","totalCollateral","requiredCollateral","mintableSupply","collateralizationPercentage","configuredCollateralRatioBps","parity_confidence","utilizationPercentage"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleLinks"}},"required":["data","links"],"additionalProperties":false},"StatsBondStatusOutputSchema":{"type":"object","properties":{"data":{"type":"object","properties":{"denominationAssetBalanceAvailable":{"$ref":"#/components/schemas/BigDecimal"},"denominationAssetBalanceRequired":{"$ref":"#/components/schemas/BigDecimal"},"coveredPercentage":{"$ref":"#/components/schemas/BigDecimal"},"denominationAssetTreasuryAllowance":{"$ref":"#/components/schemas/BigDecimal"},"allowanceCoveredPercentage":{"$ref":"#/components/schemas/BigDecimal"},"treasuryIsContract":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"treasuryAddress":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"featureAddress":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"solvencyKnown":{"type":"boolean"}},"required":["denominationAssetBalanceAvailable","denominationAssetBalanceRequired","coveredPercentage","denominationAssetTreasuryAllowance","allowanceCoveredPercentage","treasuryIsContract","treasuryAddress","featureAddress","solvencyKnown"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleLinks"}},"required":["data","links"],"additionalProperties":false},"TokenMaturityRedemptionEventsV2OutputSchema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"holder":{"$ref":"#/components/schemas/EvmAddress"},"tokenAmount":{"type":"string"},"denominationAmount":{"type":"string"},"transactionHash":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"required":["holder","tokenAmount","denominationAmount","transactionHash"],"additionalProperties":false}},"meta":{"$ref":"#/components/schemas/CollectionMeta"},"links":{"$ref":"#/components/schemas/CollectionLinks"}},"required":["data","meta","links"],"additionalProperties":false},"TokenEventsV2OutputSchema":{"type":"object","properties":{"data":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"family":{"type":"string","enum":["evm"]},"id":{"type":"string"},"eventName":{"type":"string"},"txIndex":{"type":"string"},"blockNumber":{"type":"string"},"blockTimestamp":{"$ref":"#/components/schemas/TimestampEncoded"},"transactionHash":{"$ref":"#/components/schemas/EthereumHashEncoded"},"emitter":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"}},"required":["id"],"additionalProperties":false},"sender":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"}},"required":["id"],"additionalProperties":false},"metaTxSigner":{"anyOf":[{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"}},"required":["id"],"additionalProperties":false},{"type":"null"}]},"displaySender":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"}},"required":["id"],"additionalProperties":false},"relayerKind":{"anyOf":[{"type":"string"},{"type":"null"}]},"relayer":{"anyOf":[{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"}},"required":["id"],"additionalProperties":false},{"type":"null"}]},"userOpHash":{"anyOf":[{"$ref":"#/components/schemas/EthereumHashEncoded"},{"type":"null"}]},"paymaster":{"anyOf":[{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"}},"required":["id"],"additionalProperties":false},{"type":"null"}]},"actualGasCost":{"anyOf":[{"type":"string"},{"type":"null"}]},"involved":{"type":"array","items":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"}},"required":["id"],"additionalProperties":false}},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"value":{"type":"string"}},"required":["id","name","value"],"additionalProperties":false}}},"required":["family","id","eventName","txIndex","blockNumber","blockTimestamp","transactionHash","emitter","sender","metaTxSigner","displaySender","relayerKind","relayer","userOpHash","involved","values"],"additionalProperties":false},{"type":"object","properties":{"family":{"type":"string","enum":["canton"]},"id":{"type":"string"},"networkIdentity":{"type":"string","minLength":1},"ledgerOffset":{"$ref":"#/components/schemas/LedgerOffset"},"updateId":{"type":"string","minLength":1},"nodeId":{"type":"integer"},"projectionFamily":{"type":"string","minLength":1},"action":{"type":"string","minLength":1},"contractId":{"type":"string","minLength":1},"instrumentAdmin":{"anyOf":[{"$ref":"#/components/schemas/CantonPartyId"},{"type":"null"}]},"instrumentId":{"anyOf":[{"type":"string"},{"type":"null"}]},"fromParty":{"anyOf":[{"$ref":"#/components/schemas/CantonPartyId"},{"type":"null"}]},"toParty":{"anyOf":[{"$ref":"#/components/schemas/CantonPartyId"},{"type":"null"}]},"amount":{"anyOf":[{"type":"string","pattern":"^-?\\d+(\\.\\d+)?$"},{"type":"null"}]},"recordTime":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["family","id","networkIdentity","ledgerOffset","updateId","nodeId","projectionFamily","action","contractId","instrumentAdmin","instrumentId","fromParty","toParty","amount","recordTime"],"additionalProperties":false}]}},"meta":{"$ref":"#/components/schemas/CollectionMeta"},"links":{"$ref":"#/components/schemas/CollectionLinks"}},"required":["data","meta","links"],"additionalProperties":false,"description":"One page of indexed events for the selected asset, in either chain family. `meta.total` counts every matching event, not only this page.","examples":[{"data":[],"meta":{"total":0},"links":{"self":"/v2/tokens/0x0000000000000000000000000000000000000000/events"}},{"data":[],"meta":{"total":0},"links":{"self":"/v2/tokens/NWC-2026/events?instrumentAdmin=Alice::1220"}}]},"TokenHistoricalBalanceAtBlockByHolderV2OutputSchema":{"type":"object","properties":{"data":{"type":"object","properties":{"family":{"type":"string","enum":["evm"]},"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"holderAddress":{"$ref":"#/components/schemas/EvmAddress"},"balance":{"type":"string"},"balanceExact":{"type":"string"},"asOfBlockNumber":{"type":"string"},"asOfBlockTimestamp":{"anyOf":[{"type":"string"},{"type":"null"}]},"asOfTxHash":{"anyOf":[{"type":"string"},{"type":"null"}]},"asOfLogIndex":{"anyOf":[{"type":"integer"},{"type":"null"}]},"requestedBlock":{"type":"string"}},"required":["family","tokenAddress","holderAddress","balance","balanceExact","asOfBlockNumber","asOfBlockTimestamp","asOfTxHash","asOfLogIndex","requestedBlock"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleLinks"}},"required":["data","links"],"additionalProperties":false},"TokenHistoricalHoldersAtBlockV2OutputSchema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/TokenHistoricalHolderAtBlockV2ItemSchema"}},"meta":{"$ref":"#/components/schemas/CollectionMeta"},"links":{"$ref":"#/components/schemas/CollectionLinks"}},"required":["data","meta","links"],"additionalProperties":false},"TokenHistoricalHolderAtBlockV2ItemSchema":{"type":"object","properties":{"family":{"type":"string","enum":["evm"]},"account":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"}},"required":["id"],"additionalProperties":false},"available":{"type":"string"},"frozen":{"type":"string"},"isFrozen":{"type":"boolean"},"value":{"type":"string"},"lastUpdatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["family","account","available","frozen","isFrozen","value","lastUpdatedAt"],"additionalProperties":false},"TokenHistoricalBalanceAtBlockV2OutputSchema":{"type":"object","properties":{"data":{"anyOf":[{"type":"object","properties":{"account":{"$ref":"#/components/schemas/EvmAddress"},"balance":{"type":"string"},"balanceExact":{"type":"string"},"totalSupply":{"type":"string"},"totalSupplyExact":{"type":"string"},"timepoint":{"type":"string"},"featureAddress":{"$ref":"#/components/schemas/EvmAddress"}},"required":["account","balance","balanceExact","totalSupply","totalSupplyExact","timepoint","featureAddress"],"additionalProperties":false},{"type":"null"}]},"links":{"$ref":"#/components/schemas/SingleLinks"}},"required":["data","links"],"additionalProperties":false},"TokenHistoricalBalancesV2OutputSchema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/TokenHistoricalBalanceV2ItemSchema"}},"meta":{"$ref":"#/components/schemas/CollectionMeta"},"links":{"$ref":"#/components/schemas/CollectionLinks"}},"required":["data","meta","links"],"additionalProperties":false},"TokenHistoricalBalanceV2ItemSchema":{"type":"object","properties":{"family":{"type":"string","enum":["evm"]},"id":{"type":"string"},"account":{"$ref":"#/components/schemas/EvmAddress"},"kind":{"type":"string","enum":["account","totalSupply"]},"sender":{"$ref":"#/components/schemas/EvmAddress"},"oldBalance":{"type":"string"},"oldBalanceExact":{"$ref":"#/components/schemas/AssetAmount"},"newBalance":{"type":"string"},"newBalanceExact":{"$ref":"#/components/schemas/AssetAmount"},"blockNumber":{"$ref":"#/components/schemas/BlockHeightEncoded"},"blockTimestamp":{"$ref":"#/components/schemas/TimestampEncoded"},"txHash":{"$ref":"#/components/schemas/EthereumHashEncoded"},"logIndex":{"type":"integer","minimum":0}},"required":["family","id","account","kind","sender","oldBalance","oldBalanceExact","newBalance","newBalanceExact","blockNumber","blockTimestamp","txHash","logIndex"],"additionalProperties":false},"TreasuryHealthResponseSchema":{"type":"object","properties":{"data":{"type":"object","properties":{"status":{"type":"string","enum":["green","yellow","red"]},"availableBalance":{"type":"string","examples":["240000000.00"]},"requiredBalance":{"type":"string","examples":["125000.00"]}},"required":["status","availableBalance","requiredBalance"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleLinks"}},"required":["data","links"],"additionalProperties":false},"HoldingsV2OutputSchema":{"type":"object","properties":{"data":{"type":"array","items":{"anyOf":[{"$ref":"#/components/schemas/HeldAssetV2Entry"},{"$ref":"#/components/schemas/CantonHoldingItem"}],"discriminator":{"propertyName":"family","mapping":{"evm":"#/components/schemas/HeldAssetV2Entry","canton":"#/components/schemas/CantonHoldingItem"}}}},"meta":{"$ref":"#/components/schemas/CollectionMeta"},"links":{"$ref":"#/components/schemas/CollectionLinks"}},"required":["data","meta","links"],"additionalProperties":false},"CantonHoldingItem":{"type":"object","properties":{"family":{"type":"string","enum":["canton"]},"networkIdentity":{"type":"string","minLength":1},"contractId":{"type":"string","minLength":1},"instrumentAdmin":{"$ref":"#/components/schemas/CantonPartyId"},"instrumentId":{"type":"string","minLength":1},"ownerParty":{"$ref":"#/components/schemas/CantonPartyId"},"providerParty":{"anyOf":[{"$ref":"#/components/schemas/CantonPartyId"},{"type":"null"}]},"accountId":{"type":"string"},"amount":{"type":"string","pattern":"^-?\\d+(\\.\\d+)?$"},"locked":{"type":"boolean"},"lockHolders":{"type":"array","items":{"$ref":"#/components/schemas/CantonPartyId"}},"lockExpiresAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"createdOffset":{"$ref":"#/components/schemas/LedgerOffset"},"updateId":{"type":"string","minLength":1},"recordTime":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["family","networkIdentity","contractId","instrumentAdmin","instrumentId","ownerParty","providerParty","accountId","amount","locked","lockHolders","lockExpiresAt","createdOffset","updateId","recordTime"],"additionalProperties":false},"HeldAssetV2Entry":{"type":"object","properties":{"family":{"type":"string","enum":["evm"]},"id":{"$ref":"#/components/schemas/EvmAddress"},"tokenFactory":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"}},"required":["id"],"additionalProperties":false},"type":{"$ref":"#/components/schemas/AssetTypeOrSlug"},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"name":{"type":"string"},"symbol":{"type":"string"},"logoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"decimals":{"type":"integer"},"basePrice":{"$ref":"#/components/schemas/BigDecimal"},"basePriceCurrencyCode":{"anyOf":[{"$ref":"#/components/schemas/FiatCurrency"},{"type":"null"}]},"totalSupply":{"$ref":"#/components/schemas/BigDecimal"},"totalSupplyExact":{"$ref":"#/components/schemas/AssetAmount"},"smartInterface":{"anyOf":[{"type":"integer"},{"type":"null"}]},"pausable":{"type":"object","properties":{"paused":{"type":"boolean"}},"required":["paused"],"additionalProperties":false},"isExternal":{"type":"boolean"},"balance":{"$ref":"#/components/schemas/BigDecimal"},"valueInBaseCurrency":{"anyOf":[{"$ref":"#/components/schemas/BigDecimal"},{"type":"null"}]},"priceInBaseCurrencyReliable":{"type":"boolean"}},"required":["family","id","tokenFactory","type","createdAt","name","symbol","decimals","basePrice","basePriceCurrencyCode","totalSupply","smartInterface","pausable","isExternal","balance","valueInBaseCurrency","priceInBaseCurrencyReliable"],"additionalProperties":false},"TokenAllowanceV2OutputSchema":{"anyOf":[{"$ref":"#/components/schemas/TokenAllowanceV2SingleOutputSchema"},{"$ref":"#/components/schemas/TokenAllowanceV2BookPageSchema"}]},"TokenAllowanceV2BookPageSchema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"contractId":{"type":"string","minLength":1},"kind":{"type":"string","enum":["allowance","book"]},"instrumentAdmin":{"$ref":"#/components/schemas/CantonPartyId"},"instrumentId":{"type":"string","minLength":1}},"required":["contractId","kind","instrumentAdmin","instrumentId"],"additionalProperties":false}},"meta":{"$ref":"#/components/schemas/CollectionMeta"},"links":{"$ref":"#/components/schemas/CollectionLinks"}},"required":["data","meta","links"],"additionalProperties":false},"TokenAllowanceV2SingleOutputSchema":{"type":"object","properties":{"data":{"anyOf":[{"type":"object","properties":{"owner":{"type":"string","minLength":1,"maxLength":255},"spender":{"type":"string","minLength":1,"maxLength":255},"amount":{"$ref":"#/components/schemas/AssetAmount"},"lastUpdatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["owner","spender","amount","lastUpdatedAt"],"additionalProperties":false},{"type":"null"}]},"links":{"$ref":"#/components/schemas/SingleLinks"}},"required":["data","links"],"additionalProperties":false},"TokenAllowanceV2Filter":{"type":"object","properties":{"kind":{"type":"string","enum":["allowance","book"]}},"additionalProperties":false},"TokenHolderV2ResponseSchema":{"type":"object","properties":{"data":{"type":"object","properties":{"family":{"type":"string","enum":["evm"]},"holder":{"anyOf":[{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["evm"]},"account":{"$ref":"#/components/schemas/EvmAddress"},"balance":{"type":"object","properties":{"total":{"$ref":"#/components/schemas/AssetAmount"},"frozen":{"$ref":"#/components/schemas/AssetAmount"},"available":{"$ref":"#/components/schemas/AssetAmount"},"isFrozen":{"type":"boolean"}},"required":["total","frozen","available","isFrozen"],"additionalProperties":false},"lastUpdatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["_tag","account","balance","lastUpdatedAt"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["canton"]},"ownerParty":{"$ref":"#/components/schemas/CantonPartyId"},"totalAmount":{"$ref":"#/components/schemas/AssetAmount"},"lockedAmount":{"$ref":"#/components/schemas/AssetAmount"},"holdingCount":{"type":"integer","minimum":0},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["_tag","ownerParty","totalAmount","lockedAmount","holdingCount","updatedAt"],"additionalProperties":false}]},{"type":"null"}]}},"required":["family","holder"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleLinks"}},"required":["data","links"],"additionalProperties":false},"HoldersV2OutputSchema":{"type":"object","properties":{"data":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["evm"]},"account":{"$ref":"#/components/schemas/EvmAddress"},"balance":{"type":"object","properties":{"total":{"$ref":"#/components/schemas/AssetAmount"},"frozen":{"$ref":"#/components/schemas/AssetAmount"},"available":{"$ref":"#/components/schemas/AssetAmount"},"isFrozen":{"type":"boolean"}},"required":["total","frozen","available","isFrozen"],"additionalProperties":false},"lastUpdatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["_tag","account","balance","lastUpdatedAt"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["canton"]},"ownerParty":{"$ref":"#/components/schemas/CantonPartyId"},"totalAmount":{"$ref":"#/components/schemas/AssetAmount"},"lockedAmount":{"$ref":"#/components/schemas/AssetAmount"},"holdingCount":{"type":"integer","minimum":0},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["_tag","ownerParty","totalAmount","lockedAmount","holdingCount","updatedAt"],"additionalProperties":false}]}},"meta":{"$ref":"#/components/schemas/CollectionMeta"},"links":{"$ref":"#/components/schemas/CollectionLinks"}},"required":["data","meta","links"],"additionalProperties":false},"TokenMetadataV2ResponseSchema":{"type":"object","properties":{"data":{"type":"object","properties":{"family":{"type":"string","enum":["evm"]},"metadata_":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","minLength":1},"value":{"type":"string"},"valueNumber":{"anyOf":[{"type":"number"},{"type":"null"}]},"isImmutable":{"type":"boolean"},"setAt":{"$ref":"#/components/schemas/TimestampEncoded"},"storage":{"type":"string","enum":["onchain","offchain"],"description":"Where the template stores this entry: `onchain` for an indexed contract entry, `offchain` for a value held in the platform database."}},"required":["key","value","valueNumber","isImmutable","setAt","storage"],"additionalProperties":false}},{"type":"null"}]}},"required":["family","metadata_"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/SingleLinks"}},"required":["data","links"],"additionalProperties":false},"TokenV2ReadOutputSchema":{"type":"object","properties":{"data":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["evm"]},"address":{"$ref":"#/components/schemas/EvmAddress"},"name":{"type":"string"},"symbol":{"type":"string"},"decimals":{"type":"integer"},"assetType":{"$ref":"#/components/schemas/AssetTypeOrSlug"},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"totalSupply":{"$ref":"#/components/schemas/AssetAmount"},"basePrice":{"$ref":"#/components/schemas/BigDecimal"},"basePriceCurrencyCode":{"anyOf":[{"$ref":"#/components/schemas/FiatCurrency"},{"type":"null"}]},"smartInterface":{"anyOf":[{"type":"integer"},{"type":"null"}]},"pausable":{"type":"object","properties":{"paused":{"type":"boolean"}},"required":["paused"],"additionalProperties":false},"logoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"tokenFactory":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"templateLink":{"anyOf":[{"type":"object","properties":{"templateId":{"type":"string","minLength":1},"templateSlug":{"type":"string","minLength":1}},"required":["templateId","templateSlug"],"additionalProperties":false},{"type":"null"}]},"capabilities":{"type":"array","items":{"$ref":"#/components/schemas/InstrumentCapability"},"description":"The token's instrument capabilities: share-capital for shares, unit-capital for fund units and real-estate fractions. They decide which corporate actions the token offers. A token linked to a template carries the capabilities snapshotted from that template when it deployed. A token with no template link gets them derived when it is read, from its asset type and its attached features: equity without an attached conversion feature has share-capital, fund and real-estate have unit-capital, and any other type has none."}},"required":["_tag","address","name","symbol","decimals","assetType","createdAt","totalSupply","basePrice","basePriceCurrencyCode","smartInterface","pausable","logoUrl","tokenFactory","templateLink","capabilities"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["canton"]},"instrumentId":{"type":"string","minLength":1},"instrumentAdmin":{"$ref":"#/components/schemas/CantonPartyId"},"name":{"type":"string"},"symbol":{"type":"string"},"networkIdentity":{"type":"string","minLength":1},"disclosedAmount":{"type":"string","pattern":"^-?(0|[1-9]\\d*)(\\.\\d{1,10})?$"},"disclosedLockedAmount":{"type":"string","pattern":"^-?(0|[1-9]\\d*)(\\.\\d{1,10})?$"},"disclosedHolderCount":{"type":"integer","minimum":0},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["_tag","instrumentId","instrumentAdmin","name","symbol","networkIdentity","disclosedAmount","disclosedLockedAmount","disclosedHolderCount","updatedAt"],"additionalProperties":false}]},"details":{"anyOf":[{"$ref":"#/components/schemas/TokenReadDetails"},{"type":"null"}]},"links":{"$ref":"#/components/schemas/SingleLinks"}},"required":["data","details","links"],"additionalProperties":false},"TokenReadDetails":{"type":"object","properties":{"cap":{"anyOf":[{"$ref":"#/components/schemas/AssetAmount"},{"type":"null"}]},"totalBurned":{"$ref":"#/components/schemas/AssetAmount"},"createdBy":{"$ref":"#/components/schemas/EvmAddress"},"complianceContract":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"identityRegistry":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"collateral":{"anyOf":[{"$ref":"#/components/schemas/TokenReadCollateral"},{"type":"null"}]},"mintClosed":{"type":"boolean"}},"required":["cap","totalBurned","createdBy","complianceContract","identityRegistry","collateral","mintClosed"],"additionalProperties":false,"description":"Supply limits and contract wiring of an EVM token: the supply cap, burned supply, deployer, compliance and identity registry contracts, backing collateral, and whether minting is closed"},"TokenReadCollateral":{"type":"object","properties":{"amount":{"$ref":"#/components/schemas/AssetAmount"},"expiresAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]}},"required":["amount","expiresAt"],"additionalProperties":false,"description":"The live trusted collateral claim that backs the supply, and when it expires"},"TokenV2ListOutputSchema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"ref":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["evm"]},"address":{"$ref":"#/components/schemas/EvmAddress"}},"required":["_tag","address"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["canton"]},"instrumentId":{"type":"string","minLength":1},"instrumentAdmin":{"$ref":"#/components/schemas/CantonPartyId"}},"required":["_tag","instrumentId","instrumentAdmin"],"additionalProperties":false}]},"token":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["evm"]},"address":{"$ref":"#/components/schemas/EvmAddress"},"name":{"type":"string"},"symbol":{"type":"string"},"decimals":{"type":"integer"},"assetType":{"$ref":"#/components/schemas/AssetTypeOrSlug"},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"totalSupply":{"$ref":"#/components/schemas/AssetAmount"},"basePrice":{"$ref":"#/components/schemas/BigDecimal"},"basePriceCurrencyCode":{"anyOf":[{"$ref":"#/components/schemas/FiatCurrency"},{"type":"null"}]},"smartInterface":{"anyOf":[{"type":"integer"},{"type":"null"}]},"pausable":{"type":"object","properties":{"paused":{"type":"boolean"}},"required":["paused"],"additionalProperties":false},"logoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"tokenFactory":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"templateLink":{"anyOf":[{"type":"object","properties":{"templateId":{"type":"string","minLength":1},"templateSlug":{"type":"string","minLength":1}},"required":["templateId","templateSlug"],"additionalProperties":false},{"type":"null"}]},"capabilities":{"type":"array","items":{"$ref":"#/components/schemas/InstrumentCapability"},"description":"The token's instrument capabilities: share-capital for shares, unit-capital for fund units and real-estate fractions. They decide which corporate actions the token offers. A token linked to a template carries the capabilities snapshotted from that template when it deployed. A token with no template link gets them derived when it is read, from its asset type and its attached features: equity without an attached conversion feature has share-capital, fund and real-estate have unit-capital, and any other type has none."}},"required":["_tag","address","name","symbol","decimals","assetType","createdAt","totalSupply","basePrice","basePriceCurrencyCode","smartInterface","pausable","logoUrl","tokenFactory","templateLink","capabilities"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["canton"]},"instrumentId":{"type":"string","minLength":1},"instrumentAdmin":{"$ref":"#/components/schemas/CantonPartyId"},"name":{"type":"string"},"symbol":{"type":"string"},"networkIdentity":{"type":"string","minLength":1},"disclosedAmount":{"type":"string","pattern":"^-?(0|[1-9]\\d*)(\\.\\d{1,10})?$"},"disclosedLockedAmount":{"type":"string","pattern":"^-?(0|[1-9]\\d*)(\\.\\d{1,10})?$"},"disclosedHolderCount":{"type":"integer","minimum":0},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["_tag","instrumentId","instrumentAdmin","name","symbol","networkIdentity","disclosedAmount","disclosedLockedAmount","disclosedHolderCount","updatedAt"],"additionalProperties":false}]}},"required":["ref","token"],"additionalProperties":false}},"meta":{"type":"object","properties":{"total":{"type":"integer"},"facets":{"type":"object","additionalProperties":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"count":{"type":"integer","minimum":0}},"required":["value","count"],"additionalProperties":false}}}},"required":["total"],"additionalProperties":false},"links":{"$ref":"#/components/schemas/CollectionLinks"}},"required":["data","meta","links"],"additionalProperties":false},"SettlementAsyncAcceptedResult_30":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false,"description":"Accepted handle for a queued settlement write. Poll `statusUrl` until the write settles."},"SettlementSingleLinks":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false},"SettlementBlockchainMutationMeta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"type":"string"}},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false,"description":"Settlement metadata on a synchronous mutation. `txHashes` are the submitted chain transactions and `transactionId` is the request behind them."},"CantonAddonOperationOutput_1":{"type":"object","properties":{"operationId":{"type":"string","minLength":1},"submissionId":{"type":"string","minLength":1},"ledgerSubmissionId":{"type":"string","minLength":1},"preparedHashHex":{"type":"string","minLength":1},"contractId":{"type":"string"}},"required":["operationId","submissionId","ledgerSubmissionId","preparedHashHex"],"additionalProperties":false},"CantonContractId_1":{"type":"string","minLength":1,"description":"Contract id of a Canton contract, as returned by the addon or token read that listed it. The template identifiers behind it are pinned by the platform."},"CantonAirdropPushRevokeInput":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"cantonPartyId":{"$ref":"#/components/schemas/CantonPartyId_19"}},"required":["cantonPartyId"],"additionalProperties":false},"CantonPartyId_19":{"type":"string","minLength":1,"description":"Canton party this operation is submitted as, and which must be a party wallet of the active organization.","examples":["Canton::1220abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123"]},"SettlementAsyncAcceptedResult_29":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false,"description":"Accepted handle for a queued settlement write. Poll `statusUrl` until the write settles."},"CantonAirdropPushDistributionInput":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"cantonPartyId":{"$ref":"#/components/schemas/CantonPartyId_19"},"grantContractId":{"$ref":"#/components/schemas/CantonContractId_1"},"rulesContractId":{"$ref":"#/components/schemas/CantonContractId_1"}},"required":["cantonPartyId","grantContractId","rulesContractId"],"additionalProperties":false},"SettlementAsyncAcceptedResult_28":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false,"description":"Accepted handle for a queued settlement write. Poll `statusUrl` until the write settles."},"CantonAirdropGrantDistributionRevokeInput":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"cantonPartyId":{"$ref":"#/components/schemas/CantonPartyId_19"}},"required":["cantonPartyId"],"additionalProperties":false},"SettlementAsyncAcceptedResult_27":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false,"description":"Accepted handle for a queued settlement write. Poll `statusUrl` until the write settles."},"CantonAirdropGrantWithdrawalInput":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"cantonPartyId":{"$ref":"#/components/schemas/CantonPartyId_19"}},"required":["cantonPartyId"],"additionalProperties":false},"SettlementAsyncAcceptedResult_26":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false,"description":"Accepted handle for a queued settlement write. Poll `statusUrl` until the write settles."},"CantonAirdropGrantAcceptanceInput":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"cantonPartyId":{"$ref":"#/components/schemas/CantonPartyId_19"}},"required":["cantonPartyId"],"additionalProperties":false},"SettlementAsyncAcceptedResult_25":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false,"description":"Accepted handle for a queued settlement write. Poll `statusUrl` until the write settles."},"CantonAirdropGrantOfferInput":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"cantonPartyId":{"$ref":"#/components/schemas/CantonPartyId_19"},"account":{"$ref":"#/components/schemas/DamlAccount"},"amount":{"$ref":"#/components/schemas/DamlAmount"}},"required":["cantonPartyId","account","amount"],"additionalProperties":false},"DamlAmount":{"type":"string","pattern":"^-?(0|[1-9]\\d*)(\\.\\d{1,10})?$","description":"Exact decimal amount in the instrument's own unit, up to ten decimal places.","examples":["100.00"]},"DamlAccount":{"type":"object","properties":{"owner":{"anyOf":[{"type":"string"},{"type":"null"}]},"provider":{"anyOf":[{"type":"string"},{"type":"null"}]},"id":{"type":"string"}},"required":["owner","provider","id"],"additionalProperties":false,"description":"The account an operation acts on, exactly as a Canton read returned it: `owner` and `provider` are parties, and `id` is the account's label, which is empty for a party's unnamed account."},"SettlementAsyncAcceptedResult_24":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false,"description":"Accepted handle for a queued settlement write. Poll `statusUrl` until the write settles."},"CantonAirdropCampaignRevokeInput":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"cantonPartyId":{"$ref":"#/components/schemas/CantonPartyId_19"}},"required":["cantonPartyId"],"additionalProperties":false},"SettlementAsyncAcceptedResult_23":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false,"description":"Accepted handle for a queued settlement write. Poll `statusUrl` until the write settles."},"CantonAirdropClaimInput":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"cantonPartyId":{"$ref":"#/components/schemas/CantonPartyId_19"},"entitlementContractId":{"$ref":"#/components/schemas/CantonContractId_1"},"account":{"$ref":"#/components/schemas/DamlAccount"},"rulesContractId":{"$ref":"#/components/schemas/CantonContractId_1"}},"required":["cantonPartyId","entitlementContractId","account","rulesContractId"],"additionalProperties":false},"SettlementAsyncAcceptedResult_22":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false,"description":"Accepted handle for a queued settlement write. Poll `statusUrl` until the write settles."},"CantonAirdropEntitlementInput":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"cantonPartyId":{"$ref":"#/components/schemas/CantonPartyId_19"},"account":{"$ref":"#/components/schemas/DamlAccount"},"amount":{"$ref":"#/components/schemas/DamlAmount"},"vesting":{"anyOf":[{"$ref":"#/components/schemas/DamlVestingTerms"},{"type":"null"}]}},"required":["cantonPartyId","account","amount","vesting"],"additionalProperties":false},"DamlVestingTerms":{"type":"object","properties":{"vestingStartAt":{"$ref":"#/components/schemas/DamlTimestamp_1"},"vestingDuration":{"$ref":"#/components/schemas/DamlRelativeTime"},"cliffDuration":{"$ref":"#/components/schemas/DamlRelativeTime"}},"required":["vestingStartAt","vestingDuration","cliffDuration"],"additionalProperties":false,"description":"Vesting schedule for the entitlement. Send it to hold the amount until the schedule has run; a null holds nothing back."},"DamlRelativeTime":{"type":"object","properties":{"microseconds":{"type":"string","pattern":"^-?(0|[1-9]\\d*)$"}},"required":["microseconds"],"additionalProperties":false,"description":"A ledger relative time, in microseconds."},"DamlTimestamp_1":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,6})?Z$","description":"A ledger timestamp in UTC, microsecond precision."},"SettlementAsyncAcceptedResult_21":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false,"description":"Accepted handle for a queued settlement write. Poll `statusUrl` until the write settles."},"CantonAirdropCreateInput":{"anyOf":[{"$ref":"#/components/schemas/CantonAirdropCampaignCreateInput"},{"$ref":"#/components/schemas/CantonPushAirdropCreateInput"}],"discriminator":{"propertyName":"kind","mapping":{"campaign":"#/components/schemas/CantonAirdropCampaignCreateInput","push":"#/components/schemas/CantonPushAirdropCreateInput"}}},"CantonPushAirdropCreateInput":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"cantonPartyId":{"$ref":"#/components/schemas/CantonPartyId_19"},"kind":{"type":"string","enum":["push"]},"instrumentAdmin":{"$ref":"#/components/schemas/CantonPartyId_20"},"campaignId":{"$ref":"#/components/schemas/DamlName"},"instrumentId":{"$ref":"#/components/schemas/DamlName"},"distributionCap":{"anyOf":[{"$ref":"#/components/schemas/DamlAmount"},{"type":"null"}]},"observers":{"type":"array","items":{"$ref":"#/components/schemas/CantonPartyId_21"}}},"required":["cantonPartyId","kind","instrumentAdmin","campaignId","instrumentId","distributionCap"],"additionalProperties":false},"CantonPartyId_21":{"type":"string","minLength":1,"description":"Canton party identifier.","examples":["Canton::1220abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123"]},"DamlName":{"type":"string","minLength":1,"description":"Non-empty Daml text, the label the capability is keyed by."},"CantonPartyId_20":{"type":"string","minLength":1,"description":"Admin party of the Canton instrument this write concerns. A body that carries it is a Canton request; a body that does not is an EVM one.","examples":["Canton::1220abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123"]},"CantonAirdropCampaignCreateInput":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"cantonPartyId":{"$ref":"#/components/schemas/CantonPartyId_19"},"kind":{"type":"string","enum":["campaign"]},"instrumentAdmin":{"$ref":"#/components/schemas/CantonPartyId_20"},"campaignId":{"$ref":"#/components/schemas/DamlName"},"instrumentId":{"$ref":"#/components/schemas/DamlName"},"claimOpenAt":{"$ref":"#/components/schemas/DamlTimestamp_1"},"claimUntil":{"$ref":"#/components/schemas/DamlTimestamp_1"},"observers":{"type":"array","items":{"$ref":"#/components/schemas/CantonPartyId_21"}}},"required":["cantonPartyId","kind","instrumentAdmin","campaignId","instrumentId","claimOpenAt","claimUntil"],"additionalProperties":false},"AirdropReadResponse":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"typeId":{"$ref":"#/components/schemas/AirdropType"},"name":{"type":"string"},"token":{"anyOf":[{"$ref":"#/components/schemas/AirdropToken"},{"type":"null"}]},"merkleRoot":{"type":"string"},"distributionCap":{"anyOf":[{"$ref":"#/components/schemas/BigDecimal"},{"type":"null"}]},"distributionCapExact":{"anyOf":[{"$ref":"#/components/schemas/AssetAmount"},{"type":"null"}]},"amountTransferred":{"anyOf":[{"$ref":"#/components/schemas/BigDecimal"},{"type":"null"}]},"amountTransferredExact":{"$ref":"#/components/schemas/AssetAmount"},"withdrawalScheduled":{"type":"boolean"},"withdrawalEligibleAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"vestingStrategy":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"vestingInitializationDeadlineAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"recipientCount":{"type":"integer","minimum":0}},"required":["id","typeId","name","token","merkleRoot","distributionCap","distributionCapExact","amountTransferred","amountTransferredExact","withdrawalScheduled","withdrawalEligibleAt","vestingStrategy","vestingInitializationDeadlineAt","createdAt","recipientCount"],"additionalProperties":false},"AirdropToken":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"symbol":{"type":"string","minLength":1},"decimals":{"type":"integer","minimum":0,"maximum":255}},"required":["id","symbol","decimals"],"additionalProperties":false},"AirdropType":{"type":"string","enum":["push-airdrop","vesting-airdrop","time-bound-airdrop"],"description":"Airdrop factory variant"},"SettlementCollectionLinks":{"type":"object","properties":{"self":{"type":"string"},"first":{"type":"string"},"prev":{"anyOf":[{"type":"string"},{"type":"null"}]},"next":{"anyOf":[{"type":"string"},{"type":"null"}]},"last":{"type":"string"}},"required":["self","first","prev","next","last"],"additionalProperties":false},"SettlementCollectionMeta":{"type":"object","properties":{"total":{"type":"integer"},"facets":{"$ref":"#/components/schemas/SettlementFacets"}},"required":["total"],"additionalProperties":false},"SettlementFacets":{"type":"object","additionalProperties":{"type":"array","items":{"$ref":"#/components/schemas/SettlementFacetEntry"}}},"SettlementFacetEntry":{"type":"object","properties":{"value":{"type":"string"},"count":{"type":"integer"}},"required":["value","count"],"additionalProperties":false,"description":"One distinct value and how many filtered rows have it. Feed the value back as filter[<field>]."},"AirdropListItem":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"typeId":{"$ref":"#/components/schemas/AirdropType"},"name":{"type":"string"},"token":{"anyOf":[{"$ref":"#/components/schemas/AirdropToken"},{"type":"null"}]},"merkleRoot":{"type":"string"},"distributionCap":{"anyOf":[{"$ref":"#/components/schemas/BigDecimal"},{"type":"null"}]},"distributionCapExact":{"anyOf":[{"$ref":"#/components/schemas/AssetAmount"},{"type":"null"}]},"amountTransferred":{"anyOf":[{"$ref":"#/components/schemas/BigDecimal"},{"type":"null"}]},"amountTransferredExact":{"$ref":"#/components/schemas/AssetAmount"},"withdrawalScheduled":{"type":"boolean"},"withdrawalEligibleAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"vestingStrategy":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"vestingInitializationDeadlineAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["id","typeId","name","token","merkleRoot","distributionCap","distributionCapExact","amountTransferred","amountTransferredExact","withdrawalScheduled","withdrawalEligibleAt","vestingStrategy","vestingInitializationDeadlineAt","createdAt"],"additionalProperties":false},"AirdropListFilter":{"type":"object","properties":{"search":{"type":"string"},"typeId":{"$ref":"#/components/schemas/AirdropType"}},"additionalProperties":false},"SettlementPageWindow":{"type":"object","properties":{"offset":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"limit":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]}},"additionalProperties":false,"description":"JSON:API page window. page[offset] 0 to 10000, page[limit] 1 to 200."},"SettlementDeleted":{"type":"object","properties":{"data":{"type":"null"}},"required":["data"],"additionalProperties":false},"SaleDocumentPresignedDownload":{"type":"object","properties":{"downloadUrl":{"type":"string","minLength":1},"fileName":{"type":"string","minLength":1},"mimeType":{"type":"string","minLength":1},"expiresAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["downloadUrl","fileName","mimeType","expiresAt"],"additionalProperties":false},"SaleDocumentListItem":{"type":"object","properties":{"id":{"type":"string","minLength":1},"saleAddress":{"$ref":"#/components/schemas/EvmAddress"},"documentType":{"$ref":"#/components/schemas/SaleDocumentType"},"visibility":{"$ref":"#/components/schemas/SaleDocumentVisibility"},"groupId":{"type":"string","minLength":1},"versionNumber":{"type":"integer"},"isLatest":{"type":"boolean"},"fileName":{"type":"string","minLength":1},"fileSize":{"type":"integer"},"mimeType":{"type":"string","minLength":1},"fileHash":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"description":"SHA-256 of the stored file, as 0x-prefixed hex. A `terms` document's hash feeds the sale's terms hash."},"title":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"uploadedAt":{"$ref":"#/components/schemas/TimestampEncoded"},"thumbnailUrl":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]}},"required":["id","saleAddress","documentType","visibility","groupId","versionNumber","isLatest","fileName","fileSize","mimeType","fileHash","title","description","uploadedAt","thumbnailUrl"],"additionalProperties":false},"SaleDocumentVisibility":{"type":"string","enum":["public","holders","restricted"],"description":"Who may read one sale document"},"SaleDocumentType":{"type":"string","enum":["cover_photo","sale_logo","brochure","faq","terms","other"],"description":"Type of token-sale document. A `terms` document is part of the offering terms an investor accepts: the latest version of every `terms` document is hashed into the sale's terms hash."},"SaleDocument":{"type":"object","properties":{"id":{"type":"string","minLength":1},"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"saleAddress":{"$ref":"#/components/schemas/EvmAddress"},"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"documentType":{"$ref":"#/components/schemas/SaleDocumentType"},"visibility":{"$ref":"#/components/schemas/SaleDocumentVisibility"},"groupId":{"type":"string","minLength":1},"versionNumber":{"type":"integer"},"isLatest":{"type":"boolean"},"fileName":{"type":"string","minLength":1},"filePath":{"type":"string","minLength":1,"examples":["token-sales/0x5FC8d32690cc91D4c39d9d3abcBD16989F875707/brochure.pdf"]},"fileSize":{"type":"integer"},"mimeType":{"type":"string","minLength":1},"fileHash":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"title":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"uploadedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["id","chainId","saleAddress","tokenAddress","documentType","visibility","groupId","versionNumber","isLatest","fileName","filePath","fileSize","mimeType","fileHash","title","description","uploadedAt"],"additionalProperties":false},"TokenSaleDocumentConfirmUploadBody":{"type":"object","properties":{"objectKey":{"type":"string","minLength":1},"documentType":{"$ref":"#/components/schemas/SaleDocumentType"},"fileName":{"type":"string","minLength":1},"mimeType":{"$ref":"#/components/schemas/TokenSaleDocumentMimeType"},"fileSize":{"type":"integer","minimum":1,"maximum":52428800},"visibility":{"$ref":"#/components/schemas/SaleDocumentVisibility"},"title":{"type":"string"},"description":{"type":"string"},"replaceGroupId":{"type":"string","minLength":1}},"required":["objectKey","documentType","fileName","mimeType","fileSize","visibility"],"additionalProperties":false},"TokenSaleDocumentMimeType":{"type":"string","enum":["application/pdf","text/plain","text/csv","image/png","image/jpeg"]},"SaleDocumentPresignedUpload":{"type":"object","properties":{"uploadUrl":{"type":"string","minLength":1},"objectKey":{"type":"string","minLength":1},"expiresAt":{"$ref":"#/components/schemas/TimestampEncoded"},"method":{"type":"string","enum":["PUT"]},"headers":{"type":"object","additionalProperties":{"type":"string"}}},"required":["uploadUrl","objectKey","expiresAt","method","headers"],"additionalProperties":false},"TokenSaleDocumentGetUploadUrlBody":{"type":"object","properties":{"documentType":{"$ref":"#/components/schemas/SaleDocumentType"},"fileName":{"type":"string","minLength":1},"mimeType":{"$ref":"#/components/schemas/TokenSaleDocumentMimeType"},"fileSize":{"type":"integer","minimum":1,"maximum":52428800},"visibility":{"$ref":"#/components/schemas/SaleDocumentVisibility"},"title":{"type":"string"},"description":{"type":"string"}},"required":["documentType","fileName","mimeType","fileSize","visibility"],"additionalProperties":false},"SettlementAsyncAcceptedResult_20":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false,"description":"Accepted handle for a queued settlement write. Poll `statusUrl` until the write settles."},"TokenSaleRoleSetOutput":{"type":"object","properties":{"accounts":{"$ref":"#/components/schemas/TokenSaleRoleSetAccounts"},"grant":{"type":"array","items":{"$ref":"#/components/schemas/TokenSaleAccessControlRole"}},"revoke":{"type":"array","items":{"$ref":"#/components/schemas/TokenSaleAccessControlRole"}}},"required":["accounts","grant","revoke"],"additionalProperties":false},"TokenSaleAccessControlRole":{"type":"string","enum":["saleAdmin","fundsManager"]},"TokenSaleRoleSetAccounts":{"type":"array","items":{"$ref":"#/components/schemas/EvmAddress"}},"TokenSaleRoleSetBody":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"participantId":{"type":"string","minLength":1},"address":{"$ref":"#/components/schemas/EvmAddress"},"grant":{"type":"array","items":{"$ref":"#/components/schemas/TokenSaleAccessControlRole"}},"revoke":{"type":"array","items":{"$ref":"#/components/schemas/TokenSaleAccessControlRole"}}},"required":["grant","revoke"],"additionalProperties":false},"SettlementAsyncAcceptedResult_19":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false,"description":"Accepted handle for a queued settlement write. Poll `statusUrl` until the write settles."},"TokenSaleActivateOutput":{"type":"object","properties":{"transactionHash":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"required":["transactionHash"],"additionalProperties":false},"TokenSaleAddToPresaleWhitelistInput":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"investors":{"type":"array","items":{"$ref":"#/components/schemas/EvmAddress"}}},"required":["investors"],"additionalProperties":false},"SettlementAsyncAcceptedResult_18":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false,"description":"Accepted handle for a queued settlement write. Poll `statusUrl` until the write settles."},"SettlementAsyncAcceptedResult_17":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false,"description":"Accepted handle for a queued settlement write. Poll `statusUrl` until the write settles."},"TokenSaleClaimRefundInput":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"currency":{"$ref":"#/components/schemas/EvmAddress"}},"required":["currency"],"additionalProperties":false},"SettlementAsyncAcceptedResult_16":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false,"description":"Accepted handle for a queued settlement write. Poll `statusUrl` until the write settles."},"TokenSaleSetTermsInput":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"expectedTermsHash":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"additionalProperties":false},"SettlementAsyncAcceptedResult_15":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false,"description":"Accepted handle for a queued settlement write. Poll `statusUrl` until the write settles."},"TokenSaleMutationInput":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"}},"additionalProperties":false},"SettlementAsyncAcceptedResult_14":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false,"description":"Accepted handle for a queued settlement write. Poll `statusUrl` until the write settles."},"TokenSalePurchaseIncrementInput":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"increment":{"$ref":"#/components/schemas/AssetAmount"}},"required":["increment"],"additionalProperties":false},"SettlementAsyncAcceptedResult_13":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false,"description":"Accepted handle for a queued settlement write. Poll `statusUrl` until the write settles."},"TokenSaleWithdrawUnsoldTokensInput":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"recipient":{"$ref":"#/components/schemas/EvmAddress"}},"required":["recipient"],"additionalProperties":false},"SettlementAsyncAcceptedResult_12":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false,"description":"Accepted handle for a queued settlement write. Poll `statusUrl` until the write settles."},"SettlementAsyncAcceptedResult_11":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false,"description":"Accepted handle for a queued settlement write. Poll `statusUrl` until the write settles."},"TokenSaleWithdrawFundsInput":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"currency":{"$ref":"#/components/schemas/EvmAddress"},"recipient":{"$ref":"#/components/schemas/EvmAddress"}},"required":["currency","recipient"],"additionalProperties":false},"SettlementAsyncAcceptedResult_10":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false,"description":"Accepted handle for a queued settlement write. Poll `statusUrl` until the write settles."},"TokenSaleBuySettledData":{"anyOf":[{"$ref":"#/components/schemas/TokenSaleActivateOutput"},{"$ref":"#/components/schemas/CantonAddonOperationOutput_1"}]},"TokenSaleBuyInput":{"anyOf":[{"$ref":"#/components/schemas/CantonTokenSalePurchaseInput"},{"$ref":"#/components/schemas/TokenSaleEvmBuyInput"}]},"TokenSaleEvmBuyInput":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"currency":{"$ref":"#/components/schemas/EvmAddress"},"amount":{"$ref":"#/components/schemas/AssetAmount"},"minTokenAmount":{"$ref":"#/components/schemas/AssetAmount"},"instrumentAdmin":{"not":{}},"saleContractId":{"not":{}}},"required":["currency","amount","minTokenAmount"],"additionalProperties":false},"CantonTokenSalePurchaseInput":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"cantonPartyId":{"$ref":"#/components/schemas/CantonPartyId_19"},"instrumentAdmin":{"$ref":"#/components/schemas/CantonPartyId_20"},"saleContractId":{"$ref":"#/components/schemas/CantonContractId_1"},"account":{"$ref":"#/components/schemas/DamlAccount"},"tokenAmount":{"$ref":"#/components/schemas/DamlAmount"},"settlementId":{"$ref":"#/components/schemas/CantonContractId_1"},"investorAllocationContractId":{"$ref":"#/components/schemas/CantonContractId_1"},"treasuryAllocationContractId":{"$ref":"#/components/schemas/CantonContractId_1"},"investorStateContractId":{"$ref":"#/components/schemas/CantonContractId_1"},"rulesContractId":{"$ref":"#/components/schemas/CantonContractId_1"}},"required":["cantonPartyId","instrumentAdmin","saleContractId","account","tokenAmount","settlementId","investorAllocationContractId","treasuryAllocationContractId","investorStateContractId","rulesContractId"],"additionalProperties":false},"SettlementAsyncAcceptedResult_9":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false,"description":"Accepted handle for a queued settlement write. Poll `statusUrl` until the write settles."},"TokenSaleTransitionSettledData":{"anyOf":[{"$ref":"#/components/schemas/TokenSaleActivateOutput"},{"$ref":"#/components/schemas/CantonAddonOperationOutput_1"}]},"TokenSaleTransitionInput":{"anyOf":[{"$ref":"#/components/schemas/CantonTokenSaleTransitionInput"},{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"to":{"$ref":"#/components/schemas/TokenSaleTransitionTarget"},"instrumentAdmin":{"not":{}}},"required":["to"],"additionalProperties":false}]},"TokenSaleTransitionTarget":{"type":"string","enum":["active","public-sale","paused","ended","finalized"]},"CantonTokenSaleTransitionInput":{"type":"object","properties":{"to":{"type":"string","enum":["ended"]},"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"cantonPartyId":{"$ref":"#/components/schemas/CantonPartyId_19"},"instrumentAdmin":{"$ref":"#/components/schemas/CantonPartyId_20"}},"required":["to","cantonPartyId","instrumentAdmin"],"additionalProperties":false,"description":"Canton arm of the sale transition. The path segment is the sale contract id, and the ledger knows one transition: closing the sale early."},"SettlementAsyncAcceptedResult_8":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false,"description":"Accepted handle for a queued settlement write. Poll `statusUrl` until the write settles."},"TokenSaleCreateSettledData":{"anyOf":[{"$ref":"#/components/schemas/TokenSaleCreateOutput"},{"$ref":"#/components/schemas/CantonAddonOperationOutput_1"}]},"TokenSaleCreateOutput":{"type":"object","properties":{"transactionHash":{"$ref":"#/components/schemas/EthereumHashEncoded"},"tokenSaleId":{"$ref":"#/components/schemas/EvmAddress"}},"required":["transactionHash","tokenSaleId"],"additionalProperties":false},"TokenSaleCreateInput":{"anyOf":[{"$ref":"#/components/schemas/CantonTokenSaleCreateInput"},{"$ref":"#/components/schemas/TokenSaleEvmCreateInput"}]},"TokenSaleEvmCreateInput":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification"},"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"saleStart":{"type":"integer"},"saleDuration":{"type":"integer"},"hardCap":{"$ref":"#/components/schemas/AssetAmount"},"paymentCurrencies":{"type":"array","items":{"type":"object","properties":{"currency":{"$ref":"#/components/schemas/EvmAddress"},"priceRatio":{"$ref":"#/components/schemas/AssetAmount"}},"required":["currency","priceRatio"],"additionalProperties":false}},"purchaseLimits":{"type":"object","properties":{"minPurchase":{"$ref":"#/components/schemas/AssetAmount"},"maxPurchase":{"$ref":"#/components/schemas/AssetAmount"}},"required":["minPurchase","maxPurchase"],"additionalProperties":false},"softCap":{"$ref":"#/components/schemas/AssetAmount"},"vesting":{"type":"object","properties":{"start":{"type":"integer"},"duration":{"type":"integer"},"cliff":{"type":"integer"}},"required":["duration","cliff"],"additionalProperties":false},"presale":{"type":"object","properties":{"endTime":{"type":"integer"},"discountMultiplier":{"$ref":"#/components/schemas/AssetAmount"},"maxPerAddress":{"$ref":"#/components/schemas/AssetAmount"},"whitelist":{"type":"array","items":{"$ref":"#/components/schemas/EvmAddress"}}},"required":["discountMultiplier","maxPerAddress"],"additionalProperties":false},"instrumentAdmin":{"not":{}}},"required":["walletVerification","tokenAddress","saleDuration","hardCap"],"additionalProperties":false},"CantonTokenSaleCreateInput":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification"},"cantonPartyId":{"$ref":"#/components/schemas/CantonPartyId_19"},"instrumentAdmin":{"$ref":"#/components/schemas/CantonPartyId_20"},"saleId":{"$ref":"#/components/schemas/DamlName"},"instrumentId":{"$ref":"#/components/schemas/DamlName"},"paymentInstrumentId":{"$ref":"#/components/schemas/DamlName"},"pricePerToken":{"$ref":"#/components/schemas/DamlAmount"},"minPurchase":{"$ref":"#/components/schemas/DamlAmount"},"subscriptionMultiple":{"$ref":"#/components/schemas/DamlAmount"},"maxPerInvestor":{"$ref":"#/components/schemas/DamlAmount"},"totalCap":{"$ref":"#/components/schemas/DamlAmount"},"startAt":{"$ref":"#/components/schemas/DamlTimestamp_1"},"endAt":{"$ref":"#/components/schemas/DamlTimestamp_1"},"treasuryAccount":{"$ref":"#/components/schemas/DamlAccount"},"observers":{"type":"array","items":{"$ref":"#/components/schemas/CantonPartyId_21"}}},"required":["walletVerification","cantonPartyId","instrumentAdmin","saleId","instrumentId","paymentInstrumentId","pricePerToken","minPurchase","subscriptionMultiple","maxPerInvestor","totalCap","startAt","endAt","treasuryAccount"],"additionalProperties":false},"SettlementAsyncAcceptedResult_7":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false,"description":"Accepted handle for a queued settlement write. Poll `statusUrl` until the write settles."},"TokenSaleFundOutput":{"type":"object","properties":{"mintedExact":{"$ref":"#/components/schemas/AssetAmount"},"remainingExact":{"$ref":"#/components/schemas/AssetAmount"}},"required":["mintedExact","remainingExact"],"additionalProperties":false},"TokenSaleFundInput":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"amount":{"$ref":"#/components/schemas/AssetAmount"}},"additionalProperties":false},"TokenSaleFundingOutput":{"type":"object","properties":{"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"hardCapExact":{"$ref":"#/components/schemas/AssetAmount"},"totalSoldExact":{"$ref":"#/components/schemas/AssetAmount"},"balanceExact":{"$ref":"#/components/schemas/AssetAmount"},"queuedExact":{"$ref":"#/components/schemas/AssetAmount"},"remainingExact":{"$ref":"#/components/schemas/AssetAmount"}},"required":["tokenAddress","hardCapExact","totalSoldExact","balanceExact","queuedExact","remainingExact"],"additionalProperties":false},"TokenSaleCapTableResponse":{"type":"object","properties":{"saleAddress":{"$ref":"#/components/schemas/EvmAddress"},"tokenAddress":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"investorCount":{"type":"integer"},"totalTokenAllocated":{"$ref":"#/components/schemas/BigDecimal"},"totalTokenAllocatedExact":{"$ref":"#/components/schemas/AssetAmount"},"rows":{"type":"array","items":{"$ref":"#/components/schemas/CapTableRow"}}},"required":["saleAddress","tokenAddress","investorCount","totalTokenAllocated","totalTokenAllocatedExact","rows"],"additionalProperties":false},"CapTableRow":{"type":"object","properties":{"buyer":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"}},"required":["id"],"additionalProperties":false},"identityAddress":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"kycStatus":{"$ref":"#/components/schemas/CapTableKycStatus"},"country":{"anyOf":[{"$ref":"#/components/schemas/ISOCountryCode"},{"type":"null"}]},"paymentCurrency":{"anyOf":[{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"symbol":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","symbol"],"additionalProperties":false},{"type":"null"}]},"purchaseCount":{"type":"integer"},"totalPaymentAmount":{"$ref":"#/components/schemas/BigDecimal"},"totalPaymentAmountExact":{"$ref":"#/components/schemas/AssetAmount"},"totalTokenAmount":{"$ref":"#/components/schemas/BigDecimal"},"totalTokenAmountExact":{"$ref":"#/components/schemas/AssetAmount"}},"required":["buyer","identityAddress","name","kycStatus","country","paymentCurrency","purchaseCount","totalPaymentAmount","totalPaymentAmountExact","totalTokenAmount","totalTokenAmountExact"],"additionalProperties":false},"CapTableKycStatus":{"type":"string","enum":["registered","pending","unknown"]},"TokenSaleReadResponse":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"token":{"anyOf":[{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"symbol":{"$ref":"#/components/schemas/AssetSymbol"},"decimals":{"$ref":"#/components/schemas/DecimalsEncoded"},"isExternal":{"type":"boolean"}},"required":["id","symbol","decimals","isExternal"],"additionalProperties":false},{"type":"null"}]},"status":{"$ref":"#/components/schemas/TokenSaleStatus"},"saleStartTime":{"$ref":"#/components/schemas/TimestampEncoded"},"saleEndTime":{"$ref":"#/components/schemas/TimestampEncoded"},"presaleEndTime":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"totalSold":{"$ref":"#/components/schemas/BigDecimal"},"totalSoldExact":{"$ref":"#/components/schemas/AssetAmount"},"hardCap":{"$ref":"#/components/schemas/BigDecimal"},"hardCapExact":{"$ref":"#/components/schemas/AssetAmount"},"minPurchase":{"$ref":"#/components/schemas/BigDecimal"},"minPurchaseExact":{"$ref":"#/components/schemas/AssetAmount"},"maxPurchase":{"$ref":"#/components/schemas/BigDecimal"},"maxPurchaseExact":{"$ref":"#/components/schemas/AssetAmount"},"purchaseIncrement":{"$ref":"#/components/schemas/BigDecimal"},"purchaseIncrementExact":{"$ref":"#/components/schemas/AssetAmount"},"softCap":{"anyOf":[{"$ref":"#/components/schemas/BigDecimal"},{"type":"null"}]},"softCapExact":{"anyOf":[{"$ref":"#/components/schemas/AssetAmount"},{"type":"null"}]},"softCapReached":{"type":"boolean"},"presalePriceRatio":{"anyOf":[{"type":"string"},{"type":"null"}]},"presaleMaxPerAddress":{"anyOf":[{"type":"string"},{"type":"null"}]},"vestingEnabled":{"type":"boolean"},"vestingStartTime":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"vestingDuration":{"anyOf":[{"type":"string"},{"type":"null"}]},"vestingCliff":{"anyOf":[{"type":"string"},{"type":"null"}]},"termsHash":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The terms hash recorded on the sale contract, which every buyer must acknowledge before buying."},"termsDocuments":{"type":"array","items":{"$ref":"#/components/schemas/TokenSaleTermsDocument"}},"termsDocumentsHash":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"keccak256 of the SHA-256 file hashes of the current `terms` documents, concatenated in ascending hash order. Equals `termsHash` once the terms are set from the current documents."},"failedAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"paymentCurrencies":{"type":"array","items":{"$ref":"#/components/schemas/TokenSalePaymentCurrency"}},"purchases":{"type":"array","items":{"$ref":"#/components/schemas/TokenSalePurchase"}},"whitelistEntries":{"type":"array","items":{"$ref":"#/components/schemas/TokenSaleWhitelistEntry"}},"systemAddon":{"anyOf":[{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"}},"required":["id"],"additionalProperties":false},{"type":"null"}]},"hasAcknowledgedTerms":{"type":"boolean"},"position":{"anyOf":[{"$ref":"#/components/schemas/TokenSalePosition"},{"type":"null"}]},"eligibility":{"anyOf":[{"$ref":"#/components/schemas/EligibilityVerdictItem_1"},{"type":"null"}]},"accessControl":{"anyOf":[{"$ref":"#/components/schemas/AccessControl"},{"type":"null"}]},"coverPhotoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"logoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","token","status","saleStartTime","saleEndTime","presaleEndTime","createdAt","totalSold","totalSoldExact","hardCap","hardCapExact","minPurchase","minPurchaseExact","maxPurchase","maxPurchaseExact","purchaseIncrement","purchaseIncrementExact","softCap","softCapExact","softCapReached","presalePriceRatio","presaleMaxPerAddress","vestingEnabled","vestingStartTime","vestingDuration","vestingCliff","termsHash","termsDocuments","termsDocumentsHash","failedAt","paymentCurrencies","purchases","whitelistEntries","systemAddon","hasAcknowledgedTerms","position","eligibility","accessControl","coverPhotoUrl","logoUrl"],"additionalProperties":false},"AccessControl":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"addonModule":{"$ref":"#/components/schemas/AccessControlAccountArray"},"addonRegistryModule":{"$ref":"#/components/schemas/AccessControlAccountArray"},"admin":{"$ref":"#/components/schemas/AccessControlAccountArray"},"auditor":{"$ref":"#/components/schemas/AccessControlAccountArray"},"claimPolicyManager":{"$ref":"#/components/schemas/AccessControlAccountArray"},"claimIssuer":{"$ref":"#/components/schemas/AccessControlAccountArray"},"complianceManager":{"$ref":"#/components/schemas/AccessControlAccountArray"},"custodian":{"$ref":"#/components/schemas/AccessControlAccountArray"},"emergency":{"$ref":"#/components/schemas/AccessControlAccountArray"},"feedsManager":{"$ref":"#/components/schemas/AccessControlAccountArray"},"fundsManager":{"$ref":"#/components/schemas/AccessControlAccountArray"},"gasManager":{"$ref":"#/components/schemas/AccessControlAccountArray"},"governance":{"$ref":"#/components/schemas/AccessControlAccountArray"},"identityManager":{"$ref":"#/components/schemas/AccessControlAccountArray"},"identityRegistryModule":{"$ref":"#/components/schemas/AccessControlAccountArray"},"organisationIdentityManager":{"$ref":"#/components/schemas/AccessControlAccountArray"},"saleAdmin":{"$ref":"#/components/schemas/AccessControlAccountArray"},"supplyManagement":{"$ref":"#/components/schemas/AccessControlAccountArray"},"systemManager":{"$ref":"#/components/schemas/AccessControlAccountArray"},"systemModule":{"$ref":"#/components/schemas/AccessControlAccountArray"},"tokenFactoryModule":{"$ref":"#/components/schemas/AccessControlAccountArray"},"tokenFactoryRegistryModule":{"$ref":"#/components/schemas/AccessControlAccountArray"},"tokenManager":{"$ref":"#/components/schemas/AccessControlAccountArray"},"trustedIssuersMetaRegistryModule":{"$ref":"#/components/schemas/AccessControlAccountArray"},"addonManager":{"$ref":"#/components/schemas/AccessControlAccountArrayEncoded_2"},"tradingVenueOperator":{"$ref":"#/components/schemas/AccessControlAccountArrayEncoded_2"},"assetDesigner":{"$ref":"#/components/schemas/AccessControlAccountArrayEncoded_2"},"roleAdmins":{"$ref":"#/components/schemas/AccessControlRoleAdminsEncoded"}},"required":["id","addonModule","addonRegistryModule","admin","auditor","claimPolicyManager","claimIssuer","complianceManager","custodian","emergency","feedsManager","fundsManager","gasManager","governance","identityManager","identityRegistryModule","organisationIdentityManager","saleAdmin","supplyManagement","systemManager","systemModule","tokenFactoryModule","tokenFactoryRegistryModule","tokenManager","trustedIssuersMetaRegistryModule"],"additionalProperties":false},"EligibilityVerdictItem_1":{"type":"object","properties":{"verdict":{"$ref":"#/components/schemas/EligibilityVerdict"},"source":{"$ref":"#/components/schemas/EligibilitySource"},"checkedAt":{"$ref":"#/components/schemas/TimestampEncoded"},"wallet":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"reasons":{"type":"array","items":{"$ref":"#/components/schemas/EligibilityReason_1"}},"wallets":{"type":"array","items":{"$ref":"#/components/schemas/WalletEligibilityVerdictItem_1"}}},"required":["verdict","source","checkedAt","wallet","reasons"],"additionalProperties":false},"WalletEligibilityVerdictItem_1":{"type":"object","properties":{"verdict":{"$ref":"#/components/schemas/EligibilityVerdict"},"source":{"$ref":"#/components/schemas/EligibilitySource"},"checkedAt":{"$ref":"#/components/schemas/TimestampEncoded"},"wallet":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"reasons":{"type":"array","items":{"$ref":"#/components/schemas/EligibilityReason_1"}}},"required":["verdict","source","checkedAt","wallet","reasons"],"additionalProperties":false},"EligibilityReason_1":{"type":"object","properties":{"code":{"$ref":"#/components/schemas/EligibilityReasonCode"},"moduleTypeId":{"type":"string","minLength":1},"instanceAddress":{"type":"string","minLength":1},"details":{"$ref":"#/components/schemas/EligibilityReasonDetails_1"}},"required":["code"],"additionalProperties":false},"EligibilityReasonDetails_1":{"type":"object","properties":{"topic":{"type":"string"},"expiresAt":{"$ref":"#/components/schemas/TimestampEncoded"},"countryCode":{"type":"integer","minimum":0}},"additionalProperties":false},"EligibilityReasonCode":{"type":"string","enum":["address-blocked","country-blocked","country-not-allowed","identity-blocked","identity-not-verified","claim-missing","claim-revoked","claim-expired","live-timeout"]},"EligibilitySource":{"type":"string","enum":["indexer","live"]},"EligibilityVerdict":{"type":"string","enum":["allowed","needs-action","blocked"]},"TokenSalePosition":{"type":"object","properties":{"buyerAddresses":{"type":"array","items":{"$ref":"#/components/schemas/EvmAddress"}},"purchased":{"$ref":"#/components/schemas/BigDecimal"},"purchasedExact":{"$ref":"#/components/schemas/AssetAmount"},"withdrawn":{"$ref":"#/components/schemas/BigDecimal"},"withdrawnExact":{"$ref":"#/components/schemas/AssetAmount"},"claimableNow":{"$ref":"#/components/schemas/BigDecimal"},"claimableNowExact":{"$ref":"#/components/schemas/AssetAmount"},"nextUnlockAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"pendingReason":{"anyOf":[{"$ref":"#/components/schemas/TokenSalePositionPendingReason"},{"type":"null"}]},"contributedByCurrency":{"type":"array","items":{"$ref":"#/components/schemas/TokenSalePositionCurrencyAmount"}},"refundableByCurrency":{"type":"array","items":{"$ref":"#/components/schemas/TokenSalePositionCurrencyAmount"}}},"required":["buyerAddresses","purchased","purchasedExact","withdrawn","withdrawnExact","claimableNow","claimableNowExact","nextUnlockAt","pendingReason","contributedByCurrency","refundableByCurrency"],"additionalProperties":false},"TokenSalePositionCurrencyAmount":{"type":"object","properties":{"currency":{"$ref":"#/components/schemas/EvmAddress"},"amount":{"$ref":"#/components/schemas/BigDecimal"},"amountExact":{"$ref":"#/components/schemas/AssetAmount"}},"required":["currency","amount","amountExact"],"additionalProperties":false},"TokenSalePositionPendingReason":{"type":"string","enum":["before_cliff","pending_finalization","fully_withdrawn","not_started"]},"TokenSaleWhitelistEntry":{"type":"object","properties":{"id":{"type":"string"},"investor":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"}},"required":["id"],"additionalProperties":false},"isWhitelisted":{"type":"boolean"},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["id","investor","isWhitelisted","updatedAt"],"additionalProperties":false},"TokenSalePurchase":{"type":"object","properties":{"id":{"type":"string"},"buyer":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"}},"required":["id"],"additionalProperties":false},"paymentCurrency":{"$ref":"#/components/schemas/TokenSalePaymentCurrency"},"paymentAmount":{"$ref":"#/components/schemas/BigDecimal"},"paymentAmountExact":{"$ref":"#/components/schemas/AssetAmount"},"tokenAmount":{"$ref":"#/components/schemas/BigDecimal"},"tokenAmountExact":{"$ref":"#/components/schemas/AssetAmount"},"purchasedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["id","buyer","paymentCurrency","paymentAmount","paymentAmountExact","tokenAmount","tokenAmountExact","purchasedAt"],"additionalProperties":false},"TokenSalePaymentCurrency":{"type":"object","properties":{"id":{"type":"string"},"currency":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"contractName":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","contractName"],"additionalProperties":false},"priceRatio":{"type":"string"},"accepted":{"type":"boolean"}},"required":["id","currency","priceRatio","accepted"],"additionalProperties":false},"TokenSaleTermsDocument":{"type":"object","properties":{"id":{"type":"string","minLength":1},"fileName":{"type":"string","minLength":1},"title":{"anyOf":[{"type":"string"},{"type":"null"}]},"fileHash":{"type":"string","minLength":1}},"required":["id","fileName","title","fileHash"],"additionalProperties":false},"TokenSaleStatus":{"type":"string","enum":["SETUP","ACTIVE","PAUSED","ENDED","SUCCESS","FAILED","PRESALE","PUBLIC_SALE"]},"TokenSaleCurrentTimeOutput":{"type":"object","properties":{"currentTimestamp":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["currentTimestamp"],"additionalProperties":false},"TokenSaleOperationsItem":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"token":{"anyOf":[{"$ref":"#/components/schemas/TokenSaleListToken"},{"type":"null"}]},"status":{"$ref":"#/components/schemas/TokenSaleStatus"},"saleStartTime":{"$ref":"#/components/schemas/TimestampEncoded"},"saleEndTime":{"$ref":"#/components/schemas/TimestampEncoded"},"presaleEndTime":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"totalSold":{"$ref":"#/components/schemas/BigDecimal"},"totalSoldExact":{"$ref":"#/components/schemas/AssetAmount"},"hardCap":{"$ref":"#/components/schemas/BigDecimal"},"hardCapExact":{"$ref":"#/components/schemas/AssetAmount"},"alert":{"anyOf":[{"$ref":"#/components/schemas/TokenSaleLifecycleAlert"},{"type":"null"}]},"investorCount":{"type":"integer"}},"required":["id","token","status","saleStartTime","saleEndTime","presaleEndTime","createdAt","totalSold","totalSoldExact","hardCap","hardCapExact","alert","investorCount"],"additionalProperties":false},"TokenSaleLifecycleAlert":{"type":"string","enum":["near-cap","presale-ended","awaiting-finalization","grace-closing"]},"TokenSaleListToken":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"symbol":{"$ref":"#/components/schemas/AssetSymbol"},"decimals":{"$ref":"#/components/schemas/DecimalsEncoded"}},"required":["id","symbol","decimals"],"additionalProperties":false},"TokenSaleListFilter":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000},"createdAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"saleEndTime":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"saleStartTime":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"systemAddon":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"token":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"totalSold":{"anyOf":[{"type":"string","pattern":"^-?\\d+$","maxLength":80},{"type":"object","properties":{"eq":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"ne":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"gte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"between":{"type":"string","maxLength":161},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}],"allOf":[{"description":"Amount sold in base units, the value of `totalSoldExact`, not the decimal `totalSold` amount. For 5 tokens with 18 decimals, send `5000000000000000000`."}]}},"additionalProperties":false},"TokenSaleInvestmentItem":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"token":{"anyOf":[{"$ref":"#/components/schemas/TokenSaleListToken"},{"type":"null"}]},"status":{"$ref":"#/components/schemas/TokenSaleStatus"},"saleStartTime":{"$ref":"#/components/schemas/TimestampEncoded"},"saleEndTime":{"$ref":"#/components/schemas/TimestampEncoded"},"presaleEndTime":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"totalSold":{"$ref":"#/components/schemas/BigDecimal"},"totalSoldExact":{"$ref":"#/components/schemas/AssetAmount"},"hardCap":{"$ref":"#/components/schemas/BigDecimal"},"hardCapExact":{"$ref":"#/components/schemas/AssetAmount"},"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"position":{"$ref":"#/components/schemas/TokenSalePosition"},"participated":{"type":"boolean"},"discoverable":{"type":"boolean"},"coverPhotoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"logoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","token","status","saleStartTime","saleEndTime","presaleEndTime","createdAt","totalSold","totalSoldExact","hardCap","hardCapExact","tokenAddress","position","participated","discoverable","coverPhotoUrl","logoUrl"],"additionalProperties":false},"SaleInvestmentsWireFilter":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000},"purchasedFrom":{"$ref":"#/components/schemas/TimestampEncoded_1"},"purchasedTo":{"$ref":"#/components/schemas/TimestampEncoded_1"},"investableNow":{"type":"string","enum":["true","false"],"description":"A sale is investable now when chain time is at or after its start and before its end, and one of these holds: its status at chain time is PUBLIC_SALE; it is PRESALE and its presale window has already closed at chain time; or it is PRESALE and a caller wallet is on its presale whitelist."}},"additionalProperties":false},"TimestampEncoded_1":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string","description":"Epoch milliseconds as a digit string, or a readable datetime.","format":"timestamp"}]},"TokenSaleListItem":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"token":{"anyOf":[{"$ref":"#/components/schemas/TokenSaleListToken"},{"type":"null"}]},"status":{"$ref":"#/components/schemas/TokenSaleStatus"},"saleStartTime":{"$ref":"#/components/schemas/TimestampEncoded"},"saleEndTime":{"$ref":"#/components/schemas/TimestampEncoded"},"presaleEndTime":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"totalSold":{"$ref":"#/components/schemas/BigDecimal"},"totalSoldExact":{"$ref":"#/components/schemas/AssetAmount"},"hardCap":{"$ref":"#/components/schemas/BigDecimal"},"hardCapExact":{"$ref":"#/components/schemas/AssetAmount"}},"required":["id","token","status","saleStartTime","saleEndTime","presaleEndTime","createdAt","totalSold","totalSoldExact","hardCap","hardCapExact"],"additionalProperties":false},"SettlementAsyncAcceptedResult_6":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false,"description":"Accepted handle for a queued settlement write. Poll `statusUrl` until the write settles."},"XvpRevealSecretOutput":{"type":"object","properties":{"transactionHash":{"$ref":"#/components/schemas/EthereumHashEncoded"},"emailResults":{"type":"array","items":{"$ref":"#/components/schemas/EmailSendResult"}}},"required":["transactionHash"],"additionalProperties":false},"EmailSendResult":{"type":"object","properties":{"recipient":{"type":"string"},"success":{"type":"boolean"}},"required":["recipient","success"],"additionalProperties":false},"XvpRevealSecretBody":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"secret":{"type":"string","minLength":32,"maxLength":1024},"emailRecipients":{"type":"array","items":{"type":"string"}},"settlementName":{"type":"string"}},"required":["secret"],"additionalProperties":false},"XvpStoreSecretOutput":{"type":"object","properties":{"settlementId":{"$ref":"#/components/schemas/EvmAddress"},"stored":{"type":"boolean"}},"required":["settlementId","stored"],"additionalProperties":false},"XvpStoreSecretBody":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"secret":{"type":"string","minLength":32,"maxLength":1024}},"required":["secret"],"additionalProperties":false},"SettlementAsyncAcceptedResult_5":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false,"description":"Accepted handle for a queued settlement write. Poll `statusUrl` until the write settles."},"XvpApproveOutput":{"type":"object","properties":{"transactionHash":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"required":["transactionHash"],"additionalProperties":false},"XvpSettlementWriteBody":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"}},"additionalProperties":false},"SettlementAsyncAcceptedResult_4":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false,"description":"Accepted handle for a queued settlement write. Poll `statusUrl` until the write settles."},"SettlementAsyncAcceptedResult_3":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false,"description":"Accepted handle for a queued settlement write. Poll `statusUrl` until the write settles."},"XvpExecuteSettledData":{"anyOf":[{"$ref":"#/components/schemas/XvpApproveOutput"},{"$ref":"#/components/schemas/CantonXvpSettlementOperationOutput"}]},"CantonXvpSettlementOperationOutput":{"type":"object","properties":{"operationId":{"type":"string","minLength":1},"submissionId":{"type":"string","minLength":1},"ledgerSubmissionId":{"type":"string","minLength":1},"preparedHashHex":{"type":"string","minLength":1}},"required":["operationId","submissionId","ledgerSubmissionId","preparedHashHex"],"additionalProperties":false},"XvpExecutePayload":{"anyOf":[{"$ref":"#/components/schemas/CantonXvpSettlementBatchInput"},{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"instrumentAdmin":{"not":{}},"settlementId":{"not":{}}},"additionalProperties":false}]},"CantonXvpSettlementBatchInput":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"cantonPartyId":{"$ref":"#/components/schemas/CantonPartyId_17"},"settlementId":{"type":"string","minLength":1},"instrumentAdmin":{"$ref":"#/components/schemas/CantonPartyId_18"},"registryContractId":{"$ref":"#/components/schemas/CantonContractId"},"legs":{"type":"array","items":{"$ref":"#/components/schemas/CantonXvpSettlementLegInput"},"minItems":1},"allocations":{"type":"array","items":{"$ref":"#/components/schemas/CantonXvpSettlementBatchAllocation"},"minItems":1}},"required":["cantonPartyId","settlementId","instrumentAdmin","registryContractId","legs","allocations"],"additionalProperties":false},"CantonXvpSettlementBatchAllocation":{"type":"object","properties":{"contractId":{"$ref":"#/components/schemas/CantonContractId"},"instrumentAdmin":{"$ref":"#/components/schemas/CantonPartyId_17"},"authorizerParty":{"$ref":"#/components/schemas/CantonPartyId_17"}},"required":["contractId","instrumentAdmin","authorizerParty"],"additionalProperties":false},"CantonPartyId_17":{"type":"string","minLength":1,"description":"Canton party identifier.","examples":["Canton::1220abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123"]},"CantonContractId":{"type":"string","minLength":1,"description":"Contract id of a Canton contract, as returned by the Canton read that listed it."},"CantonXvpSettlementLegInput":{"type":"object","properties":{"transferLegId":{"type":"string","minLength":1},"instrumentAdmin":{"$ref":"#/components/schemas/CantonPartyId_17"},"instrumentId":{"type":"string","minLength":1},"senderParty":{"$ref":"#/components/schemas/CantonPartyId_17"},"receiverParty":{"$ref":"#/components/schemas/CantonPartyId_17"},"amount":{"$ref":"#/components/schemas/CantonAmount"}},"required":["instrumentAdmin","instrumentId","senderParty","receiverParty","amount"],"additionalProperties":false,"description":"One leg of the settlement in business terms. `transferLegId` defaults to the leg's zero-based position when the caller names none."},"CantonAmount":{"type":"string","pattern":"^-?\\d+(\\.\\d+)?$","description":"Canton token amount as the ledger records it, with no token decimals applied.","examples":["100.0"]},"CantonPartyId_18":{"type":"string","minLength":1,"description":"Admin party of a Canton instrument, and the selector of this route's two members: present, this body is the Canton one. On the request and batch members it must name an instrument admin the body itself names, or the write is refused.","examples":["Canton::1220abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123"]},"SettlementAsyncAcceptedResult_2":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false,"description":"Accepted handle for a queued settlement write. Poll `statusUrl` until the write settles."},"SettlementAsyncAcceptedResult_1":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false,"description":"Accepted handle for a queued settlement write. Poll `statusUrl` until the write settles."},"XvpApproveSettledData":{"anyOf":[{"$ref":"#/components/schemas/XvpApproveOutput"},{"$ref":"#/components/schemas/CantonXvpSettlementOperationOutput"}]},"XvpApprovePayload":{"anyOf":[{"$ref":"#/components/schemas/CantonXvpSettlementAllocationInput"},{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"instrumentAdmin":{"not":{}},"settlementId":{"not":{}}},"additionalProperties":false}]},"CantonXvpSettlementAllocationInput":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"cantonPartyId":{"$ref":"#/components/schemas/CantonPartyId_17"},"settlementId":{"type":"string","minLength":1},"executorParty":{"$ref":"#/components/schemas/CantonPartyId_17"},"instrumentAdmin":{"$ref":"#/components/schemas/CantonPartyId_18"},"registryContractId":{"$ref":"#/components/schemas/CantonContractId"},"legs":{"type":"array","items":{"$ref":"#/components/schemas/CantonXvpSettlementLegInput"},"minItems":1},"inputHoldingContractIds":{"type":"array","items":{"$ref":"#/components/schemas/CantonContractId"}},"authorizerAccountId":{"type":"string"},"settlementDeadline":{"anyOf":[{"$ref":"#/components/schemas/DamlTimestamp"},{"type":"null"}]},"committed":{"type":"boolean"}},"required":["cantonPartyId","settlementId","executorParty","instrumentAdmin","registryContractId","legs","inputHoldingContractIds"],"additionalProperties":false},"DamlTimestamp":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,6})?Z$","description":"A ledger timestamp in UTC, microsecond precision."},"SettlementAsyncAcceptedResult":{"type":"object","properties":{"transactionId":{"type":"string"},"status":{"type":"string"},"statusUrl":{"type":"string"}},"required":["transactionId","status","statusUrl"],"additionalProperties":false,"description":"Accepted handle for a queued settlement write. Poll `statusUrl` until the write settles."},"XvpCreateSettledData":{"anyOf":[{"$ref":"#/components/schemas/XvpCreateOutput"},{"$ref":"#/components/schemas/CantonXvpSettlementOperationOutput"}]},"XvpCreateOutput":{"type":"object","properties":{"transactionHash":{"$ref":"#/components/schemas/EthereumHashEncoded"},"settlementId":{"$ref":"#/components/schemas/EvmAddress"}},"required":["transactionHash","settlementId"],"additionalProperties":false},"XvpCreatePayload":{"anyOf":[{"$ref":"#/components/schemas/CantonXvpSettlementRequestInput"},{"type":"object","properties":{"factoryAddress":{"$ref":"#/components/schemas/EvmAddress"},"name":{"type":"string","minLength":1},"autoExecute":{"type":"boolean"},"cutoffDate":{"$ref":"#/components/schemas/TimestampEncoded"},"secret":{"type":"string","minLength":32,"maxLength":1024},"hashlock":{"$ref":"#/components/schemas/EthereumHashEncoded"},"flows":{"type":"array","items":{"$ref":"#/components/schemas/XvpSettlementFlow"},"maxItems":100},"country":{"type":"integer"},"walletVerification":{"$ref":"#/components/schemas/WalletVerification"},"instrumentAdmin":{"not":{}}},"required":["factoryAddress","name","flows","walletVerification"],"additionalProperties":false}]},"XvpSettlementFlow":{"anyOf":[{"$ref":"#/components/schemas/XvpLocalFlow"},{"$ref":"#/components/schemas/XvpExternalFlow"}],"discriminator":{"propertyName":"type","mapping":{"local":"#/components/schemas/XvpLocalFlow","external":"#/components/schemas/XvpExternalFlow"}}},"XvpExternalFlow":{"type":"object","properties":{"type":{"type":"string","enum":["external"]},"assetId":{"$ref":"#/components/schemas/EvmAddress"},"from":{"$ref":"#/components/schemas/EvmAddress"},"to":{"$ref":"#/components/schemas/EvmAddress"},"amount":{"$ref":"#/components/schemas/AssetAmount"},"externalChainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"externalAssetDecimals":{"type":"integer"}},"required":["type","assetId","from","to","amount","externalChainId","externalAssetDecimals"],"additionalProperties":false},"XvpLocalFlow":{"type":"object","properties":{"type":{"type":"string","enum":["local"]},"assetId":{"$ref":"#/components/schemas/EvmAddress"},"from":{"$ref":"#/components/schemas/EvmAddress"},"to":{"$ref":"#/components/schemas/EvmAddress"},"amount":{"$ref":"#/components/schemas/AssetAmount"}},"required":["type","assetId","from","to","amount"],"additionalProperties":false},"CantonXvpSettlementRequestInput":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"cantonPartyId":{"$ref":"#/components/schemas/CantonPartyId_17"},"settlementId":{"type":"string","minLength":1},"authorizerParty":{"$ref":"#/components/schemas/CantonPartyId_17"},"legs":{"type":"array","items":{"$ref":"#/components/schemas/CantonXvpSettlementLegInput"},"minItems":1},"settleAt":{"anyOf":[{"$ref":"#/components/schemas/DamlTimestamp"},{"type":"null"}]},"instrumentAdmin":{"$ref":"#/components/schemas/CantonPartyId_18"}},"required":["cantonPartyId","settlementId","authorizerParty","legs","instrumentAdmin"],"additionalProperties":false},"XvpDecryptOutput":{"type":"object","properties":{"secret":{"type":"string","minLength":32,"maxLength":1024},"hashlock":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"required":["secret","hashlock"],"additionalProperties":false},"XvpDecryptBody":{"type":"object","properties":{"externalMessageAuthorization":{"type":"object","properties":{"_tag":{"type":"string","enum":["ExternalMessageAuthorization"]},"message":{"type":"string","minLength":1},"signature":{"type":"string","minLength":1}},"required":["_tag","message","signature"],"additionalProperties":false}},"additionalProperties":false},"XvpSettlementRead":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"name":{"type":"string"},"hasExternalFlows":{"type":"boolean"},"cutoffDate":{"$ref":"#/components/schemas/TimestampEncoded"},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"createdBy":{"$ref":"#/components/schemas/XvpSettlementCreator"},"executed":{"type":"boolean"},"cancelled":{"type":"boolean"},"withdrawn":{"type":"boolean"},"allApprovedAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"approvalsCount":{"type":"integer"},"cancelVotesCount":{"type":"integer"},"localSendersCount":{"type":"integer"},"localParticipantsCount":{"type":"integer"},"secretRevealedAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"secretRevealTx":{"anyOf":[{"$ref":"#/components/schemas/EthereumHashEncoded"},{"type":"null"}]},"secretRevealedBy":{"anyOf":[{"$ref":"#/components/schemas/XvpSettlementAccount"},{"type":"null"}]},"systemAddon":{"$ref":"#/components/schemas/XvpSettlementAccount"},"hashlock":{"anyOf":[{"$ref":"#/components/schemas/EthereumHashEncoded"},{"type":"null"}]},"secretRevealed":{"type":"boolean"},"secret":{"anyOf":[{"$ref":"#/components/schemas/EthereumHexEncoded"},{"type":"null"}]},"autoExecute":{"type":"boolean"},"approvals":{"type":"array","items":{"$ref":"#/components/schemas/XvpSettlementApproval"}},"cancelVotes":{"type":"array","items":{"$ref":"#/components/schemas/XvpSettlementCancelVote"}},"flows":{"type":"array","items":{"$ref":"#/components/schemas/XvpSettlementLeg"}},"hasStoredSecret":{"type":"boolean"},"userApproved":{"type":"boolean"}},"required":["id","name","hasExternalFlows","cutoffDate","createdAt","createdBy","executed","cancelled","withdrawn","allApprovedAt","approvalsCount","cancelVotesCount","localSendersCount","localParticipantsCount","secretRevealedAt","secretRevealTx","secretRevealedBy","systemAddon","secretRevealed","secret","autoExecute","approvals","cancelVotes","flows","hasStoredSecret","userApproved"],"additionalProperties":false},"XvpSettlementLeg":{"type":"object","properties":{"id":{"type":"string"},"legIndex":{"type":"integer"},"assetId":{"$ref":"#/components/schemas/EvmAddress"},"from":{"$ref":"#/components/schemas/EvmAddress"},"to":{"$ref":"#/components/schemas/EvmAddress"},"amount":{"$ref":"#/components/schemas/AssetAmount"},"externalChainId":{"type":"integer"},"isExternal":{"type":"boolean"},"externalAssetDecimals":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Decimals of an external leg's asset, as the settlement recorded them at creation; scale `amount` by them. Null on a local leg, whose decimals are the token's own."}},"required":["id","legIndex","assetId","from","to","amount","externalChainId","isExternal","externalAssetDecimals"],"additionalProperties":false},"XvpSettlementCancelVote":{"type":"object","properties":{"id":{"type":"string","minLength":1},"votedAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"active":{"type":"boolean"},"account":{"$ref":"#/components/schemas/XvpSettlementAccount"}},"required":["id","votedAt","active","account"],"additionalProperties":false},"XvpSettlementAccount":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"}},"required":["id"],"additionalProperties":false},"XvpSettlementApproval":{"type":"object","properties":{"id":{"type":"string","minLength":1},"approved":{"type":"boolean"},"timestamp":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"account":{"$ref":"#/components/schemas/XvpSettlementAccount"}},"required":["id","approved","timestamp","account"],"additionalProperties":false},"XvpSettlementCreator":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"isContract":{"type":"boolean"}},"required":["id","isContract"],"additionalProperties":false},"XvpSettlementListRow":{"anyOf":[{"$ref":"#/components/schemas/EvmXvpSettlementListItem"},{"$ref":"#/components/schemas/CantonSettlementItem"}],"discriminator":{"propertyName":"family","mapping":{"evm":"#/components/schemas/EvmXvpSettlementListItem","canton":"#/components/schemas/CantonSettlementItem"}}},"CantonSettlementItem":{"type":"object","properties":{"family":{"type":"string","enum":["canton"]},"networkIdentity":{"type":"string","minLength":1},"contractId":{"$ref":"#/components/schemas/CantonContractId"},"kind":{"type":"string","enum":["allocation","request"]},"instrumentAdmin":{"anyOf":[{"$ref":"#/components/schemas/CantonPartyId_17"},{"type":"null"}]},"authorizerParty":{"anyOf":[{"$ref":"#/components/schemas/CantonPartyId_17"},{"type":"null"}]},"authorizerProvider":{"anyOf":[{"$ref":"#/components/schemas/CantonPartyId_17"},{"type":"null"}]},"executorParties":{"type":"array","items":{"$ref":"#/components/schemas/CantonPartyId_17"}},"legs":{"type":"array","items":{"$ref":"#/components/schemas/CantonSettlementLeg"}},"settlement":{"anyOf":[{},{"type":"null"}]},"requestedAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"settleAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"expiresAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"lockExpiresAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"createdOffset":{"$ref":"#/components/schemas/CantonLedgerOffset"},"updateId":{"type":"string","minLength":1},"recordTime":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["family","networkIdentity","contractId","kind","instrumentAdmin","authorizerParty","authorizerProvider","executorParties","legs","settlement","requestedAt","settleAt","expiresAt","lockExpiresAt","createdOffset","updateId","recordTime"],"additionalProperties":false},"CantonLedgerOffset":{"type":"string","pattern":"^\\d+$","description":"Ledger offset of the update that produced the row, as a decimal string.","examples":["42"]},"CantonSettlementLeg":{"type":"object","properties":{"transferLegId":{"anyOf":[{"type":"string"},{"type":"null"}]},"side":{"anyOf":[{"type":"string"},{"type":"null"}]},"instrumentAdmin":{"anyOf":[{"$ref":"#/components/schemas/CantonPartyId_17"},{"type":"null"}]},"instrumentId":{"anyOf":[{"type":"string"},{"type":"null"}]},"senderParty":{"anyOf":[{"$ref":"#/components/schemas/CantonPartyId_17"},{"type":"null"}]},"receiverParty":{"anyOf":[{"$ref":"#/components/schemas/CantonPartyId_17"},{"type":"null"}]},"amount":{"anyOf":[{"$ref":"#/components/schemas/CantonAmount"},{"type":"null"}]}},"required":["transferLegId","side","instrumentAdmin","instrumentId","senderParty","receiverParty","amount"],"additionalProperties":false},"EvmXvpSettlementListItem":{"type":"object","properties":{"family":{"type":"string","enum":["evm"]},"id":{"$ref":"#/components/schemas/EvmAddress"},"name":{"type":"string"},"hasExternalFlows":{"type":"boolean"},"cutoffDate":{"$ref":"#/components/schemas/TimestampEncoded"},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"createdBy":{"$ref":"#/components/schemas/XvpSettlementCreator"},"secretRevealTx":{"anyOf":[{"$ref":"#/components/schemas/EthereumHashEncoded"},{"type":"null"}]},"executed":{"type":"boolean"},"cancelled":{"type":"boolean"},"withdrawn":{"type":"boolean"},"allApprovedAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"approvalsCount":{"type":"integer"},"cancelVotesCount":{"type":"integer"},"localSendersCount":{"type":"integer"},"localParticipantsCount":{"type":"integer"},"userApproved":{"type":"boolean"}},"required":["family","id","name","hasExternalFlows","cutoffDate","createdAt","createdBy","secretRevealTx","executed","cancelled","withdrawn","allApprovedAt","approvalsCount","cancelVotesCount","localSendersCount","localParticipantsCount","userApproved"],"additionalProperties":false},"XvpSettlementListFilter":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000},"participant":{"$ref":"#/components/schemas/EvmAddress"},"systemAddon":{"$ref":"#/components/schemas/EvmAddress"},"family":{"$ref":"#/components/schemas/ChainFamily"},"kind":{"type":"string","enum":["allocation","request"]}},"additionalProperties":false},"ChainFamily":{"type":"string","enum":["evm","canton"],"description":"Chain family discriminator for wallet identity, payloads, and signing requests"},"ReportingTransactionConfirmation":{"type":"object","properties":{"id":{"type":"string","pattern":"^0x[0-9a-f]{64}-(?:0|[1-9][0-9]{0,8})-0x[0-9a-f]{40}$","description":"Identifies one confirmation: the movement's transaction hash, its log index and the confirmed wallet, joined by hyphens in lowercase hex.","examples":["0xabababababababababababababababababababababababababababababababab-3-0xcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd"]},"chainId":{"type":"integer"},"account":{"$ref":"#/components/schemas/EvmAddress"},"kind":{"type":"string","enum":["transfer","mint","burn"],"description":"`mint` issues to the wallet, `burn` redeems from it, and `transfer` moves between two wallets."},"direction":{"type":"string","enum":["in","out","self"],"description":"`in` when the wallet received, `out` when it sent, and `self` when it sent to itself."},"counterparty":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}],"description":"The wallet on the other side of a transfer. Null for a mint, a burn or a transfer to itself."},"token":{"$ref":"#/components/schemas/EvmAddress"},"symbol":{"type":"string"},"decimals":{"type":"integer"},"amount":{"type":"string","minLength":1,"description":"The quantity moved, in the token's base units."},"blockNumber":{"type":"string","minLength":1,"description":"The block that holds the movement. It is at or below the chain's final indexed block."},"logIndex":{"type":"integer"},"transactionHash":{"$ref":"#/components/schemas/EthereumHashEncoded"},"occurredAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["id","chainId","account","kind","direction","counterparty","token","symbol","decimals","amount","blockNumber","logIndex","transactionHash","occurredAt"],"additionalProperties":false,"description":"Confirms one final token movement on one of the caller's wallets. A movement the chain can still undo has no confirmation."},"CollectionPaginationLinks":{"type":"object","properties":{"self":{"type":"string"},"first":{"type":"string"},"prev":{"anyOf":[{"type":"string"},{"type":"null"}]},"next":{"anyOf":[{"type":"string"},{"type":"null"}]},"last":{"type":"string"}},"required":["self","first","prev","next","last"],"additionalProperties":false},"CollectionResponseMeta":{"type":"object","properties":{"total":{"type":"integer"},"facets":{"type":"object","additionalProperties":{"type":"array","items":{"$ref":"#/components/schemas/CollectionFacetEntry"}}}},"required":["total"],"additionalProperties":false},"CollectionFacetEntry":{"type":"object","properties":{"value":{"type":"string"},"count":{"type":"integer","minimum":0}},"required":["value","count"],"additionalProperties":false},"PersistableBlockHeightEncoded":{"type":"string","pattern":"^-?\\d+$"},"ReportingShareholderListSummary":{"type":"object","properties":{"chainId":{"type":"integer"},"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"name":{"type":"string"},"symbol":{"type":"string"},"decimals":{"type":"integer"},"recordBlock":{"type":"string","minLength":1,"description":"The block the balances are read at. Every holder's balance is the one standing after this block."},"finalBlock":{"type":"string","minLength":1,"description":"The newest final block the platform has indexed. The record block is never later than this one."},"balancesSince":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}],"description":"The time of the newest change to this security's balances at or before the record block. The balances have stood unchanged since then. Null when no balance of the security has changed up to the record block."},"holderCount":{"type":"integer","description":"The number of wallets holding a balance above zero."},"sharesHeld":{"type":"string","minLength":1,"description":"The sum of every holder's balance, in the security's own units."},"totalSupply":{"type":"string","minLength":1,"description":"The security's total supply at the record block, in the security's own units."},"reconciled":{"type":"boolean","description":"True when the holders' balances add up to the total supply. False means a holder is missing from the list; do not send it."},"formats":{"type":"array","items":{"type":"string","enum":["csv","xlsx","pdf"]}}},"required":["chainId","tokenAddress","name","symbol","decimals","recordBlock","finalBlock","balancesSince","holderCount","sharesHeld","totalSupply","reconciled","formats"],"additionalProperties":false,"description":"One security's shareholder list at a record block: who holds it, how much, and whether it adds up."},"ReportingInvestorStatementDownload":{"type":"object","properties":{"statementId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"},"format":{"type":"string","enum":["csv","pdf"]},"downloadUrl":{"type":"string","minLength":1,"description":"A short-lived URL for the file itself."},"expiresAt":{"$ref":"#/components/schemas/TimestampEncoded"},"digest":{"type":"string","minLength":1,"description":"The SHA-256 of the bytes behind `downloadUrl`."},"contentLength":{"type":"integer"},"mimeType":{"type":"string","minLength":1}},"required":["statementId","format","downloadUrl","expiresAt","digest","contentLength","mimeType"],"additionalProperties":false,"description":"A short-lived download for one edition of an investor statement."},"ReportingInvestorStatement":{"type":"object","properties":{"id":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"},"chainId":{"type":"integer"},"account":{"$ref":"#/components/schemas/EvmAddress"},"periodStart":{"$ref":"#/components/schemas/TimestampEncoded"},"periodEnd":{"$ref":"#/components/schemas/TimestampEncoded"},"openingBlock":{"type":"string","minLength":1,"description":"The last indexed block before the period. Opening balances are read at this block."},"closingBlock":{"type":"string","minLength":1,"description":"The last indexed block inside the period. Closing balances are read at this block."},"reconciled":{"type":"boolean","description":"True when, for every security, the opening balance plus the movements listed equals the closing balance. False means the statement is incomplete and should not be relied on."},"formats":{"type":"array","items":{"type":"string","enum":["csv","pdf"]}},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["id","chainId","account","periodStart","periodEnd","openingBlock","closingBlock","reconciled","formats","createdAt"],"additionalProperties":false,"description":"One monthly statement for one of the caller's wallets on one chain."},"ReportingCapabilities":{"type":"object","properties":{"reportKinds":{"type":"array","items":{"type":"string","enum":["holder-register","transfer-journal","settlement-and-fails","corporate-actions","distribution-waterfall","reserve-and-asset-backing","fees-and-charges","fee-period-closes","compliance-decision-log","investor-eligibility-register","operator-action-trail"]}},"enabled":{"type":"boolean"},"surfaces":{"$ref":"#/components/schemas/ReportingSurfaces"}},"required":["reportKinds","enabled","surfaces"],"additionalProperties":false},"ReportingSurfaces":{"type":"object","properties":{"anchors":{"type":"boolean"},"filings":{"type":"boolean"},"obligations":{"type":"boolean"},"calendar":{"type":"boolean"},"trail":{"type":"boolean"}},"required":["anchors","filings","obligations","calendar","trail"],"additionalProperties":false,"description":"Which reporting surfaces this deployment serves."},"ReportingTrailEntry":{"type":"object","properties":{"id":{"type":"string","minLength":1},"requestId":{"anyOf":[{"type":"string"},{"type":"null"}]},"kind":{"type":"string","enum":["mutation","sensitive-read"]},"actorUserId":{"anyOf":[{"$ref":"#/components/schemas/UserId"},{"type":"null"}]},"roleAtTime":{"anyOf":[{"type":"string"},{"type":"null"}]},"organizationId":{"anyOf":[{"$ref":"#/components/schemas/OrganizationId"},{"type":"null"}]},"participantId":{"anyOf":[{"$ref":"#/components/schemas/ParticipantId"},{"type":"null"}]},"authSource":{"anyOf":[{"type":"string"},{"type":"null"}]},"route":{"type":"string","minLength":1},"method":{"type":"string","minLength":1},"pathTemplate":{"type":"string"},"target":{"anyOf":[{"type":"string"},{"type":"null"}]},"reason":{"anyOf":[{"type":"string"},{"type":"null"}]},"startedAt":{"$ref":"#/components/schemas/TimestampEncoded"},"finishedAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"outcome":{"type":"string","enum":["pending","success","failure"]},"status":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"required":["id","requestId","kind","actorUserId","roleAtTime","organizationId","participantId","authSource","route","method","pathTemplate","target","reason","startedAt","finishedAt","outcome","status"],"additionalProperties":false},"ReportingFrozenTimestampEncoded_2":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string","description":"Epoch as a digit string, or a readable datetime.","format":"timestamp"}]},"ReportingAnchorWriteInput":{"type":"object","properties":{"chainId":{"$ref":"#/components/schemas/PersistableChainIdEncoded_1"},"subject":{"$ref":"#/components/schemas/EvmAddress"},"parts":{"type":"array","items":{"$ref":"#/components/schemas/ReportingAnchorVerificationPart"}},"documentType":{"type":"string","enum":["regulatory-filing","investor-report"],"description":"The coarse kind of document the entry declares. A closed set, never free text: it lands on a public chain forever."},"label":{"type":"string","minLength":1,"description":"A short human word for this kind of document. Free text, and the one field on this request that is: it is published permanently and publicly, so it is refused when it contains an organization identifier, or any character that could carry a path or a URL. Never a filing reference, a deal name or a counterparty.","examples":["Board resolution"]},"disclosureConfirmed":{"type":"boolean","description":"Confirmation that the caller understands the entry is permanent and public and can never be corrected, only superseded. Anything but `true` refuses."}},"required":["chainId","subject","parts","documentType","label","disclosureConfirmed"],"additionalProperties":false,"examples":[{"chainId":8453,"subject":"0x5c610E27CB09EcFDB3eFEE607E7dD133226D316c","parts":[{"digest":"0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb","contentLength":1024}],"documentType":"regulatory-filing","label":"Board resolution","disclosureConfirmed":true}]},"ReportingAnchorVerificationPart":{"type":"object","properties":{"digest":{"type":"string","minLength":1,"description":"SHA-256 of this part's bytes exactly as received, as 64 hex characters with or without a `0x` prefix.","examples":["0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"]},"contentLength":{"type":"integer","minimum":0,"description":"Length of this part in bytes. At most 4294967295, the ceiling one artifact part is written and read at.","examples":[1024]}},"required":["digest","contentLength"],"additionalProperties":false},"PersistableChainIdEncoded_1":{"type":"integer","exclusiveMinimum":0,"maximum":2147483647,"description":"EVM chain identifier.","examples":[11155111]},"ReportingDocumentAnchor":{"type":"object","properties":{"entryId":{"type":"string","minLength":1},"issuerAddress":{"type":"string"},"subjectAddress":{"type":"string"},"digest":{"type":"string"},"documentType":{"type":"string"},"label":{"type":"string"},"registryAddress":{"type":"string"},"transactionHash":{"type":"string"},"blockNumber":{"type":"string"},"anchoredAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["entryId","issuerAddress","subjectAddress","digest","documentType","label","registryAddress","transactionHash","blockNumber","anchoredAt"],"additionalProperties":false,"description":"One entry in a system's document anchor registry. `entryId` is the disambiguator: two filings of one organization can legitimately share a digest, and only the entry id separates them. `label` is a hint the issuer chose and is never the evidence; the digest is."},"ReportingAnchorVerificationInput":{"type":"object","properties":{"parts":{"type":"array","items":{"$ref":"#/components/schemas/ReportingAnchorVerificationPart"}},"issuer":{"$ref":"#/components/schemas/EvmAddress"},"chainId":{"$ref":"#/components/schemas/PersistableChainIdEncoded_1"}},"required":["parts","issuer"],"additionalProperties":false,"examples":[{"parts":[{"digest":"0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb","contentLength":1024}],"issuer":"0x5c610E27CB09EcFDB3eFEE607E7dD133226D316c","chainId":8453}]},"ReportingAnchorPageLimitEncoded_1":{"anyOf":[{"$ref":"#/components/schemas/ReportingAnchorPageLimitEncoded"},{"type":"null"}]},"ReportingAnchorPageLimitEncoded":{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},"PersistableChainIdEncoded":{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},"ReportingSubmission":{"type":"object","properties":{"id":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"},"filingPeriodId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"},"organizationId":{"anyOf":[{"$ref":"#/components/schemas/OrganizationId"},{"type":"null"}]},"attemptSequence":{"type":"integer"},"state":{"type":"string","enum":["queued","generating","generation_failed","discarded","generated","validating","blocked","ready_for_review","pending_approval","approved","submitted","acknowledged","unacknowledged","published","rejected","superseded"]},"actionType":{"type":"string","enum":["new","modify","correct","terminate","error","revive"]},"correctsSubmissionId":{"anyOf":[{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"},{"type":"null"}]},"artifactDigest":{"anyOf":[{"type":"string","pattern":"^[0-9a-f]{64}$"},{"type":"null"}]},"rowVersion":{"type":"integer"},"makerUserId":{"anyOf":[{"$ref":"#/components/schemas/UserId"},{"type":"null"}]},"checkerUserId":{"anyOf":[{"$ref":"#/components/schemas/UserId"},{"type":"null"}]},"approvedAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"submittedAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"ackReceiptReference":{"anyOf":[{"type":"string"},{"type":"null"}]},"ackAuthorityTimestamp":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"publishedAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"publicationReference":{"anyOf":[{"type":"string"},{"type":"null"}]},"anchorState":{"type":"string","enum":["not_requested","pending","confirmed","unconfirmed"]},"anchorDigest":{"anyOf":[{"type":"string","pattern":"^[0-9a-f]{64}$"},{"type":"null"}]},"anchorReference":{"anyOf":[{"type":"string"},{"type":"null"}]},"anchorEntryId":{"anyOf":[{"type":"string"},{"type":"null"}]},"anchorRegistryAddress":{"anyOf":[{"type":"string"},{"type":"null"}]},"anchorChainId":{"anyOf":[{"$ref":"#/components/schemas/ChainIdEncoded_1"},{"type":"null"}]},"anchoredAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]}},"required":["id","filingPeriodId","organizationId","attemptSequence","state","actionType","correctsSubmissionId","artifactDigest","rowVersion","makerUserId","checkerUserId","approvedAt","submittedAt","ackReceiptReference","ackAuthorityTimestamp","publishedAt","publicationReference","anchorState","anchorDigest","anchorReference","anchorEntryId","anchorRegistryAddress","anchorChainId","anchoredAt"],"additionalProperties":false},"ReportingFrozenTimestampEncoded":{"anyOf":[{"type":"string","description":"Epoch as a digit string, or a readable datetime.","format":"timestamp"},{"type":"number","minimum":0}]},"ReportingSubmissionArtifact":{"type":"object","properties":{"status":{"type":"string","enum":["available","erased"],"description":"`available` carries one download per stored part. `erased` carries no download and, where one was recorded, the tombstone: the filing existed, its bytes are gone, and its digest is still on chain. A submission that never had an artifact stored is neither, and answers `409 ARTIFACT_UNAVAILABLE`."},"parts":{"type":"array","items":{"$ref":"#/components/schemas/ReportingSubmissionArtifactPart"},"description":"Every stored part, in manifest order, or empty when `status` is `erased`. A split artifact is returned as its parts and never assembled into one object: the anchored digest is the manifest digest computed across them, so a concatenated file would hash to nothing that was ever committed."},"tombstone":{"anyOf":[{"$ref":"#/components/schemas/ReportingSubmissionArtifactTombstone"},{"type":"null"}],"description":"Null while `status` is `available`. It can also be null when `status` is `erased`: the erasure marker is committed before the first delete and the tombstone only after the last one is confirmed, so a run interrupted between them leaves the objects gone with no record yet."},"legalHold":{"type":"boolean","description":"Whether an unreleased legal hold stands on this filing. A hold never withholds the download: it is an instruction that the filing must not be destroyed while a matter is live, so it is the reason the bytes are still here."},"artifactDigest":{"anyOf":[{"type":"string"},{"type":"null"}]},"anchorDigest":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["status","parts","tombstone","legalHold","artifactDigest","anchorDigest"],"additionalProperties":false,"description":"What a caller may do with a filing's stored bytes right now. `artifactDigest` is the manifest digest the filing is approved and anchored against; each part's `partDigest` is the SHA-256 of the bytes that part downloads. Feed every part's `partDigest` and `contentLength` straight to `POST /v2/reporting/anchors/verify`, in `partIndex` order, to recompute the manifest digest; no conversion is needed."},"ReportingSubmissionArtifactTombstone":{"type":"object","properties":{"retainedDigest":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The digest kept after the objects went. It is a hash of personal data, which is why `retentionBasis` is recorded beside it rather than implied."},"retentionBasis":{"type":"string","minLength":1,"description":"The authority under which the digest was retained once the artifact itself was destroyed."},"objectsDeleted":{"type":"integer","description":"How many of the filing's stored objects are confirmed absent. Coverage, not a count of delete calls: a tombstone is only written once every key is confirmed gone, however many passes reaching that took."},"tombstonedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["retainedDigest","retentionBasis","objectsDeleted","tombstonedAt"],"additionalProperties":false,"description":"What survived an erasure, and under which authority. Returned instead of the parts once a filing's stored objects are gone."},"ReportingSubmissionArtifactPart":{"type":"object","properties":{"partIndex":{"type":"integer","description":"Position of this part in the artifact, from zero. The order the manifest digest is computed in, so send the parts to `POST /v2/reporting/anchors/verify` in it."},"downloadUrl":{"type":"string","minLength":1},"expiresAt":{"$ref":"#/components/schemas/TimestampEncoded"},"partDigest":{"type":"string","minLength":1},"contentLength":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Size of this part in bytes, the number `POST /v2/reporting/anchors/verify` takes in `parts[].contentLength`. Null when the stored part records no size."},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["partIndex","downloadUrl","expiresAt","partDigest","contentLength","mimeType"],"additionalProperties":false,"description":"One short-lived download for one stored part of a filing artifact. `partDigest` is the SHA-256 of the bytes you download."},"ReportingSubmissionCollectionFilters":{"type":"object","properties":{"id":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"filingPeriodId":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"state":{"anyOf":[{"type":"string","enum":["queued","generating","generation_failed","discarded","generated","validating","blocked","ready_for_review","pending_approval","approved","submitted","acknowledged","unacknowledged","published","rejected","superseded"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"actionType":{"anyOf":[{"type":"string","enum":["new","modify","correct","terminate","error","revive"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"anchorState":{"anyOf":[{"type":"string","enum":["not_requested","pending","confirmed","unconfirmed"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"createdAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]}},"additionalProperties":false},"ReportingAnchorSetting":{"type":"object","properties":{"id":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"},"obligationId":{"type":"string","minLength":1},"organizationId":{"anyOf":[{"$ref":"#/components/schemas/OrganizationId"},{"type":"null"}]},"enabled":{"type":"boolean"},"issuer":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"claimTopic":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"chainId":{"anyOf":[{"$ref":"#/components/schemas/ChainIdEncoded_1"},{"type":"null"}]},"documentType":{"anyOf":[{"type":"string","enum":["regulatory-filing","investor-report"]},{"type":"null"}]},"label":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"severity":{"anyOf":[{"type":"string","enum":["error","warning"]},{"type":"null"}]},"disclosureConfirmedAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"rationale":{"type":"string","minLength":1,"examples":["Signing key withdrawn after rotation."]},"changedBy":{"$ref":"#/components/schemas/UserId"},"changedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["id","obligationId","organizationId","enabled","issuer","claimTopic","chainId","documentType","label","severity","disclosureConfirmedAt","rationale","changedBy","changedAt"],"additionalProperties":false},"ReportingAnchorSettingAct":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["Enable"]},"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"issuer":{"$ref":"#/components/schemas/EvmAddress"},"documentType":{"type":"string","enum":["regulatory-filing","investor-report"]},"severity":{"type":"string","enum":["error","warning"]},"label":{"type":"string","minLength":1},"rationale":{"type":"string","minLength":1},"disclosureConfirmed":{"type":"boolean"}},"required":["_tag","chainId","issuer","documentType","severity","label","rationale","disclosureConfirmed"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["Disable"]},"rationale":{"type":"string","minLength":1}},"required":["_tag","rationale"],"additionalProperties":false}]},"ReportingGenerationHandle":{"type":"object","properties":{"submissionId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"},"executionId":{"type":"string","minLength":1,"examples":["reporting-generation-1"]}},"required":["submissionId","executionId"],"additionalProperties":false},"ReportingSubmissionAct":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["Generate"]}},"required":["_tag"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["SignOff"]},"digest":{"type":"string","pattern":"^[0-9a-f]{64}$"},"expectedRowVersion":{"type":"integer"}},"required":["_tag","digest","expectedRowVersion"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["Submit"]}},"required":["_tag"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["Reject"]},"reason":{"type":"string","minLength":1}},"required":["_tag","reason"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["Replace"]},"actionType":{"type":"string","enum":["new","modify","correct","terminate","error","revive"]}},"required":["_tag","actionType"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["Acknowledge"]},"receiptReference":{"type":"string","minLength":1},"authorityTimestamp":{"$ref":"#/components/schemas/TimestampEncoded"},"rawPayloadRef":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]}},"required":["_tag","receiptReference","authorityTimestamp"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["Publish"]},"publicationReference":{"type":"string","minLength":1},"digest":{"type":"string","pattern":"^[0-9a-f]{64}$"},"expectedRowVersion":{"type":"integer"}},"required":["_tag","publicationReference","digest","expectedRowVersion"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["Terminate"]}},"required":["_tag"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["Revive"]}},"required":["_tag"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["OverrideException"]},"rationale":{"type":"string","minLength":1}},"required":["_tag","rationale"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["Waive"]},"rationale":{"type":"string","minLength":1}},"required":["_tag","rationale"],"additionalProperties":false}]},"ReportingFilingPeriod":{"type":"object","properties":{"id":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"},"obligationId":{"type":"string","minLength":1},"obligationVersionId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"},"obligationName":{"type":"string","minLength":1},"regime":{"type":"string","minLength":1},"organizationId":{"anyOf":[{"$ref":"#/components/schemas/OrganizationId"},{"type":"null"}]},"state":{"type":"string","enum":["scheduled","waiting_for_finality","open","overdue","fulfilled","waived"]},"referenceStart":{"$ref":"#/components/schemas/TimestampEncoded"},"referenceEnd":{"$ref":"#/components/schemas/TimestampEncoded"},"referenceZone":{"type":"string","minLength":1},"fiscalLabel":{"anyOf":[{"type":"string"},{"type":"null"}]},"remittanceAt":{"$ref":"#/components/schemas/TimestampEncoded"},"fulfilledLate":{"type":"boolean"},"coveredFamilies":{"type":"array","items":{"$ref":"#/components/schemas/ChainFamily"},"minItems":1},"familyCoverage":{"type":"array","items":{"$ref":"#/components/schemas/ReportingFamilyCoverage"},"minItems":1},"latestSubmissionId":{"anyOf":[{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"},{"type":"null"}]},"latestSubmissionState":{"anyOf":[{"type":"string","enum":["queued","generating","generation_failed","discarded","generated","validating","blocked","ready_for_review","pending_approval","approved","submitted","acknowledged","unacknowledged","published","rejected","superseded"]},{"type":"null"}]}},"required":["id","obligationId","obligationVersionId","obligationName","regime","organizationId","state","referenceStart","referenceEnd","referenceZone","fiscalLabel","remittanceAt","fulfilledLate","coveredFamilies","familyCoverage","latestSubmissionId","latestSubmissionState"],"additionalProperties":false},"ReportingFamilyCoverage":{"anyOf":[{"type":"object","properties":{"family":{"$ref":"#/components/schemas/ChainFamily"},"state":{"type":"string","enum":["pending"]}},"required":["family","state"],"additionalProperties":false},{"type":"object","properties":{"family":{"$ref":"#/components/schemas/ChainFamily"},"state":{"type":"string","enum":["covered"]}},"required":["family","state"],"additionalProperties":false},{"type":"object","properties":{"family":{"$ref":"#/components/schemas/ChainFamily"},"state":{"type":"string","enum":["refused"]},"reasons":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["family","state","reasons"],"additionalProperties":false},{"type":"object","properties":{"family":{"$ref":"#/components/schemas/ChainFamily"},"state":{"type":"string","enum":["unconfirmed"]},"reason":{"type":"string","minLength":1}},"required":["family","state","reason"],"additionalProperties":false}]},"ReportingObligation":{"type":"object","properties":{"id":{"type":"string","minLength":1},"organizationId":{"anyOf":[{"$ref":"#/components/schemas/OrganizationId"},{"type":"null"}]},"isSystem":{"type":"boolean"},"name":{"type":"string","minLength":1},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"regime":{"type":"string","minLength":1},"reportingEntityLei":{"anyOf":[{"type":"string"},{"type":"null"}]},"publishedVersion":{"anyOf":[{"type":"integer"},{"type":"null"}]},"cadence":{"anyOf":[{"type":"string"},{"type":"null"}]},"disabledAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"editable":{"type":"boolean"},"anchoringEnabled":{"type":"boolean"},"anchorSeverities":{"type":"array","items":{"type":"string","enum":["error","warning"]}}},"required":["id","organizationId","isSystem","name","description","regime","reportingEntityLei","publishedVersion","cadence","disabledAt","editable","anchoringEnabled","anchorSeverities"],"additionalProperties":false},"ReportingObligationVersion":{"type":"object","properties":{"id":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"},"obligationId":{"type":"string","minLength":1},"version":{"type":"integer","minimum":1},"publishedAt":{"$ref":"#/components/schemas/TimestampEncoded"},"publishedBy":{"anyOf":[{"$ref":"#/components/schemas/UserId"},{"type":"null"}]},"config":{"$ref":"#/components/schemas/ReportingObligationConfig"}},"required":["id","obligationId","version","publishedAt","publishedBy","config"],"additionalProperties":false},"ReportingObligationConfig":{"type":"object","properties":{"scopeExpression":{"$ref":"#/components/schemas/ReportingObligationScope"},"dataPointSet":{"type":"array","items":{"$ref":"#/components/schemas/ReportingDataPoint"}},"derivationRules":{"type":"array","items":{"$ref":"#/components/schemas/ReportingDerivationRule"}},"validationRules":{"type":"array","items":{"$ref":"#/components/schemas/ReportingValidationRule"}},"reportSet":{"type":"array","items":{"type":"string","enum":["holder-register","transfer-journal","settlement-and-fails","corporate-actions","distribution-waterfall","reserve-and-asset-backing","fees-and-charges","fee-period-closes","compliance-decision-log","investor-eligibility-register","operator-action-trail"]},"minItems":1},"cadence":{"type":"string","enum":["daily","weekly","monthly","quarterly","semiannual","annual","eventDriven"]},"deadlineRule":{"$ref":"#/components/schemas/ReportingDeadlineRule"},"filerCalendar":{"type":"string","minLength":1},"authorityCalendar":{"type":"string","minLength":1},"outputFormat":{"type":"string","enum":["csv","xlsx","zip","json","xml"]},"reportFormat":{"anyOf":[{"$ref":"#/components/schemas/ReportingReportFormat"},{"type":"null"}]},"fulfilmentMode":{"type":"string","enum":["authority_acknowledgement","publication"]},"ackSlaHours":{"anyOf":[{"type":"integer","exclusiveMinimum":0},{"type":"null"}]},"requiresMakerChecker":{"type":"boolean"},"operatorApprovalAllowed":{"type":"boolean"},"acceptsNilReturn":{"type":"boolean"},"retentionClass":{"type":"string","enum":["five-years","seven-years","ten-years","indefinite"]},"reachBackMonths":{"type":"integer","minimum":0},"deadlineAuthoredBy":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"deadlineCitation":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]}},"required":["scopeExpression","dataPointSet","derivationRules","validationRules","reportSet","cadence","deadlineRule","filerCalendar","authorityCalendar","outputFormat","fulfilmentMode","requiresMakerChecker","operatorApprovalAllowed","acceptsNilReturn","retentionClass","reachBackMonths"],"additionalProperties":false},"ReportingReportFormat":{"anyOf":[{"$ref":"#/components/schemas/ReportingTabularReportFormat"}],"description":"A filing authority's file layout, versioned with the obligation. Each member names the adapter that renders it; its files land in the filing artifact under authority/."},"ReportingTabularReportFormat":{"type":"object","properties":{"adapter":{"type":"string","enum":["tabular"]},"files":{"type":"array","items":{"$ref":"#/components/schemas/ReportingTabularFile"},"minItems":1}},"required":["adapter","files"],"additionalProperties":false},"ReportingTabularFile":{"type":"object","properties":{"name":{"type":"string"},"rows":{"$ref":"#/components/schemas/ReportingTabularRows"},"columns":{"type":"array","items":{"$ref":"#/components/schemas/ReportingTabularColumn"},"minItems":1}},"required":["name","rows","columns"],"additionalProperties":false,"description":"One authority file. Its extension decides the encoding: .csv or .xlsx, with the sheet named after the file."},"ReportingTabularColumn":{"type":"object","properties":{"header":{"type":"string","minLength":1},"value":{"$ref":"#/components/schemas/ReportingTabularColumnValue"}},"required":["header","value"],"additionalProperties":false},"ReportingTabularColumnValue":{"anyOf":[{"type":"object","properties":{"source":{"type":"string","enum":["dataPoint"]},"identifier":{"type":"string","minLength":1}},"required":["source","identifier"],"additionalProperties":false},{"type":"object","properties":{"source":{"type":"string","enum":["field"]},"field":{"type":"string","minLength":1}},"required":["source","field"],"additionalProperties":false},{"type":"object","properties":{"source":{"type":"string","enum":["constant"]},"text":{"type":"string"}},"required":["source","text"],"additionalProperties":false}]},"ReportingTabularRows":{"anyOf":[{"type":"object","properties":{"from":{"type":"string","enum":["dataPoints"]}},"required":["from"],"additionalProperties":false},{"type":"object","properties":{"from":{"type":"string","enum":["report"]},"report":{"type":"string","enum":["holder-register","transfer-journal","settlement-and-fails","corporate-actions","distribution-waterfall","reserve-and-asset-backing","fees-and-charges","fee-period-closes","compliance-decision-log","investor-eligibility-register","operator-action-trail"]},"family":{"$ref":"#/components/schemas/ChainFamily"}},"required":["from","report","family"],"additionalProperties":false}],"description":"Where a file's rows come from: one row of the derived data points, or one row per row of one chain family's rendered report."},"ReportingDeadlineRule":{"type":"object","properties":{"anchor":{"type":"string","enum":["periodStart","periodEnd","referenceDate","remittanceDate","classifiedAt"]},"offset":{"type":"integer"},"unit":{"type":"string","enum":["businessDays","calendarDays","months","hours"]},"calendars":{"type":"array","prefixItems":[{"type":"string","minLength":1},{"type":"string","minLength":1}],"maxItems":2,"minItems":2},"roll":{"type":"string","enum":["following","modifiedFollowing","preceding"]},"cutoffLocalTime":{"type":"string"},"timeZone":{"type":"string","minLength":1}},"required":["anchor","offset","unit","calendars","roll","cutoffLocalTime","timeZone"],"additionalProperties":false},"ReportingValidationRule":{"type":"object","properties":{"identity":{"type":"string","minLength":1},"version":{"type":"integer","minimum":1},"severity":{"type":"string","enum":["blocking","warning","informational"]},"expression":{"type":"string","minLength":1},"message":{"type":"string","minLength":1},"effectiveFrom":{"type":"string","minLength":1},"effectiveTo":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]}},"required":["identity","version","severity","expression","message","effectiveFrom"],"additionalProperties":false},"ReportingDerivationRule":{"type":"object","properties":{"dataPoint":{"type":"string","minLength":1},"source":{"type":"string","enum":["holder-register","transfer-journal","settlement-and-fails","corporate-actions","distribution-waterfall","reserve-and-asset-backing","fees-and-charges","fee-period-closes","compliance-decision-log","investor-eligibility-register","operator-action-trail"]},"field":{"type":"string","minLength":1},"aggregate":{"anyOf":[{"type":"string","enum":["none","sum","count","min","max","last"]},{"type":"null"}]}},"required":["dataPoint","source","field"],"additionalProperties":false},"ReportingDataPoint":{"type":"object","properties":{"identifier":{"type":"string","minLength":1},"label":{"type":"string","minLength":1},"type":{"type":"string","enum":["string","integer","decimal","boolean","date","instant"]},"denomination":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"dimensions":{"type":"array","items":{"type":"string","minLength":1}}},"required":["identifier","label","type","dimensions"],"additionalProperties":false},"ReportingObligationScope":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["self"]}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["organizations"]},"organizationIds":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["kind","organizationIds"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["jurisdictions"]},"jurisdictions":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["kind","jurisdictions"],"additionalProperties":false}]},"ReportingObligationDraft":{"type":"object","properties":{"obligationId":{"type":"string","minLength":1},"name":{"type":"string","minLength":1,"maxLength":200},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"regime":{"type":"string","minLength":1,"maxLength":64},"reportingEntityLei":{"anyOf":[{"$ref":"#/components/schemas/LeiEncoded"},{"type":"null"}]},"config":{"$ref":"#/components/schemas/ReportingObligationConfig"}},"required":["obligationId","name","regime","config"],"additionalProperties":false},"LeiEncoded":{"type":"string"},"ParticipantRolesRow":{"type":"object","properties":{"participantId":{"anyOf":[{"type":"string"},{"type":"null"}]},"displayName":{"type":"string"},"signingAddress":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"operationsAddress":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"accountAddress":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"isContract":{"type":"boolean"},"eoaRoles":{"type":"array","items":{"$ref":"#/components/schemas/AssetAccessControlRole_1"}},"smartWalletRoles":{"type":"array","items":{"$ref":"#/components/schemas/AssetAccessControlRole_1"}},"missingRoles":{"type":"array","items":{"$ref":"#/components/schemas/AssetAccessControlRole_1"}},"drift":{"type":"boolean"}},"required":["participantId","displayName","signingAddress","operationsAddress","accountAddress","isContract","eoaRoles","smartWalletRoles","missingRoles","drift"],"additionalProperties":false},"ActionRow":{"type":"object","properties":{"id":{"type":"string","minLength":1},"actionType":{"type":"string","enum":["MatureBond","RedeemBond","ClaimYield","ClaimDividend","ApproveMaturityAllowance","ApproveYieldAllowance","ApproveXvPSettlement","ExecuteXvPSettlement","UpdateKYCData","MultisigApproval","custody-pending","CheckerApproval","CastVote","CastPollBallot","ActivateVotingPower","MultisigInvite"]},"name":{"type":"string"},"target":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"tokenAddress":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"activeAt":{"$ref":"#/components/schemas/TimestampEncoded"},"status":{"type":"string","enum":["PENDING","UPCOMING","EXECUTED","EXPIRED"]},"executedAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"executedBy":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"expiresAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"source":{"anyOf":[{"type":"string","enum":["on-chain","off-chain"]},{"type":"null"}]},"kycMetadata":{"anyOf":[{"$ref":"#/components/schemas/KycActionMetadata"},{"type":"null"}]},"multisigMetadata":{"anyOf":[{"$ref":"#/components/schemas/MultisigActionMetadata"},{"type":"null"}]},"custodyMetadata":{"anyOf":[{"$ref":"#/components/schemas/CustodyPendingActionMetadata"},{"type":"null"}]},"checkerMetadata":{"anyOf":[{"$ref":"#/components/schemas/CheckerApprovalActionMetadata"},{"type":"null"}]},"governanceMetadata":{"anyOf":[{"$ref":"#/components/schemas/GovernanceActionMetadata"},{"type":"null"}]},"dividendMetadata":{"anyOf":[{"$ref":"#/components/schemas/DividendActionMetadata"},{"type":"null"}]},"multisigInviteMetadata":{"anyOf":[{"$ref":"#/components/schemas/MultisigInviteActionMetadata"},{"type":"null"}]}},"required":["id","actionType","name","target","tokenAddress","activeAt","status","executedAt","executedBy","expiresAt"],"additionalProperties":false},"MultisigInviteActionMetadata":{"type":"object","properties":{"inviteId":{"type":"string"},"draftName":{"type":"string"},"inviteUrl":{"type":"string"},"weight":{"type":"string"},"threshold":{"type":"string"}},"required":["inviteId","draftName","inviteUrl","weight","threshold"],"additionalProperties":false},"DividendActionMetadata":{"type":"object","properties":{"dividendId":{"type":"string","minLength":1}},"required":["dividendId"],"additionalProperties":false},"GovernanceActionMetadata":{"type":"object","properties":{"governorAddress":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"proposalId":{"anyOf":[{"type":"string"},{"type":"null"}]},"pollId":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["governorAddress","proposalId","pollId"],"additionalProperties":false},"CheckerApprovalActionMetadata":{"type":"object","properties":{"amount":{"anyOf":[{"type":"string"},{"type":"null"}]},"counterparty":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"counterpartyCount":{"anyOf":[{"type":"integer"},{"type":"null"}]},"additionalCallCount":{"anyOf":[{"type":"integer"},{"type":"null"}]},"tokenSymbol":{"anyOf":[{"type":"string"},{"type":"null"}]},"tokenDecimals":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"required":["amount","counterparty","counterpartyCount","additionalCallCount","tokenSymbol","tokenDecimals"],"additionalProperties":false},"CustodyPendingActionMetadata":{"type":"object","properties":{"provider":{"type":"string"},"executable":{"type":"boolean"},"approvalId":{"anyOf":[{"type":"string"},{"type":"null"}]},"transactionId":{"anyOf":[{"type":"string"},{"type":"null"}]},"operationKind":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["provider","executable","approvalId","transactionId","operationKind"],"additionalProperties":false},"MultisigActionMetadata":{"type":"object","properties":{"userOpHash":{"type":"string"},"walletAddress":{"$ref":"#/components/schemas/EvmAddress"},"threshold":{"type":"string"},"currentWeight":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"operationKind":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["userOpHash","walletAddress","threshold","currentWeight","description","operationKind"],"additionalProperties":false},"KycActionMetadata":{"type":"object","properties":{"reason":{"type":"string"},"requiredFields":{"type":"array","items":{"type":"string"}},"sourceVersionId":{"type":"string"},"requestId":{"type":"string"}},"required":["reason","requiredFields","sourceVersionId","requestId"],"additionalProperties":false},"ContractInspection":{"type":"object","properties":{"address":{"$ref":"#/components/schemas/EvmAddress"},"hasCode":{"type":"boolean"},"token":{"anyOf":[{"type":"object","properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"symbol":{"anyOf":[{"type":"string"},{"type":"null"}]},"decimals":{"anyOf":[{"$ref":"#/components/schemas/DecimalsEncoded"},{"type":"null"}]},"totalSupply":{"anyOf":[{"$ref":"#/components/schemas/ApiBigIntEncoded"},{"type":"null"}]}},"required":["name","symbol","decimals","totalSupply"],"additionalProperties":false},{"type":"null"}]},"isSmart":{"type":"boolean"},"knownTo":{"anyOf":[{"type":"string"},{"type":"null"}]},"registration":{"type":"object","properties":{"eligible":{"type":"boolean"},"blockingReason":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["eligible","blockingReason"],"additionalProperties":false},"parentToken":{"anyOf":[{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"}},"required":["id"],"additionalProperties":false},{"type":"null"}],"description":"The token this contract belongs to, such as the token a feature, schedule, sale or airdrop serves. Null when the address is a token itself or no token owns it."}},"required":["address","hasCode","token","isSmart","knownTo","registration"],"additionalProperties":false},"HistoricalBalanceRow":{"type":"object","properties":{"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"account":{"$ref":"#/components/schemas/EvmAddress"},"kind":{"type":"string","enum":["account","totalSupply","no-checkpoint"]},"balance":{"$ref":"#/components/schemas/BigDecimal"},"balanceExact":{"$ref":"#/components/schemas/ApiBigIntEncoded"},"asOfBlockNumber":{"anyOf":[{"$ref":"#/components/schemas/ApiBigIntEncoded"},{"type":"null"}]},"asOfBlockTimestamp":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"asOfTxHash":{"anyOf":[{"$ref":"#/components/schemas/EthereumHashEncoded"},{"type":"null"}]},"asOfLogIndex":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"required":["tokenAddress","account","kind","balance","balanceExact","asOfBlockNumber","asOfBlockTimestamp","asOfTxHash","asOfLogIndex"],"additionalProperties":false},"PollExport":{"type":"object","properties":{"filename":{"type":"string"},"contentType":{"type":"string","enum":["text/csv"]},"csv":{"type":"string"}},"required":["filename","contentType","csv"],"additionalProperties":false},"PollTally":{"type":"object","properties":{"id":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"title":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"options":{"type":"array","items":{"type":"string"}},"recordDateAt":{"$ref":"#/components/schemas/TimestampEncoded"},"opensAt":{"$ref":"#/components/schemas/TimestampEncoded"},"closesAt":{"$ref":"#/components/schemas/TimestampEncoded"},"status":{"type":"string","enum":["open","closed"]},"definitionHash":{"$ref":"#/components/schemas/EthereumHashEncoded"},"createdBy":{"type":"string"},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"},"tally":{"type":"array","items":{"$ref":"#/components/schemas/PollTallyEntry"}},"totalBallots":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["id","chainId","tokenAddress","title","description","options","recordDateAt","opensAt","closesAt","status","definitionHash","createdBy","createdAt","updatedAt","tally","totalBallots"],"additionalProperties":false},"PollTallyEntry":{"type":"object","properties":{"optionIndex":{"type":"integer","minimum":0,"maximum":31},"label":{"type":"string"},"ballotCount":{"type":"integer","minimum":0,"maximum":9007199254740991},"weightExact":{"type":"string"}},"required":["optionIndex","label","ballotCount","weightExact"],"additionalProperties":false},"BallotRecorded":{"type":"object","properties":{"pollId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"voterAddress":{"$ref":"#/components/schemas/EvmAddress"},"optionIndex":{"type":"integer","minimum":0,"maximum":31},"typedData":{"$ref":"#/components/schemas/BallotTypedData"},"signature":{"$ref":"#/components/schemas/EthereumHexEncoded"},"weightExact":{"type":"string"},"submittedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["pollId","voterAddress","optionIndex","typedData","signature","weightExact","submittedAt"],"additionalProperties":false},"BallotTypedData":{"type":"object","properties":{"domain":{"$ref":"#/components/schemas/BallotDomain"},"types":{"type":"object","properties":{"PollBallot":{"type":"array","items":{"$ref":"#/components/schemas/Eip712Field"}}},"required":["PollBallot"],"additionalProperties":false},"primaryType":{"type":"string","enum":["PollBallot"]},"message":{"$ref":"#/components/schemas/BallotPayload"}},"required":["domain","types","primaryType","message"],"additionalProperties":false},"BallotPayload":{"type":"object","properties":{"pollId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"voter":{"$ref":"#/components/schemas/EvmAddress"},"optionIndex":{"type":"integer"},"definitionHash":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"required":["pollId","chainId","tokenAddress","voter","optionIndex","definitionHash"],"additionalProperties":false},"Eip712Field":{"type":"object","properties":{"name":{"type":"string","minLength":1},"type":{"type":"string","minLength":1}},"required":["name","type"],"additionalProperties":false},"BallotDomain":{"type":"object","properties":{"name":{"type":"string","minLength":1},"version":{"type":"string","minLength":1},"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"salt":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"required":["name","version","chainId","salt"],"additionalProperties":false},"BallotSignRequest":{"type":"object","properties":{"optionIndex":{"type":"integer","minimum":0,"maximum":31},"externalMessageAuthorization":{"$ref":"#/components/schemas/PortfolioExternalMessageAuthorization"},"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"}},"required":["optionIndex"],"additionalProperties":false},"PortfolioExternalMessageAuthorization":{"type":"object","properties":{"signature":{"$ref":"#/components/schemas/EthereumHexEncoded"}},"required":["signature"],"additionalProperties":false},"BallotCast":{"type":"object","properties":{"voter":{"$ref":"#/components/schemas/EvmAddress"},"optionIndex":{"type":"integer","minimum":0,"maximum":31},"definitionHash":{"$ref":"#/components/schemas/EthereumHashEncoded"},"signature":{"$ref":"#/components/schemas/EthereumHexEncoded"}},"required":["voter","optionIndex","definitionHash","signature"],"additionalProperties":false},"PollView":{"type":"object","properties":{"id":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"title":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"options":{"type":"array","items":{"type":"string"}},"recordDateAt":{"$ref":"#/components/schemas/TimestampEncoded"},"opensAt":{"$ref":"#/components/schemas/TimestampEncoded"},"closesAt":{"$ref":"#/components/schemas/TimestampEncoded"},"status":{"type":"string","enum":["open","closed"]},"definitionHash":{"$ref":"#/components/schemas/EthereumHashEncoded"},"createdBy":{"type":"string"},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["id","chainId","tokenAddress","title","description","options","recordDateAt","opensAt","closesAt","status","definitionHash","createdBy","createdAt","updatedAt"],"additionalProperties":false},"PollFilters":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000},"tokenAddress":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"status":{"anyOf":[{"type":"string","enum":["open","closed"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"recordDateAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"opensAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"closesAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"createdAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]}},"additionalProperties":false},"PollCreate":{"type":"object","properties":{"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"title":{"type":"string","minLength":1,"maxLength":500},"description":{"type":"string","maxLength":10000},"options":{"type":"array","items":{"type":"string","minLength":1,"maxLength":500},"minItems":2,"maxItems":32},"recordDateAt":{"$ref":"#/components/schemas/TimestampEncoded"},"opensAt":{"$ref":"#/components/schemas/TimestampEncoded"},"closesAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["tokenAddress","title","options","recordDateAt","opensAt","closesAt"],"additionalProperties":false},"ProposalDocumentDownloadGrant":{"type":"object","properties":{"downloadUrl":{"type":"string"},"fileName":{"type":"string","minLength":1},"mimeType":{"type":"string","minLength":1},"expiresAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["downloadUrl","fileName","mimeType","expiresAt"],"additionalProperties":false},"ProposalDocumentUploadGrant":{"type":"object","properties":{"uploadUrl":{"type":"string"},"objectKey":{"type":"string","minLength":1},"expiresAt":{"$ref":"#/components/schemas/TimestampEncoded"},"method":{"type":"string","enum":["PUT"]},"headers":{"type":"object","additionalProperties":{"type":"string"}}},"required":["uploadUrl","objectKey","expiresAt","method","headers"],"additionalProperties":false},"ProposalDocumentUpload":{"type":"object","properties":{"fileName":{"type":"string","minLength":1,"maxLength":255},"fileSize":{"type":"integer","minimum":1,"maximum":26214400},"mimeType":{"type":"string","enum":["application/pdf","image/jpeg","image/png","image/webp","application/vnd.openxmlformats-officedocument.wordprocessingml.document","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"]}},"required":["fileName","fileSize","mimeType"],"additionalProperties":false},"ProposalPreflight":{"type":"object","properties":{"governorExists":{"type":"boolean"},"governorAddress":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"timelockAddress":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"votingPowerAttached":{"type":"boolean"},"actionAuthority":{"type":"array","items":{"type":"object","properties":{"action":{"type":"string","minLength":1},"target":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"hasTimelockAuthority":{"type":"boolean"},"operationAllowlisted":{"type":"boolean"}},"required":["action","target","hasTimelockAuthority","operationAllowlisted"],"additionalProperties":false}},"grantRoleCta":{"anyOf":[{"type":"object","properties":{"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"role":{"type":"string","minLength":1},"grantee":{"$ref":"#/components/schemas/EvmAddress"},"callerCanGrant":{"type":"boolean"}},"required":["tokenAddress","role","grantee","callerCanGrant"],"additionalProperties":false},{"type":"null"}]}},"required":["governorExists","governorAddress","timelockAddress","votingPowerAttached","actionAuthority","grantRoleCta"],"additionalProperties":false},"GovernanceAction":{"anyOf":[{"type":"object","properties":{"action":{"type":"string","enum":["setCap"]},"args":{"type":"object","properties":{"newCap":{"type":"string","minLength":1,"maxLength":78,"pattern":"^\\d+$"}},"required":["newCap"],"additionalProperties":false}},"required":["action","args"],"additionalProperties":false},{"type":"object","properties":{"action":{"type":"string","enum":["setMetadata"]},"args":{"type":"object","properties":{"entries":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","minLength":1},"value":{"$ref":"#/components/schemas/EthereumHexEncoded"},"immutable":{"type":"boolean"}},"required":["key","value","immutable"],"additionalProperties":false},"minItems":1,"maxItems":50}},"required":["entries"],"additionalProperties":false}},"required":["action","args"],"additionalProperties":false},{"type":"object","properties":{"action":{"type":"string","enum":["removeMetadata"]},"args":{"type":"object","properties":{"key":{"type":"string","minLength":1}},"required":["key"],"additionalProperties":false}},"required":["action","args"],"additionalProperties":false},{"type":"object","properties":{"action":{"type":"string","enum":["setYieldSchedule"]},"args":{"type":"object","properties":{"schedule":{"$ref":"#/components/schemas/EvmAddress"}},"required":["schedule"],"additionalProperties":false}},"required":["action","args"],"additionalProperties":false},{"type":"object","properties":{"action":{"type":"string","enum":["mature"]},"args":{"type":"object"}},"required":["action","args"],"additionalProperties":false},{"type":"object","properties":{"action":{"type":"string","enum":["setMaturityTreasury"]},"args":{"type":"object","properties":{"newTreasury":{"$ref":"#/components/schemas/EvmAddress"}},"required":["newTreasury"],"additionalProperties":false}},"required":["action","args"],"additionalProperties":false},{"type":"object","properties":{"action":{"type":"string","enum":["setYieldTreasury"]},"args":{"type":"object","properties":{"newTreasury":{"$ref":"#/components/schemas/EvmAddress"}},"required":["newTreasury"],"additionalProperties":false}},"required":["action","args"],"additionalProperties":false},{"type":"object","properties":{"action":{"type":"string","enum":["setAumFeeBps"]},"args":{"type":"object","properties":{"newFeeBps":{"$ref":"#/components/schemas/FeeRateBps"}},"required":["newFeeBps"],"additionalProperties":false}},"required":["action","args"],"additionalProperties":false},{"type":"object","properties":{"action":{"type":"string","enum":["setAumFeeRecipient"]},"args":{"type":"object","properties":{"newRecipient":{"$ref":"#/components/schemas/EvmAddress"}},"required":["newRecipient"],"additionalProperties":false}},"required":["action","args"],"additionalProperties":false},{"type":"object","properties":{"action":{"type":"string","enum":["setTransactionFeeRates"]},"args":{"type":"object","properties":{"newRates":{"$ref":"#/components/schemas/FeeRatesArgs"}},"required":["newRates"],"additionalProperties":false}},"required":["action","args"],"additionalProperties":false},{"type":"object","properties":{"action":{"type":"string","enum":["setTransactionFeeRecipient"]},"args":{"type":"object","properties":{"newRecipient":{"$ref":"#/components/schemas/EvmAddress"}},"required":["newRecipient"],"additionalProperties":false}},"required":["action","args"],"additionalProperties":false},{"type":"object","properties":{"action":{"type":"string","enum":["setTransactionFeeAccountingRates"]},"args":{"type":"object","properties":{"newRates":{"$ref":"#/components/schemas/FeeRatesArgs"}},"required":["newRates"],"additionalProperties":false}},"required":["action","args"],"additionalProperties":false},{"type":"object","properties":{"action":{"type":"string","enum":["setTransactionFeeAccountingRecipient"]},"args":{"type":"object","properties":{"newRecipient":{"$ref":"#/components/schemas/EvmAddress"}},"required":["newRecipient"],"additionalProperties":false}},"required":["action","args"],"additionalProperties":false},{"type":"object","properties":{"action":{"type":"string","enum":["setExternalTransactionFeeRecipient"]},"args":{"type":"object","properties":{"newRecipient":{"$ref":"#/components/schemas/EvmAddress"}},"required":["newRecipient"],"additionalProperties":false}},"required":["action","args"],"additionalProperties":false},{"type":"object","properties":{"action":{"type":"string","enum":["setConversionWindow"]},"args":{"type":"object","properties":{"start":{"type":"string","minLength":1,"maxLength":78,"pattern":"^\\d+$"},"end":{"type":"string","minLength":1,"maxLength":78,"pattern":"^\\d+$"}},"required":["start","end"],"additionalProperties":false}},"required":["action","args"],"additionalProperties":false},{"type":"object","properties":{"action":{"type":"string","enum":["publishConversionTrigger"]},"args":{"type":"object","properties":{"triggerId":{"$ref":"#/components/schemas/EthereumHashEncoded"},"denominationAsset":{"$ref":"#/components/schemas/EvmAddress"},"roundPricePerShareWad":{"type":"string","minLength":1,"maxLength":78,"pattern":"^\\d+$"},"expiresAt":{"type":"string","minLength":1,"maxLength":78,"pattern":"^\\d+$"},"metadataHash":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"required":["triggerId","denominationAsset","roundPricePerShareWad","expiresAt","metadataHash"],"additionalProperties":false}},"required":["action","args"],"additionalProperties":false},{"type":"object","properties":{"action":{"type":"string","enum":["disableConversionTrigger"]},"args":{"type":"object","properties":{"triggerId":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"required":["triggerId"],"additionalProperties":false}},"required":["action","args"],"additionalProperties":false},{"type":"object","properties":{"action":{"type":"string","enum":["addAuthorizedConverter"]},"args":{"type":"object","properties":{"converter":{"$ref":"#/components/schemas/EvmAddress"}},"required":["converter"],"additionalProperties":false}},"required":["action","args"],"additionalProperties":false},{"type":"object","properties":{"action":{"type":"string","enum":["removeAuthorizedConverter"]},"args":{"type":"object","properties":{"converter":{"$ref":"#/components/schemas/EvmAddress"}},"required":["converter"],"additionalProperties":false}},"required":["action","args"],"additionalProperties":false}]},"FeeRatesArgs":{"type":"object","properties":{"mintFeeBps":{"$ref":"#/components/schemas/FeeRateBps"},"burnFeeBps":{"$ref":"#/components/schemas/FeeRateBps"},"transferFeeBps":{"$ref":"#/components/schemas/FeeRateBps"}},"required":["mintFeeBps","burnFeeBps","transferFeeBps"],"additionalProperties":false},"GovernanceInstance":{"type":"object","properties":{"exists":{"type":"boolean"},"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"governorAddress":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"timelockAddress":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"votesSourceAddress":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]}},"required":["exists","tokenAddress","governorAddress","timelockAddress","votesSourceAddress"],"additionalProperties":false},"BlockchainMutationMeta":{"type":"object","properties":{"txHashes":{"type":"array","items":{"type":"string"},"description":"Hashes of the transactions this write submitted, in submission order. Empty when the route succeeded without a chain write.","examples":[["0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"]]},"transactionId":{"type":"string","description":"Queue identifier (UUIDv7) of the transaction request behind this write, the same value a 202 handle carries as `transactionId`. Read its status or retry it through the transaction-request routes. Absent when the route settled without a transaction request.","examples":["01934567-89ab-7def-8123-456789abcdef"]}},"required":["txHashes"],"additionalProperties":false,"description":"Settlement metadata on a synchronous (HTTP 200) mutation. Use the hashes with a block explorer, and the transaction id with the transaction-request status route."},"ProposalLifecycle":{"type":"object","properties":{"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"governorAddress":{"$ref":"#/components/schemas/EvmAddress"},"proposalId":{"type":"string","minLength":1,"maxLength":78,"pattern":"^\\d+$"},"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"}},"required":["tokenAddress","governorAddress","proposalId"],"additionalProperties":false},"CantonAddonOperationOutput":{"type":"object","properties":{"operationId":{"type":"string","minLength":1,"description":"Durable operation identifier. It is also the submission identifier, so `/api/v2/transaction-requests` reports this operation's progress under the same id."},"submissionId":{"type":"string","minLength":1},"ledgerSubmissionId":{"type":"string","minLength":1},"preparedHashHex":{"type":"string","minLength":1},"contractId":{"type":"string","description":"Contract id the submission created, when the operation created one."}},"required":["operationId","submissionId","ledgerSubmissionId","preparedHashHex"],"additionalProperties":false},"CantonGovernanceExecutionCapabilityRevokeInput":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"cantonPartyId":{"type":"string","minLength":1,"description":"Canton party identifier, as the party registry or a platform read spells it."}},"required":["cantonPartyId"],"additionalProperties":false,"description":"Retires the execution capability the path names, by running `GovernanceExecutionCapability_Revoke`, which disarms every queued proposal that would have executed under it."},"CantonGovernanceConfigRevokeInput":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"cantonPartyId":{"type":"string","minLength":1,"description":"Canton party identifier, as the party registry or a platform read spells it."}},"required":["cantonPartyId"],"additionalProperties":false,"description":"Retires the governance configuration the path names, by running `GovernanceConfig_Revoke`."},"CantonGovernanceExecutionCapabilityCreateInput":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"cantonPartyId":{"type":"string","minLength":1,"description":"Canton party identifier, as the party registry or a platform read spells it."},"observers":{"type":"array","items":{"type":"string","minLength":1,"description":"Canton party identifier, as the party registry or a platform read spells it."}},"instrumentAdmin":{"type":"string","minLength":1,"description":"Canton party identifier, as the party registry or a platform read spells it."},"instrumentId":{"type":"string","minLength":1,"description":"Identifier of the Canton instrument this configuration governs, as the token read returns it."}},"required":["cantonPartyId","instrumentAdmin","instrumentId"],"additionalProperties":false,"description":"Opens a governance execution capability on the instrument the body names: the standing delegation an approved and queued proposal performs its action through."},"CantonGovernanceConfigCreateInput":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"cantonPartyId":{"type":"string","minLength":1,"description":"Canton party identifier, as the party registry or a platform read spells it."},"observers":{"type":"array","items":{"type":"string","minLength":1,"description":"Canton party identifier, as the party registry or a platform read spells it."}},"instrumentAdmin":{"type":"string","minLength":1,"description":"Canton party identifier, as the party registry or a platform read spells it."},"instrumentId":{"type":"string","minLength":1,"description":"Identifier of the Canton instrument this configuration governs, as the token read returns it."},"quorumBps":{"$ref":"#/components/schemas/CantonQuorumBps"},"votingWindow":{"type":"object","properties":{"microseconds":{"type":"string","pattern":"^-?(0|[1-9]\\d*)$","description":"Whole microseconds of the interval."}},"required":["microseconds"],"additionalProperties":false},"timelockDelay":{"type":"object","properties":{"microseconds":{"type":"string","pattern":"^-?(0|[1-9]\\d*)$","description":"Whole microseconds of the interval."}},"required":["microseconds"],"additionalProperties":false}},"required":["cantonPartyId","instrumentAdmin","instrumentId","quorumBps","votingWindow","timelockDelay"],"additionalProperties":false,"description":"Opens a governance configuration on the instrument the body names: a quorum, the window a vote stays open, and the delay between a passed vote and its execution."},"CantonQuorumBps":{"type":"integer"},"GovernanceLifecycleSettledData":{"anyOf":[{"type":"object","properties":{"transactionHash":{"type":"string"},"proposalId":{"type":"string","minLength":1,"maxLength":78,"pattern":"^\\d+$"}},"required":["transactionHash","proposalId"],"additionalProperties":false},{"$ref":"#/components/schemas/CantonAddonOperationOutput"}]},"GovernanceProposalExecute":{"anyOf":[{"$ref":"#/components/schemas/CantonGovernanceExecuteInput"},{"type":"object","properties":{"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"governorAddress":{"$ref":"#/components/schemas/EvmAddress"},"proposalId":{"type":"string","minLength":1,"maxLength":78,"pattern":"^\\d+$"},"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"instrumentAdmin":{"not":{}}},"required":["tokenAddress","governorAddress","proposalId"],"additionalProperties":false}],"description":"The body of an execute operation. A body carrying `instrumentAdmin` is the Canton arm and names the capability the proposal executes under; a body carrying `governorAddress` is the EVM arm."},"CantonGovernanceExecuteInput":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"cantonPartyId":{"type":"string","minLength":1,"description":"Canton party identifier, as the party registry or a platform read spells it."},"instrumentAdmin":{"type":"string","minLength":1,"description":"Canton party identifier, as the party registry or a platform read spells it."},"proposalContractId":{"type":"string","minLength":1,"description":"Contract id of the queued proposal being executed."},"capabilityContractId":{"type":"string","minLength":1,"description":"Contract id of the execution capability the proposal executes under."},"rulesContractId":{"type":"string","minLength":1,"description":"Contract id of the instrument's registry rules, presented with the execution so the ledger can gate it."}},"required":["cantonPartyId","instrumentAdmin","proposalContractId","capabilityContractId","rulesContractId"],"additionalProperties":false,"description":"Executes the queued proposal the body names, by running `Proposal_Execute` under its capability."},"GovernanceProposalQueue":{"anyOf":[{"$ref":"#/components/schemas/CantonGovernanceQueueInput"},{"type":"object","properties":{"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"governorAddress":{"$ref":"#/components/schemas/EvmAddress"},"proposalId":{"type":"string","minLength":1,"maxLength":78,"pattern":"^\\d+$"},"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"instrumentAdmin":{"not":{}}},"required":["tokenAddress","governorAddress","proposalId"],"additionalProperties":false}],"description":"The body of a queue operation. A body carrying `instrumentAdmin` is the Canton arm and closes the proposal's vote with the snapshot supply it passes; a body carrying `governorAddress` is the EVM arm."},"CantonGovernanceQueueInput":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"cantonPartyId":{"type":"string","minLength":1,"description":"Canton party identifier, as the party registry or a platform read spells it."},"instrumentAdmin":{"type":"string","minLength":1,"description":"Canton party identifier, as the party registry or a platform read spells it."},"proposalContractId":{"type":"string","minLength":1,"description":"Contract id of the proposal whose vote is being closed."},"snapshotSupply":{"type":"string","pattern":"^-?(0|[1-9]\\d*)(\\.\\d{1,10})?$","description":"Exact decimal amount in the instrument's own unit, up to ten decimal places."}},"required":["cantonPartyId","instrumentAdmin","proposalContractId","snapshotSupply"],"additionalProperties":false,"description":"Closes the proposal's vote with the snapshot supply the body passes, by running `Proposal_CloseVote`."},"GovernanceVoteCast":{"anyOf":[{"$ref":"#/components/schemas/CantonGovernanceVoteInput"},{"type":"object","properties":{"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"governorAddress":{"$ref":"#/components/schemas/EvmAddress"},"proposalId":{"type":"string","minLength":1,"maxLength":78,"pattern":"^\\d+$"},"support":{"type":"string","enum":["against","for","abstain"]},"optionIndex":{"type":"integer"},"reason":{"type":"string","maxLength":2000},"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"instrumentAdmin":{"not":{}}},"required":["tokenAddress","governorAddress","proposalId"],"additionalProperties":false}],"description":"The body of a ballot. A body carrying `instrumentAdmin` is the Canton arm and names the proposal and its voting-power record by contract id; a body carrying `governorAddress` is the EVM arm."},"CantonGovernanceVoteInput":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"cantonPartyId":{"type":"string","minLength":1,"description":"Canton party identifier, as the party registry or a platform read spells it."},"instrumentAdmin":{"type":"string","minLength":1,"description":"Canton party identifier, as the party registry or a platform read spells it."},"proposalContractId":{"type":"string","minLength":1,"description":"Contract id of the proposal being voted on."},"votingPowerRecordContractId":{"type":"string","minLength":1,"description":"Contract id of the voting-power record the ballot's weight is read from."},"account":{"type":"object","properties":{"owner":{"anyOf":[{"type":"string"},{"type":"null"}]},"provider":{"anyOf":[{"type":"string"},{"type":"null"}]},"id":{"type":"string"}},"required":["owner","provider","id"],"additionalProperties":false,"description":"The account an operation acts on, exactly as a Canton read returned it: `owner` and `provider` are parties, `id` is the account's label and may be empty for a party's unnamed account."},"support":{"type":"string","enum":["VoteFor","VoteAgainst","VoteAbstain"],"description":"The ballot direction. `VoteAbstain` counts toward quorum, not toward either side."}},"required":["cantonPartyId","instrumentAdmin","proposalContractId","votingPowerRecordContractId","account","support"],"additionalProperties":false,"description":"Casts a ballot on the proposal the body names, by running `Proposal_Vote`."},"ProposalExport":{"type":"object","properties":{"filename":{"type":"string"},"contentType":{"type":"string","enum":["text/csv"]},"csv":{"type":"string"}},"required":["filename","contentType","csv"],"additionalProperties":false},"ProposalBallot":{"type":"object","properties":{"voter":{"$ref":"#/components/schemas/EvmAddress"},"support":{"type":"string","enum":["against","for","abstain"]},"optionIndex":{"anyOf":[{"type":"integer"},{"type":"null"}]},"weight":{"type":"string","minLength":1,"maxLength":78,"pattern":"^\\d+$"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}]},"castAt":{"$ref":"#/components/schemas/TimestampEncoded"},"transactionHash":{"type":"string"}},"required":["voter","support","optionIndex","weight","reason","castAt","transactionHash"],"additionalProperties":false},"ProposalBallotFilters":{"type":"object","properties":{"voter":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"castAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]}},"additionalProperties":false},"ProposalView":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":78,"pattern":"^\\d+$"},"governorAddress":{"$ref":"#/components/schemas/EvmAddress"},"timelockAddress":{"$ref":"#/components/schemas/EvmAddress"},"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"votesSourceAddress":{"$ref":"#/components/schemas/EvmAddress"},"proposer":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"status":{"type":"string","enum":["pending","active","succeeded","defeated","queued","executed","canceled"]},"mode":{"type":"string","enum":["binary","multiOption"]},"optionCount":{"anyOf":[{"type":"integer"},{"type":"null"}]},"title":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdExternally":{"type":"boolean"},"snapshotAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"deadlineAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"etaAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"quorumBps":{"anyOf":[{"$ref":"#/components/schemas/BasisPoints"},{"type":"null"}]},"approvalThresholdBps":{"anyOf":[{"$ref":"#/components/schemas/BasisPoints"},{"type":"null"}]},"votingPeriodSeconds":{"anyOf":[{"type":"integer"},{"type":"null"}]},"executionDelaySeconds":{"anyOf":[{"type":"integer"},{"type":"null"}]},"forVotes":{"type":"string","minLength":1,"maxLength":78,"pattern":"^\\d+$"},"againstVotes":{"type":"string","minLength":1,"maxLength":78,"pattern":"^\\d+$"},"abstainVotes":{"type":"string","minLength":1,"maxLength":78,"pattern":"^\\d+$"},"totalBallots":{"type":"string","minLength":1,"maxLength":78,"pattern":"^\\d+$"},"optionTallies":{"anyOf":[{"$ref":"#/components/schemas/ProposalOptionTallies"},{"type":"null"}]},"createdAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"executedAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"canceledAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"targets":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/EvmAddress"}},{"type":"null"}]},"values":{"anyOf":[{"type":"array","items":{"type":"string","minLength":1,"maxLength":78,"pattern":"^\\d+$"}},{"type":"null"}]},"calldatas":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"descriptionHash":{"anyOf":[{"type":"string"},{"type":"null"}]},"descriptionRichText":{"anyOf":[{"type":"string"},{"type":"null"}]},"documents":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/DocumentLink"}},{"type":"null"}]},"options":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"supersedesProposalId":{"anyOf":[{"type":"string","minLength":1,"maxLength":78,"pattern":"^\\d+$"},{"type":"null"}]},"snapshotTotalVotingUnits":{"anyOf":[{"type":"string","minLength":1,"maxLength":78,"pattern":"^\\d+$"},{"type":"null"}]},"quorumVotes":{"anyOf":[{"type":"string","minLength":1,"maxLength":78,"pattern":"^\\d+$"},{"type":"null"}]},"approvalVotes":{"anyOf":[{"type":"string","minLength":1,"maxLength":78,"pattern":"^\\d+$"},{"type":"null"}]}},"required":["id","governorAddress","timelockAddress","tokenAddress","votesSourceAddress","proposer","status","mode","optionCount","title","description","createdExternally","snapshotAt","deadlineAt","etaAt","quorumBps","approvalThresholdBps","votingPeriodSeconds","executionDelaySeconds","forVotes","againstVotes","abstainVotes","totalBallots","optionTallies","createdAt","executedAt","canceledAt","targets","values","calldatas","descriptionHash","descriptionRichText","documents","options","supersedesProposalId","snapshotTotalVotingUnits","quorumVotes","approvalVotes"],"additionalProperties":false},"DocumentLink":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":200},"url":{"type":"string","maxLength":2048},"objectKey":{"type":"string","minLength":1},"fileName":{"type":"string","minLength":1,"maxLength":255},"mimeType":{"type":"string","minLength":1},"fileSize":{"type":"integer"}},"required":["title"],"additionalProperties":false},"ProposalOptionTallies":{"type":"object","additionalProperties":{"type":"string","minLength":1,"maxLength":78,"pattern":"^\\d+$"}},"BasisPoints":{"type":"integer"},"GovernanceCreateSettledData":{"anyOf":[{"type":"object","properties":{"transactionHash":{"type":"string"},"governorAddress":{"$ref":"#/components/schemas/EvmAddress"},"timelockAddress":{"$ref":"#/components/schemas/EvmAddress"},"proposalId":{"type":"string","minLength":1,"maxLength":78,"pattern":"^\\d+$"}},"required":["transactionHash","governorAddress","timelockAddress","proposalId"],"additionalProperties":false},{"$ref":"#/components/schemas/CantonAddonOperationOutput"}]},"GovernanceProposalCreate":{"anyOf":[{"$ref":"#/components/schemas/CantonGovernanceProposeInput"},{"type":"object","properties":{"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"mode":{"type":"string","enum":["binary","multiOption"]},"title":{"type":"string","minLength":1,"maxLength":300},"descriptionRichText":{"type":"string","minLength":1},"documents":{"type":"array","items":{"$ref":"#/components/schemas/DocumentLink"},"maxItems":20},"options":{"type":"array","items":{"type":"string","minLength":1,"maxLength":200},"minItems":2,"maxItems":10},"actions":{"type":"array","items":{"$ref":"#/components/schemas/GovernanceAction"},"maxItems":10},"recordDateAt":{"$ref":"#/components/schemas/TimestampEncoded"},"votingPeriodSeconds":{"anyOf":[{"type":"integer"},{"type":"null"}]},"quorumBps":{"$ref":"#/components/schemas/BasisPoints"},"approvalThresholdBps":{"anyOf":[{"$ref":"#/components/schemas/BasisPoints"},{"type":"null"}]},"executionDelaySeconds":{"anyOf":[{"type":"integer"},{"type":"null"}]},"quorumFloorBps":{"anyOf":[{"$ref":"#/components/schemas/BasisPoints"},{"type":"null"}]},"approvalThresholdFloorBps":{"anyOf":[{"$ref":"#/components/schemas/BasisPoints"},{"type":"null"}]},"supersedesProposalId":{"type":"string","minLength":1,"maxLength":78,"pattern":"^\\d+$"},"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"instrumentAdmin":{"not":{}}},"required":["tokenAddress","mode","title","descriptionRichText","recordDateAt","quorumBps"],"additionalProperties":false}],"description":"The body of a proposal creation. A body carrying `instrumentAdmin` is the Canton arm and names its configuration by contract id; a body carrying `tokenAddress` is the EVM arm."},"CantonGovernanceProposeInput":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"cantonPartyId":{"type":"string","minLength":1,"description":"Canton party identifier, as the party registry or a platform read spells it."},"instrumentAdmin":{"type":"string","minLength":1,"description":"Canton party identifier, as the party registry or a platform read spells it."},"configContractId":{"type":"string","minLength":1,"description":"Contract id of the governance configuration the proposal opens against."},"proposalId":{"type":"string","minLength":1,"description":"Identifier the proposal is recorded under inside its configuration."},"description":{"type":"string"},"action":{"anyOf":[{"type":"object","properties":{"tag":{"type":"string","enum":["GovMint"]},"value":{"type":"object","properties":{"account":{"type":"object","properties":{"owner":{"anyOf":[{"type":"string"},{"type":"null"}]},"provider":{"anyOf":[{"type":"string"},{"type":"null"}]},"id":{"type":"string"}},"required":["owner","provider","id"],"additionalProperties":false,"description":"The account an operation acts on, exactly as a Canton read returned it: `owner` and `provider` are parties, `id` is the account's label and may be empty for a party's unnamed account."},"amount":{"type":"string","pattern":"^-?(0|[1-9]\\d*)(\\.\\d{1,10})?$","description":"Exact decimal amount in the instrument's own unit, up to ten decimal places."}},"required":["account","amount"],"additionalProperties":false}},"required":["tag","value"],"additionalProperties":false},{"type":"object","properties":{"tag":{"type":"string","enum":["GovText"]},"value":{"type":"object","properties":{"marker":{"type":"string","minLength":1}},"required":["marker"],"additionalProperties":false}},"required":["tag","value"],"additionalProperties":false}],"description":"Actions the proposal executes when it passes. `GovMint` mints `amount` into `account`; `GovText` records an off-ledger marker, which is how a resolution-only proposal is expressed."},"recordAt":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,6})?Z$","description":"A ledger timestamp in UTC, microsecond precision."}},"required":["cantonPartyId","instrumentAdmin","configContractId","proposalId","description","action","recordAt"],"additionalProperties":false,"description":"Opens a proposal on the governance configuration the body names, by running `Proposal_Create`."},"ProposalListRow":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":78,"pattern":"^\\d+$"},"governorAddress":{"$ref":"#/components/schemas/EvmAddress"},"timelockAddress":{"$ref":"#/components/schemas/EvmAddress"},"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"votesSourceAddress":{"$ref":"#/components/schemas/EvmAddress"},"proposer":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"status":{"type":"string","enum":["pending","active","succeeded","defeated","queued","executed","canceled"]},"mode":{"type":"string","enum":["binary","multiOption"]},"optionCount":{"anyOf":[{"type":"integer"},{"type":"null"}]},"title":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdExternally":{"type":"boolean"},"snapshotAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"deadlineAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"etaAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"quorumBps":{"anyOf":[{"$ref":"#/components/schemas/BasisPoints"},{"type":"null"}]},"approvalThresholdBps":{"anyOf":[{"$ref":"#/components/schemas/BasisPoints"},{"type":"null"}]},"votingPeriodSeconds":{"anyOf":[{"type":"integer"},{"type":"null"}]},"executionDelaySeconds":{"anyOf":[{"type":"integer"},{"type":"null"}]},"forVotes":{"type":"string","minLength":1,"maxLength":78,"pattern":"^\\d+$"},"againstVotes":{"type":"string","minLength":1,"maxLength":78,"pattern":"^\\d+$"},"abstainVotes":{"type":"string","minLength":1,"maxLength":78,"pattern":"^\\d+$"},"totalBallots":{"type":"string","minLength":1,"maxLength":78,"pattern":"^\\d+$"},"optionTallies":{"anyOf":[{"$ref":"#/components/schemas/ProposalOptionTallies"},{"type":"null"}]},"createdAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"executedAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"canceledAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]}},"required":["id","governorAddress","timelockAddress","tokenAddress","votesSourceAddress","proposer","status","mode","optionCount","title","description","createdExternally","snapshotAt","deadlineAt","etaAt","quorumBps","approvalThresholdBps","votingPeriodSeconds","executionDelaySeconds","forVotes","againstVotes","abstainVotes","totalBallots","optionTallies","createdAt","executedAt","canceledAt"],"additionalProperties":false},"ProposalFilters":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000},"token":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"status":{"anyOf":[{"type":"string","enum":["pending","active","succeeded","defeated","queued","executed","canceled"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"mode":{"anyOf":[{"type":"string","enum":["binary","multiOption"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"proposer":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"deadlineAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"createdAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]}},"additionalProperties":false},"NativeBalanceObservation":{"type":"object","properties":{"id":{"type":"string","minLength":1},"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"address":{"$ref":"#/components/schemas/EvmAddress"},"nativeBalance":{"$ref":"#/components/schemas/ApiBigIntEncoded"},"nativeBalanceObservedAtBlock":{"$ref":"#/components/schemas/ApiBigIntEncoded"},"nativeBalanceObservedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["id","chainId","address","nativeBalance","nativeBalanceObservedAtBlock","nativeBalanceObservedAt"],"additionalProperties":false},"ChainIdEncoded":{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},"AccountView":{"type":"object","properties":{"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"address":{"$ref":"#/components/schemas/EvmAddress"},"entityType":{"type":"string","enum":["eoa","asset","bond","equity","fund","deposit","stablecoin","real-estate","precious-metal","system","smart-account","operator-wallet","contract"]},"contractName":{"anyOf":[{"type":"string"},{"type":"null"}]},"nativeBalance":{"anyOf":[{"$ref":"#/components/schemas/ApiBigIntEncoded"},{"type":"null"}]},"nativeBalanceObservedAtBlock":{"anyOf":[{"$ref":"#/components/schemas/ApiBigIntEncoded"},{"type":"null"}]},"nativeBalanceObservedAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"funding":{"anyOf":[{"$ref":"#/components/schemas/PayerFunding"},{"type":"null"}],"description":"How this account pays gas and whether it holds enough; null for an account that never pays gas."}},"required":["chainId","address","entityType","contractName","nativeBalance","nativeBalanceObservedAtBlock","nativeBalanceObservedAt","funding"],"additionalProperties":false},"PayerFunding":{"type":"object","properties":{"role":{"type":"string","enum":["signer","bundler","relayer","paymaster","refund-splitter","operator-wallet"]},"measure":{"type":"string","enum":["native","entrypoint-deposit","pass-through"]},"measuredWei":{"anyOf":[{"$ref":"#/components/schemas/ApiBigIntEncoded"},{"type":"null"}]},"lowMarkWei":{"anyOf":[{"$ref":"#/components/schemas/ApiBigIntEncoded"},{"type":"null"}]},"status":{"type":"string","enum":["not-needed","not-observed","low","healthy"]}},"required":["role","measure","measuredWei","lowMarkWei","status"],"additionalProperties":false,"description":"How this account pays gas and whether it holds enough, judged by the server. `measure` names what `measuredWei` holds: the native balance, the paymaster's EntryPoint deposit, or, for the refund splitter, its native balance reported but never judged, because it only passes refunds through and is healthy at zero. `status` is `not-needed` on a chain that charges no gas, `low` when `measuredWei` is under `lowMarkWei`, and `not-observed` until a measurement exists."},"CantonExternalTokenForceDeregisterInput":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"cantonPartyId":{"type":"string","minLength":1,"description":"Canton party identifier, as the party registry or a platform read spells it."},"instrumentAdmin":{"type":"string","minLength":1,"description":"Canton party identifier, as the party registry or a platform read spells it."}},"required":["cantonPartyId","instrumentAdmin"],"additionalProperties":false,"description":"Drops the registry entry for the instrument the path names without archiving a receipt, by running `ExternalToken_ForceDeregister`. A receipt the platform can still resolve makes the ledger refuse."},"CantonExternalTokenDeregisterInput":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"cantonPartyId":{"type":"string","minLength":1,"description":"Canton party identifier, as the party registry or a platform read spells it."},"instrumentAdmin":{"type":"string","minLength":1,"description":"Canton party identifier, as the party registry or a platform read spells it."}},"required":["cantonPartyId","instrumentAdmin"],"additionalProperties":false,"description":"Drops the instrument the path names and archives its registration receipt, by running `ExternalToken_Deregister`."},"CantonExternalTokenUpdateInput":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"cantonPartyId":{"type":"string","minLength":1,"description":"Canton party identifier, as the party registry or a platform read spells it."},"instrumentAdmin":{"type":"string","minLength":1,"description":"Canton party identifier, as the party registry or a platform read spells it."},"tokenType":{"type":"string","minLength":1,"description":"Non-empty asset-class slug recorded as the instrument's type label."}},"required":["cantonPartyId","instrumentAdmin","tokenType"],"additionalProperties":false,"description":"Restates the type label recorded for the instrument the path names, by running `ExternalToken_Update`, which replaces its registration receipt."},"ExternalTokenView":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"name":{"type":"string"},"symbol":{"type":"string"},"decimals":{"$ref":"#/components/schemas/DecimalsEncoded"},"totalSupply":{"anyOf":[{"$ref":"#/components/schemas/BigDecimal"},{"type":"null"}],"description":"Total supply read from the token contract at registration; `asOf` says when."},"totalSupplyExact":{"$ref":"#/components/schemas/ApiBigIntEncoded"},"type":{"type":"string","minLength":1},"pausable":{"anyOf":[{"type":"object","properties":{"paused":{"type":"boolean"}},"required":["paused"],"additionalProperties":false},{"type":"null"}]},"asOf":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}],"description":"When `totalSupply`, `totalSupplyExact` and `pausable` were read from the chain. `null` when that time was not recorded, as for tokens registered before it was."},"externalRegisteredAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"externalRegisteredBy":{"anyOf":[{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"}},"required":["id"],"additionalProperties":false},{"type":"null"}]},"externalDetectedInterfaces":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}]},"implementsERC3643":{"type":"boolean"},"implementsSMART":{"type":"boolean"},"origin":{"$ref":"#/components/schemas/ExternalTokenOrigin"},"dismissed":{"type":"boolean","description":"Whether a token manager dismissed the token. A dismissed token stays registered, and the platform does not detect it again; registering it by hand brings it back. The organization's holdings, portfolio, holder lists, token catalog, token details, and marks leave it out. Only token managers see dismissed tokens."},"indexingStatus":{"type":"string","enum":["not_indexed","catching_up","attention","indexed"],"description":"Whether the indexer tracks this token: `not_indexed` when the organization's system is outside the indexing scope, `catching_up` while its registration or history is still being indexed, `attention` when indexing failed or the token is quarantined, `indexed` otherwise."},"quarantineReason":{"anyOf":[{"$ref":"#/components/schemas/ExternalTokenQuarantineReason"},{"type":"null"}],"description":"Why the indexer stopped tracking the token's balances and supply, or `null` while it tracks them. Present only for callers holding the tokenManager role."}},"required":["id","name","symbol","decimals","totalSupply","type","pausable","asOf","externalRegisteredAt","externalRegisteredBy","externalDetectedInterfaces","implementsERC3643","implementsSMART","origin","dismissed","indexingStatus"],"additionalProperties":false},"ExternalTokenQuarantineReason":{"type":"string","enum":["reverted","out-of-gas","undecodable","read-timeout","supply-inconsistent","balance-inconsistent","oversized-block","counter-overflow"],"description":"Why the indexer stopped tracking an external token: its `balanceOf` or `totalSupply()` read `reverted`, ran `out-of-gas`, or answered a value that was `undecodable`; the read kept timing out while the node answered other calls at the same block, a `read-timeout`; its burns took supply below zero, so its events were `supply-inconsistent` with its supply; a transfer out of a tracked wallet took that wallet's balance below zero, or a tracked wallet's `balanceOf` disagreed with the balance its transfers add up to, so its events were `balance-inconsistent` with the wallet's balance; its events in one block outgrew one RPC log response, an `oversized-block`; or its transfers pushed its supply, minted or burned total, or a balance past 78 digits, a `counter-overflow`."},"ExternalTokenOrigin":{"type":"string","enum":["manual","auto"],"description":"How the token was registered: `manual` when a token manager registered it, `auto` when the platform detected it arriving in a managed wallet and registered it."},"ExternalTokenRegisterResult":{"anyOf":[{"$ref":"#/components/schemas/ExternalTokenRegistered"},{"$ref":"#/components/schemas/ExternalTokenPromoted"},{"$ref":"#/components/schemas/CantonAddonOperationOutput"}],"description":"What the route accepted. The EVM arm returns the address it queued, or only the address when it accepted an auto-detected token without a new transaction; the Canton arm returns the settled operation, whose `operationId` is also the submission id `/api/v2/transaction-requests` reports."},"ExternalTokenPromoted":{"type":"object","properties":{"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"}},"required":["tokenAddress"],"additionalProperties":false,"description":"An auto-detected or dismissed token the organization brought back by registering it by hand. The token was already in the on-chain registry and its registered type needed no update, so no transaction was submitted."},"ExternalTokenRegistered":{"type":"object","properties":{"txHash":{"$ref":"#/components/schemas/EthereumHashEncoded"},"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"}},"required":["txHash","tokenAddress"],"additionalProperties":false},"ExternalTokenRegisterWrite":{"anyOf":[{"$ref":"#/components/schemas/ExternalTokenRegister"},{"$ref":"#/components/schemas/CantonExternalTokenRegisterInput"}],"description":"The body of a registration. A body carrying `tokenAddress` is the EVM arm and queues a chain transaction; a body carrying `instrumentAdmin` is the Canton arm and records the instrument's type in the ledger registry instead."},"CantonExternalTokenRegisterInput":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"cantonPartyId":{"type":"string","minLength":1,"description":"Canton party identifier, as the party registry or a platform read spells it."},"instrumentAdmin":{"type":"string","minLength":1,"description":"Canton party identifier, as the party registry or a platform read spells it."},"instrumentId":{"type":"string","minLength":1,"description":"Identifier the external instrument is known by under its admin, as the external-token read returns it."},"tokenType":{"type":"string","minLength":1,"description":"Non-empty asset-class slug recorded as the instrument's type label."}},"required":["cantonPartyId","instrumentAdmin","instrumentId","tokenType"],"additionalProperties":false,"description":"Records the instrument's type label in the external-token registry, by running `ExternalToken_Register`. A registration the ledger already holds is refused."},"ExternalTokenRegister":{"type":"object","properties":{"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"tokenType":{"type":"string","minLength":1},"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"}},"required":["tokenAddress","tokenType"],"additionalProperties":false},"ReturnsView":{"type":"object","properties":{"amounts":{"$ref":"#/components/schemas/ReturnsAmounts"},"byType":{"type":"array","items":{"$ref":"#/components/schemas/ReturnsByType"}},"byAsset":{"type":"array","items":{"$ref":"#/components/schemas/ReturnsByAsset"}},"upcomingEvents":{"type":"array","items":{"$ref":"#/components/schemas/ReturnsUpcomingEvent"}}},"required":["amounts","byType","byAsset","upcomingEvents"],"additionalProperties":false},"ReturnsUpcomingEvent":{"type":"object","properties":{"assetAddress":{"$ref":"#/components/schemas/EvmAddress"},"assetName":{"anyOf":[{"type":"string"},{"type":"null"}]},"assetSymbol":{"anyOf":[{"type":"string"},{"type":"null"}]},"returnType":{"type":"string","enum":["fixed","dividend","interest"]},"label":{"type":"string"},"eventAt":{"$ref":"#/components/schemas/TimestampEncoded"},"amount":{"anyOf":[{"$ref":"#/components/schemas/BigDecimal"},{"type":"null"}]}},"required":["assetAddress","assetName","assetSymbol","returnType","label","eventAt","amount"],"additionalProperties":false},"ReturnsByAsset":{"type":"object","properties":{"amounts":{"$ref":"#/components/schemas/ReturnsAmounts"},"assetAddress":{"$ref":"#/components/schemas/EvmAddress"},"assetName":{"anyOf":[{"type":"string"},{"type":"null"}]},"assetSymbol":{"anyOf":[{"type":"string"},{"type":"null"}]},"assetType":{"anyOf":[{"type":"string"},{"type":"null"}]},"returnType":{"type":"string","enum":["fixed","dividend","interest"]},"rateBps":{"anyOf":[{"$ref":"#/components/schemas/BasisPoints"},{"type":"null"}]},"nextEventAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"fundingStatus":{"anyOf":[{"$ref":"#/components/schemas/FundingCoverageStatus"},{"type":"null"}]}},"required":["amounts","assetAddress","assetName","assetSymbol","assetType","returnType","rateBps","nextEventAt","fundingStatus"],"additionalProperties":false},"ReturnsAmounts":{"type":"object","properties":{"totalEarned":{"$ref":"#/components/schemas/BigDecimal"},"pendingCollection":{"$ref":"#/components/schemas/BigDecimal"},"collected":{"$ref":"#/components/schemas/BigDecimal"},"collectedYtd":{"$ref":"#/components/schemas/BigDecimal"}},"required":["totalEarned","pendingCollection","collected","collectedYtd"],"additionalProperties":false},"ReturnsByType":{"type":"object","properties":{"amounts":{"$ref":"#/components/schemas/ReturnsAmounts"},"type":{"type":"string","enum":["fixed","dividend","interest"]},"percentage":{"type":"number"}},"required":["amounts","type","percentage"],"additionalProperties":false},"UnrealizedPnlSeries":{"type":"object","properties":{"range":{"$ref":"#/components/schemas/StatsResolvedRange_2"},"data":{"type":"array","items":{"$ref":"#/components/schemas/UnrealizedPnlPoint"}}},"required":["range","data"],"additionalProperties":false},"UnrealizedPnlPoint":{"type":"object","properties":{"timestamp":{"$ref":"#/components/schemas/TimestampEncoded"},"unrealizedPnlInBase":{"$ref":"#/components/schemas/BigDecimal"},"unpricedLots":{"type":"integer","allOf":[{"description":"Present only when the cost basis in this bucket is incomplete. It sums each account's count of acquisitions without a price, so units moved between accounts count the same acquisition again: read it as a flag with a magnitude, not as a number of distinct acquisitions."}]}},"required":["timestamp","unrealizedPnlInBase"],"additionalProperties":false,"description":"Unrealized profit and loss at one bucket, in the base currency. When unpricedLots is present, unrealizedPnlInBase covers only the tokens with a known cost basis, and is zero when none has one."},"StatsResolvedRange_2":{"type":"object","properties":{"interval":{"$ref":"#/components/schemas/StatsRangeInterval"},"from":{"$ref":"#/components/schemas/TimestampEncoded"},"to":{"$ref":"#/components/schemas/TimestampEncoded"},"isPreset":{"type":"boolean"}},"required":["interval","from","to","isPreset"],"additionalProperties":false},"StatsRangeInterval":{"type":"string","enum":["hour","day"]},"StatsRangePreset":{"type":"string","enum":["allTime","ytd","trailing12Months","trailing6Months","trailing3Months","trailing1Month","trailing7Days","trailing24Hours"]},"RealizedPnlSeries":{"type":"object","properties":{"range":{"$ref":"#/components/schemas/StatsResolvedRange_2"},"data":{"type":"array","items":{"$ref":"#/components/schemas/RealizedPnlPoint"}}},"required":["range","data"],"additionalProperties":false},"RealizedPnlPoint":{"type":"object","properties":{"timestamp":{"$ref":"#/components/schemas/TimestampEncoded"},"realizedPnlInBase":{"anyOf":[{"$ref":"#/components/schemas/BigDecimal"},{"type":"null"}]},"cumulativeRealizedPnlInBase":{"anyOf":[{"$ref":"#/components/schemas/BigDecimal"},{"type":"null"}]}},"required":["timestamp","realizedPnlInBase","cumulativeRealizedPnlInBase"],"additionalProperties":false},"RealizedPnlMeta":{"type":"object","properties":{"total":{"type":"integer"},"facets":{"type":"object","additionalProperties":{"type":"array","items":{"$ref":"#/components/schemas/CollectionFacetEntry"}}},"realizedPnlTotalInBase":{"anyOf":[{"$ref":"#/components/schemas/BigDecimal"},{"type":"null"}]}},"required":["total","realizedPnlTotalInBase"],"additionalProperties":false},"RealizedPnlRow":{"type":"object","properties":{"id":{"type":"string","minLength":1},"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"tokenSymbol":{"$ref":"#/components/schemas/AssetSymbol"},"quantity":{"$ref":"#/components/schemas/BigDecimal"},"proceedsInBase":{"$ref":"#/components/schemas/BigDecimal"},"costOfDisposalInBase":{"anyOf":[{"$ref":"#/components/schemas/BigDecimal"},{"type":"null"}]},"realizedPnlInBase":{"anyOf":[{"$ref":"#/components/schemas/BigDecimal"},{"type":"null"}]},"priceUnresolved":{"type":"boolean"},"costBasisIncomplete":{"type":"boolean"},"blockTimestamp":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["id","tokenAddress","tokenSymbol","quantity","proceedsInBase","costOfDisposalInBase","realizedPnlInBase","priceUnresolved","costBasisIncomplete","blockTimestamp"],"additionalProperties":false},"HoldingsMeta":{"type":"object","properties":{"total":{"type":"integer"},"facets":{"type":"object","additionalProperties":{"type":"array","items":{"$ref":"#/components/schemas/CollectionFacetEntry"}}},"groups":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/HoldingGroupAxis"}},{"type":"null"}]},"groupBy":{"anyOf":[{"$ref":"#/components/schemas/HoldingGroupAxis"},{"type":"null"}]}},"required":["total","groups","groupBy"],"additionalProperties":false},"HoldingGroupAxis":{"type":"object","properties":{"key":{"type":"string","minLength":1},"label":{"type":"string"}},"required":["key","label"],"additionalProperties":false},"HoldingRow":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"accountAddress":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"value":{"$ref":"#/components/schemas/BigDecimal"},"frozen":{"$ref":"#/components/schemas/BigDecimal"},"available":{"$ref":"#/components/schemas/BigDecimal"},"held":{"$ref":"#/components/schemas/BigDecimal"},"atVenue":{"$ref":"#/components/schemas/BigDecimal"},"valueInBaseCurrency":{"anyOf":[{"$ref":"#/components/schemas/BigDecimal"},{"type":"null"}]},"priceInBaseCurrencyReliable":{"type":"boolean"},"priceChange24hPercent":{"anyOf":[{"$ref":"#/components/schemas/BigDecimal"},{"type":"null"}]},"priceAsOf24h":{"anyOf":[{"$ref":"#/components/schemas/BigDecimal"},{"type":"null"}]},"costBasis":{"anyOf":[{"$ref":"#/components/schemas/BigDecimal"},{"type":"null"}]},"unrealizedPnl":{"anyOf":[{"$ref":"#/components/schemas/BigDecimal"},{"type":"null"}]},"unrealizedPnlPercent":{"anyOf":[{"$ref":"#/components/schemas/BigDecimal"},{"type":"null"}]},"costBasisIncomplete":{"type":"boolean"},"token":{"$ref":"#/components/schemas/HeldToken"},"byAccount":{"type":"array","items":{"$ref":"#/components/schemas/HoldingBySource"}},"metadataValues":{"anyOf":[{"type":"object","additionalProperties":{"$ref":"#/components/schemas/MetadataFieldValue"}},{"type":"null"}]}},"required":["id","value","frozen","available","held","atVenue","valueInBaseCurrency","priceInBaseCurrencyReliable","priceChange24hPercent","priceAsOf24h","costBasis","unrealizedPnl","unrealizedPnlPercent","costBasisIncomplete","token","byAccount"],"additionalProperties":false},"MetadataFieldValue":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"}]},"HoldingBySource":{"type":"object","properties":{"sourceAddress":{"$ref":"#/components/schemas/EvmAddress"},"sourceKind":{"type":"string","enum":["eoa","smart-account"]},"value":{"$ref":"#/components/schemas/BigDecimal"},"frozen":{"$ref":"#/components/schemas/BigDecimal"},"pendingOutgoing":{"$ref":"#/components/schemas/BigDecimal"},"available":{"$ref":"#/components/schemas/BigDecimal"},"authorities":{"type":"array","items":{"$ref":"#/components/schemas/HoldingAuthority"}}},"required":["sourceAddress","sourceKind","value","frozen","pendingOutgoing","available","authorities"],"additionalProperties":false},"HoldingAuthority":{"type":"object","properties":{"custodyAccountId":{"type":"string","minLength":1},"signingAddress":{"$ref":"#/components/schemas/EvmAddress"},"providerConfigurationId":{"type":"string","minLength":1},"provider":{"type":"string","enum":["local","dfns","fireblocks","luna","ripple","anvil","privy","injected-browser","dynamic"]},"accountLifecycle":{"type":"string","enum":["pending","active","unavailable","revoked","archived"]},"contextLifecycle":{"type":"string","enum":["active","archived"]},"eligibility":{"type":"string","enum":["eligible","ineligible"]},"isPrimary":{"type":"boolean"}},"required":["custodyAccountId","signingAddress","providerConfigurationId","provider","accountLifecycle","contextLifecycle","eligibility","isPrimary"],"additionalProperties":false},"HeldToken":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"name":{"type":"string"},"symbol":{"type":"string","minLength":1},"type":{"$ref":"#/components/schemas/AssetClassSlug"},"isExternal":{"type":"boolean"},"decimals":{"$ref":"#/components/schemas/DecimalsEncoded"},"totalSupply":{"$ref":"#/components/schemas/BigDecimal"},"totalSupplyExact":{"anyOf":[{"$ref":"#/components/schemas/ApiBigIntEncoded"},{"type":"null"}]},"bond":{"anyOf":[{"type":"object","properties":{"isMatured":{"type":"boolean"}},"required":["isMatured"],"additionalProperties":false},{"type":"null"}]},"yield":{"anyOf":[{"type":"object","properties":{"schedule":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"denominationAsset":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"symbol":{"$ref":"#/components/schemas/AssetSymbol"},"decimals":{"$ref":"#/components/schemas/DecimalsEncoded"}},"required":["id","symbol","decimals"],"additionalProperties":false}},"required":["id","denominationAsset"],"additionalProperties":false}},"required":["schedule"],"additionalProperties":false},{"type":"null"}]}},"required":["id","name","symbol","type","isExternal","decimals","totalSupply","yield"],"additionalProperties":false},"AssetClassSlug":{"type":"string","minLength":1,"description":"Asset class slug (system or custom)"},"OrganizationFundingRequirement":{"type":"object","properties":{"id":{"type":"string"},"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"nativeCurrency":{"anyOf":[{"$ref":"#/components/schemas/NativeCurrency"},{"type":"null"}]},"subjectAddress":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"subjectKind":{"type":"string","enum":["eoa","smart-account","paymaster-deposit"]},"role":{"anyOf":[{"type":"string"},{"type":"null"}]},"subjectOwner":{"anyOf":[{"type":"string"},{"type":"null"}]},"requiredWei":{"anyOf":[{"type":"string"},{"type":"null"}]},"advisoryTotalWei":{"anyOf":[{"type":"string"},{"type":"null"}]},"observedWei":{"anyOf":[{"type":"string"},{"type":"null"}]},"status":{"type":"string","enum":["active","resolved","expired"]},"expiresAt":{"$ref":"#/components/schemas/TimestampEncoded"},"lastRefusalAt":{"$ref":"#/components/schemas/TimestampEncoded"},"resolvedAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["id","chainId","nativeCurrency","subjectAddress","subjectKind","role","subjectOwner","requiredWei","advisoryTotalWei","observedWei","status","expiresAt","lastRefusalAt","resolvedAt","createdAt","updatedAt"],"additionalProperties":false},"NativeCurrency":{"type":"object","properties":{"name":{"type":"string","description":"Full name of the chain's native currency.","examples":["Ether"]},"symbol":{"type":"string","description":"Ticker printed beside a native amount.","examples":["ETH"]},"decimals":{"type":"integer"}},"required":["name","symbol","decimals"],"additionalProperties":false,"description":"The chain's own currency, carried whole so a reader can render a native amount without looking it up."},"PlatformFundingRequirementFilters":{"type":"object","properties":{"chainId":{"anyOf":[{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},{"type":"object","properties":{"eq":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"ne":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"gte":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"lt":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"lte":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"between":{"type":"string","maxLength":64}},"additionalProperties":false}]},"subjectAddress":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"subjectKind":{"anyOf":[{"type":"string","enum":["eoa","smart-account","paymaster-deposit"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"status":{"anyOf":[{"type":"string","enum":["active","resolved","expired"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"expiresAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"lastRefusalAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"createdAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]}},"additionalProperties":false},"DeleteResponse":{"type":"object","properties":{"data":{"type":"null"}},"required":["data"],"additionalProperties":false,"description":"The resource is gone. `data` is null because nothing remains to return."},"AssetTypeTemplateStructureId":{"type":"string","minLength":1,"description":"Declared multi-class instrument structure identifier"},"FeatureTemplateConfigurationNode":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["scalar"]},"source":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["literal"]},"value":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}]}},"required":["kind","value"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["issuer-input"]},"inputId":{"type":"string","minLength":1,"maxLength":128},"value":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}]}},"required":["kind","inputId"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["member-token"]},"memberId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"}},"required":["kind","memberId"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["member-feature"]},"memberId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"},"featureId":{"type":"string","minLength":1,"maxLength":128},"instanceId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"}},"required":["kind","memberId","featureId"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["field"]},"address":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["field"]},"id":{"type":"string","minLength":1,"maxLength":128}},"required":["kind","id"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["entry"]},"id":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"}},"required":["kind","id"],"additionalProperties":false}]},"minItems":1,"maxItems":18},"memberId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"},"featureId":{"type":"string","minLength":1,"maxLength":128},"instanceId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"}},"required":["kind","address"],"additionalProperties":false}]}},"required":["kind","source"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["object"]},"fields":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureTemplateConfigurationNode"}}},"required":["kind","fields"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["repeatable"]},"entries":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"},"label":{"type":"string","minLength":1,"maxLength":256},"fields":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureTemplateConfigurationNode"}}},"required":["id","label","fields"],"additionalProperties":false}}},"required":["kind","entries"],"additionalProperties":false}]},"AssetTypeTemplateStructureMembersInput_1":{"type":"array","items":{"type":"object","properties":{"memberId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"},"label":{"type":"string","minLength":1,"maxLength":64},"features":{"type":"array","items":{"type":"object","properties":{"configuration":{"type":"object","properties":{"definitionId":{"type":"string","minLength":1,"maxLength":128},"definitionRevision":{"type":"integer","minimum":1},"fields":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureTemplateConfigurationNode"}}},"required":["definitionId","definitionRevision","fields"],"additionalProperties":false},"policy":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureFieldPolicy"}},"instanceId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"}},"required":["configuration"],"additionalProperties":false},"maxItems":128},"templateId":{"type":"string","minLength":1,"maxLength":255},"role":{"type":"string","pattern":"^[a-z][a-z0-9-]{1,31}$"}},"required":["memberId","label","features","templateId","role"],"additionalProperties":false}},"AssetTypeTemplateStructureMembersInput":{"type":"array","items":{"type":"object","properties":{"memberId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"},"label":{"type":"string","minLength":1,"maxLength":64},"features":{"type":"array","items":{"type":"object","properties":{"configuration":{"type":"object","properties":{"definitionId":{"type":"string","minLength":1,"maxLength":128},"definitionRevision":{"type":"integer","minimum":1},"fields":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureTemplateConfigurationNode"}}},"required":["definitionId","definitionRevision","fields"],"additionalProperties":false},"policy":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":128},"additionalProperties":{"$ref":"#/components/schemas/FeatureFieldPolicy"}},"instanceId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-7[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$","format":"uuid"}},"required":["configuration"],"additionalProperties":false},"maxItems":128},"templateId":{"type":"string","minLength":1,"maxLength":255},"role":{"type":"string","pattern":"^[a-z][a-z0-9-]{1,31}$"}},"required":["memberId","label","features","templateId","role"],"additionalProperties":false}},"PlatformHolidayCalendar":{"type":"object","properties":{"calendarId":{"type":"string","minLength":1},"jurisdiction":{"type":"string","minLength":1},"name":{"type":"string","minLength":1},"organizationId":{"anyOf":[{"$ref":"#/components/schemas/OrganizationId"},{"type":"null"}]},"isSystem":{"type":"boolean"},"parentCalendarId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"closures":{"type":"array","items":{"$ref":"#/components/schemas/PlatformHolidayClosure"}}},"required":["calendarId","jurisdiction","name","organizationId","isSystem","parentCalendarId","closures"],"additionalProperties":false},"PlatformHolidayClosure":{"type":"object","properties":{"observedOn":{"type":"string","minLength":1},"kind":{"type":"string","enum":["public","bank","settlement","exchange","oneOff"]},"knownFrom":{"$ref":"#/components/schemas/TimestampEncoded"},"source":{"type":"string","minLength":1},"calendarId":{"type":"string","minLength":1}},"required":["observedOn","kind","knownFrom","source","calendarId"],"additionalProperties":false},"PlatformActivityHistogram":{"type":"object","properties":{"timeSeries":{"type":"array","items":{"type":"object","properties":{"timestamp":{"$ref":"#/components/schemas/TimestampEncoded"},"count":{"type":"integer","minimum":0}},"required":["timestamp","count"],"additionalProperties":false}},"count":{"type":"integer","minimum":0}},"required":["timeSeries","count"],"additionalProperties":false},"StatsResolvedRange_1":{"type":"object","properties":{"interval":{"$ref":"#/components/schemas/StatsRangeInterval"},"from":{"$ref":"#/components/schemas/TimestampEncoded_1"},"to":{"$ref":"#/components/schemas/TimestampEncoded_1"},"isPreset":{"type":"string","enum":["true","false"]}},"required":["interval","from","to","isPreset"],"additionalProperties":false},"PlatformActivityEventRow":{"type":"object","properties":{"family":{"type":"string","enum":["evm"]},"id":{"type":"string"},"eventName":{"type":"string"},"txIndex":{"type":"string"},"blockNumber":{"type":"string"},"blockTimestamp":{"$ref":"#/components/schemas/TimestampEncoded"},"transactionHash":{"$ref":"#/components/schemas/EthereumHashEncoded"},"emitter":{"$ref":"#/components/schemas/PlatformActivityAddressRef"},"sender":{"$ref":"#/components/schemas/PlatformActivityAddressRef"},"metaTxSigner":{"anyOf":[{"$ref":"#/components/schemas/PlatformActivityAddressRef"},{"type":"null"}]},"displaySender":{"$ref":"#/components/schemas/PlatformActivityAddressRef"},"relayerKind":{"anyOf":[{"type":"string"},{"type":"null"}]},"relayer":{"anyOf":[{"$ref":"#/components/schemas/PlatformActivityAddressRef"},{"type":"null"}]},"userOpHash":{"anyOf":[{"$ref":"#/components/schemas/EthereumHashEncoded"},{"type":"null"}]},"paymaster":{"anyOf":[{"$ref":"#/components/schemas/PlatformActivityAddressRef"},{"type":"null"}]},"actualGasCost":{"anyOf":[{"type":"string"},{"type":"null"}]},"involved":{"type":"array","items":{"$ref":"#/components/schemas/PlatformActivityAddressRef"}},"values":{"type":"array","items":{"$ref":"#/components/schemas/PlatformActivityEventArgument"}}},"required":["family","id","eventName","txIndex","blockNumber","blockTimestamp","transactionHash","emitter","sender","metaTxSigner","displaySender","relayerKind","relayer","userOpHash","involved","values"],"additionalProperties":false},"PlatformActivityEventArgument":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"value":{"type":"string"}},"required":["id","name","value"],"additionalProperties":false},"PlatformActivityAddressRef":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"}},"required":["id"],"additionalProperties":false},"PlatformAssetRoleGrantRow":{"type":"object","properties":{"account":{"$ref":"#/components/schemas/EvmAddress"},"role":{"$ref":"#/components/schemas/AssetAccessControlRole"},"assetCount":{"type":"integer","description":"How many of the system's assets grant the wallet this role.","examples":[3]}},"required":["account","role","assetCount"],"additionalProperties":false},"AssetAccessControlRole":{"type":"string","enum":["admin","custodian","emergency","fundsManager","governance","saleAdmin","supplyManagement"],"description":"Asset role the wallet holds, granted by each asset's own access manager.","examples":["supplyManagement"]},"PlatformParticipantRolesRow":{"type":"object","properties":{"participantId":{"anyOf":[{"type":"string"},{"type":"null"}]},"displayName":{"type":"string"},"signingAddress":{"$ref":"#/components/schemas/EvmAddress"},"operationsAddress":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"isContract":{"type":"boolean","enum":[false]},"eoaRoles":{"type":"array","items":{"$ref":"#/components/schemas/SystemAccessControlRole"}},"smartWalletRoles":{"type":"array","items":{"$ref":"#/components/schemas/SystemAccessControlRole"}},"missingRoles":{"type":"array","items":{"$ref":"#/components/schemas/SystemAccessControlRole"}},"drift":{"type":"boolean"}},"required":["participantId","displayName","signingAddress","operationsAddress","isContract","eoaRoles","smartWalletRoles","missingRoles","drift"],"additionalProperties":false},"SystemAccessControlRole":{"type":"string","enum":["admin","auditor","systemManager","tokenManager","complianceManager","claimPolicyManager","claimIssuer","identityManager","feedsManager","gasManager","tradingVenueOperator","assetDesigner"]},"PlatformSystemRoleSetBatchOutput":{"type":"object","properties":{"participants":{"type":"array","items":{"$ref":"#/components/schemas/PlatformSystemRoleSetBatchParticipant"}},"grant":{"type":"array","items":{"$ref":"#/components/schemas/SystemAccessControlRole"},"description":"Roles the batch added to at least one wallet.","examples":[["auditor"]]},"revoke":{"type":"array","items":{"$ref":"#/components/schemas/SystemAccessControlRole"},"description":"Roles the batch removed from at least one wallet.","examples":[[]]}},"required":["participants","grant","revoke"],"additionalProperties":false},"PlatformSystemRoleSetBatchParticipant":{"type":"object","properties":{"participantId":{"$ref":"#/components/schemas/ParticipantId_7"},"accounts":{"type":"array","items":{"$ref":"#/components/schemas/EvmAddress"},"description":"Wallets of the participant the change covered."}},"required":["participantId","accounts"],"additionalProperties":false},"ParticipantId_7":{"type":"string","minLength":1,"description":"Participant the change covered."},"PlatformSystemRoleSetBatchInput":{"type":"object","properties":{"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]},"participantIds":{"type":"array","prefixItems":[{"$ref":"#/components/schemas/ParticipantId_6"}],"minItems":1,"items":{"$ref":"#/components/schemas/ParticipantId_6"},"description":"Participants the change applies to, at most 50. Every wallet of each participant is covered."},"grant":{"type":"array","items":{"$ref":"#/components/schemas/SystemAccessControlRole"},"description":"System roles to add to every named participant.","examples":[["auditor"]]},"revoke":{"type":"array","items":{"$ref":"#/components/schemas/SystemAccessControlRole"},"description":"System roles to remove from every named participant.","examples":[[]]}},"required":["participantIds","grant","revoke"],"additionalProperties":false},"ParticipantId_6":{"type":"string","minLength":1,"description":"Participant whose wallets receive or lose the roles."},"PlatformSystemRoleSetOutput":{"type":"object","properties":{"accounts":{"type":"array","items":{"$ref":"#/components/schemas/EvmAddress"},"description":"Wallets the role change applies to.","examples":[["0x70997970C51812dc3A010C7d01b50e0d17dc79C8"]]},"grant":{"type":"array","items":{"$ref":"#/components/schemas/SystemAccessControlRole"},"description":"Roles the request added.","examples":[["tokenManager"]]},"revoke":{"type":"array","items":{"$ref":"#/components/schemas/SystemAccessControlRole"},"description":"Roles the request removed.","examples":[["complianceManager"]]}},"required":["accounts","grant","revoke"],"additionalProperties":false},"PlatformSystemRolesRow":{"type":"object","properties":{"roles":{"type":"array","items":{"$ref":"#/components/schemas/AccessControlRole"}},"account":{"$ref":"#/components/schemas/EvmAddress"}},"required":["roles","account"],"additionalProperties":false},"PlatformAddonFactoryDetail":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"name":{"type":"string"},"typeId":{"$ref":"#/components/schemas/AddonFactoryTypeId"},"version":{"type":"number"},"type":{"$ref":"#/components/schemas/AddonFactoryTypeId"}},"required":["id","name","typeId","version","type"],"additionalProperties":false},"AddonFactoryTypeId":{"type":"string","enum":["push-airdrop","vesting-airdrop","time-bound-airdrop","fixed-yield-schedule","xvp-settlement","trading-venue","token-sale","historical-balances-feature-factory","maturity-redemption-feature-factory","hold-feature-factory","transaction-fee-feature-factory","transaction-fee-accounting-feature-factory","voting-power-feature-factory","external-transaction-fee-feature-factory","fixed-treasury-yield-feature-factory","dividend-yield-feature-factory","interest-yield-feature-factory","aum-fee-feature-factory","conversion-feature-factory","conversion-minter-feature-factory","distribution-waterfall-feature-factory","permit-feature-factory","scalar-feed-aggregator-adapter-factory","issuer-signed-scalar-feed","paymaster-signer","token-governance","token-governance-timelock","price-resolver","document-anchor-registry","access-manager","unknown"],"description":"Addon factory typeId identifier"},"PlatformSystemView":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"canResume":{"type":"boolean"},"chainId":{"anyOf":[{"type":"number"},{"type":"null"}]},"deployedInTransaction":{"type":"string"},"tokenFactoryRegistry":{"anyOf":[{"$ref":"#/components/schemas/PlatformSystemTokenFactoryRegistry"},{"type":"null"}]},"systemAddonRegistry":{"anyOf":[{"$ref":"#/components/schemas/PlatformSystemAddonRegistry"},{"type":"null"}]},"compliance":{"anyOf":[{"$ref":"#/components/schemas/PlatformSystemCompliance"},{"type":"null"}]},"complianceModuleRegistry":{"anyOf":[{"$ref":"#/components/schemas/PlatformSystemComplianceModuleRegistry"},{"type":"null"}]},"systemAccessManager":{"anyOf":[{"$ref":"#/components/schemas/PlatformSystemAccessManager"},{"type":"null"}]},"identityRegistryStorage":{"anyOf":[{"$ref":"#/components/schemas/PlatformRegistryRef"},{"type":"null"}]},"identityRegistry":{"anyOf":[{"$ref":"#/components/schemas/PlatformSystemIdentityRegistry"},{"type":"null"}]},"trustedIssuersRegistry":{"anyOf":[{"$ref":"#/components/schemas/PlatformRegistryRef"},{"type":"null"}]},"topicSchemeRegistry":{"anyOf":[{"$ref":"#/components/schemas/PlatformRegistryRef"},{"type":"null"}]},"externalTokenRegistry":{"anyOf":[{"$ref":"#/components/schemas/PlatformRegistryRef"},{"type":"null"}]},"userPermissions":{"anyOf":[{"$ref":"#/components/schemas/PlatformSystemUserPermissions"},{"type":"null"}]},"userIdentity":{"anyOf":[{"$ref":"#/components/schemas/PlatformSystemUserIdentity"},{"type":"null"}]},"status":{"$ref":"#/components/schemas/PlatformSystemStatus"},"updatedAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"userIdentityRegistered":{"type":"boolean"},"isZeroGasNetwork":{"type":"boolean"}},"required":["id","canResume","chainId","deployedInTransaction","tokenFactoryRegistry","systemAddonRegistry","compliance","complianceModuleRegistry","systemAccessManager","identityRegistryStorage","identityRegistry","trustedIssuersRegistry","topicSchemeRegistry","externalTokenRegistry","status","updatedAt","userIdentityRegistered","isZeroGasNetwork"],"additionalProperties":false},"PlatformSystemStatus":{"type":"string","enum":["not_created","bootstrapping","completed","unknown"]},"PlatformSystemUserIdentity":{"type":"object","properties":{"address":{"$ref":"#/components/schemas/EvmAddress"},"registered":{"anyOf":[{"type":"object","properties":{"isRegistered":{"type":"boolean","enum":[true]},"country":{"anyOf":[{"$ref":"#/components/schemas/ISOCountryCode"},{"type":"null"}]}},"required":["isRegistered","country"],"additionalProperties":false},{"type":"null"}]}},"required":["address"],"additionalProperties":false},"PlatformSystemUserPermissions":{"type":"object","properties":{"roles":{"$ref":"#/components/schemas/PlatformSystemRoleFlagSet"},"holdsAssetGovernanceRole":{"type":"boolean"},"actions":{"$ref":"#/components/schemas/PlatformSystemActions"}},"required":["roles","holdsAssetGovernanceRole","actions"],"additionalProperties":false},"PlatformSystemActions":{"type":"object","properties":{"accountNativeBalanceRead":{"type":"boolean"},"accountSearch":{"type":"boolean"},"addonCreate":{"type":"boolean"},"adminList":{"type":"boolean"},"claimCreate":{"type":"boolean"},"claimList":{"type":"boolean"},"claimRevoke":{"type":"boolean"},"complianceModuleCreate":{"type":"boolean"},"complianceModuleRemove":{"type":"boolean"},"fixedYieldScheduleCreate":{"type":"boolean"},"tokenSaleCreate":{"type":"boolean"},"xvpCreate":{"type":"boolean"},"grantRole":{"type":"boolean"},"identityCreate":{"type":"boolean"},"identityRead":{"type":"boolean"},"identitySearch":{"type":"boolean"},"identityList":{"type":"boolean"},"entityList":{"type":"boolean"},"identityRegister":{"type":"boolean"},"identityUpdateCountry":{"type":"boolean"},"kycDelete":{"type":"boolean"},"kycList":{"type":"boolean"},"kycRead":{"type":"boolean"},"kycUpsert":{"type":"boolean"},"kycProfileRead":{"type":"boolean"},"kycVersionsList":{"type":"boolean"},"kycVersionCreate":{"type":"boolean"},"kycVersionRead":{"type":"boolean"},"kycVersionUpdate":{"type":"boolean"},"kycVersionSubmit":{"type":"boolean"},"kycVersionApprove":{"type":"boolean"},"kycVersionReject":{"type":"boolean"},"kycVersionRequestUpdate":{"type":"boolean"},"kycDocumentUpload":{"type":"boolean"},"kycDocumentList":{"type":"boolean"},"kycDocumentDelete":{"type":"boolean"},"kycDocumentRead":{"type":"boolean"},"kycActionRequestsList":{"type":"boolean"},"revokeRole":{"type":"boolean"},"tokenCreate":{"type":"boolean"},"tokenFactoryCreate":{"type":"boolean"},"topicCreate":{"type":"boolean"},"topicDelete":{"type":"boolean"},"topicUpdate":{"type":"boolean"},"trustedIssuerCreate":{"type":"boolean"},"trustedIssuerDelete":{"type":"boolean"},"trustedIssuerUpdate":{"type":"boolean"},"userCreate":{"type":"boolean"},"userList":{"type":"boolean"},"userRead":{"type":"boolean"},"userSearch":{"type":"boolean"},"userSecurityManage":{"type":"boolean"}},"required":["accountNativeBalanceRead","accountSearch","addonCreate","adminList","claimCreate","claimList","claimRevoke","complianceModuleCreate","complianceModuleRemove","fixedYieldScheduleCreate","tokenSaleCreate","xvpCreate","grantRole","identityCreate","identityRead","identitySearch","identityList","entityList","identityRegister","identityUpdateCountry","kycDelete","kycList","kycRead","kycUpsert","kycProfileRead","kycVersionsList","kycVersionCreate","kycVersionRead","kycVersionUpdate","kycVersionSubmit","kycVersionApprove","kycVersionReject","kycVersionRequestUpdate","kycDocumentUpload","kycDocumentList","kycDocumentDelete","kycDocumentRead","kycActionRequestsList","revokeRole","tokenCreate","tokenFactoryCreate","topicCreate","topicDelete","topicUpdate","trustedIssuerCreate","trustedIssuerDelete","trustedIssuerUpdate","userCreate","userList","userRead","userSearch","userSecurityManage"],"additionalProperties":false},"PlatformSystemRoleFlagSet":{"type":"object","properties":{"addonManager":{"type":"boolean"},"admin":{"type":"boolean"},"auditor":{"type":"boolean"},"systemManager":{"type":"boolean"},"tokenManager":{"type":"boolean"},"complianceManager":{"type":"boolean"},"claimPolicyManager":{"type":"boolean"},"claimIssuer":{"type":"boolean"},"identityManager":{"type":"boolean"},"feedsManager":{"type":"boolean"},"gasManager":{"type":"boolean"},"tradingVenueOperator":{"type":"boolean"},"assetDesigner":{"type":"boolean"}},"required":["addonManager","admin","auditor","systemManager","tokenManager","complianceManager","claimPolicyManager","claimIssuer","identityManager","feedsManager","gasManager","tradingVenueOperator","assetDesigner"],"additionalProperties":false},"PlatformRegistryRef":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"}},"required":["id"],"additionalProperties":false},"PlatformSystemIdentityRegistry":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"registeredIdentities":{"type":"array","items":{"$ref":"#/components/schemas/PlatformRegisteredIdentity"}}},"required":["id","registeredIdentities"],"additionalProperties":false},"PlatformRegisteredIdentity":{"type":"object","properties":{"identity":{"$ref":"#/components/schemas/PlatformRegistryRef"},"country":{"anyOf":[{"type":"number"},{"type":"null"}]},"status":{"$ref":"#/components/schemas/IndexedIdentityStatus"}},"required":["identity","country","status"],"additionalProperties":false},"IndexedIdentityStatus":{"type":"string","enum":["PENDING","ACTIVE"],"description":"Indexed identity registration status"},"PlatformSystemAccessManager":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"accessControl":{"$ref":"#/components/schemas/AccessControl"}},"required":["id","accessControl"],"additionalProperties":false},"PlatformSystemComplianceModuleRegistry":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"complianceModules":{"type":"array","items":{"$ref":"#/components/schemas/PlatformSystemComplianceModule"}}},"required":["id","complianceModules"],"additionalProperties":false},"PlatformSystemComplianceModule":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EthereumCompositeIdEncoded"},"module":{"$ref":"#/components/schemas/EvmAddress"},"typeId":{"$ref":"#/components/schemas/ComplianceTypeId"},"name":{"type":"string"}},"required":["id","module","typeId","name"],"additionalProperties":false},"PlatformSystemCompliance":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"complianceModuleConfigs":{"type":"array","items":{"$ref":"#/components/schemas/PlatformGlobalComplianceModuleConfig"}}},"required":["id","complianceModuleConfigs"],"additionalProperties":false},"PlatformGlobalComplianceModuleConfig":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EthereumCompositeIdEncoded"},"complianceModule":{"$ref":"#/components/schemas/PlatformSystemComplianceModule"}},"required":["id","complianceModule"],"additionalProperties":false},"PlatformSystemAddonRegistry":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"version":{"type":"number"},"systemAddons":{"type":"array","items":{"$ref":"#/components/schemas/PlatformSystemAddon"}}},"required":["id","version","systemAddons"],"additionalProperties":false},"PlatformSystemAddon":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"name":{"type":"string"},"typeId":{"$ref":"#/components/schemas/AddonFactoryTypeIdWithVault"},"version":{"type":"number"}},"required":["id","name","typeId","version"],"additionalProperties":false},"AddonFactoryTypeIdWithVault":{"type":"string","enum":["push-airdrop","vesting-airdrop","time-bound-airdrop","fixed-yield-schedule","xvp-settlement","trading-venue","token-sale","historical-balances-feature-factory","maturity-redemption-feature-factory","hold-feature-factory","transaction-fee-feature-factory","transaction-fee-accounting-feature-factory","voting-power-feature-factory","external-transaction-fee-feature-factory","fixed-treasury-yield-feature-factory","dividend-yield-feature-factory","interest-yield-feature-factory","aum-fee-feature-factory","conversion-feature-factory","conversion-minter-feature-factory","distribution-waterfall-feature-factory","permit-feature-factory","scalar-feed-aggregator-adapter-factory","issuer-signed-scalar-feed","paymaster-signer","token-governance","token-governance-timelock","price-resolver","document-anchor-registry","access-manager","unknown","vault"],"description":"Addon factory typeId identifier"},"PlatformSystemTokenFactoryRegistry":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"version":{"type":"number"},"tokenFactories":{"type":"array","items":{"$ref":"#/components/schemas/PlatformSystemTokenFactory"}}},"required":["id","version","tokenFactories"],"additionalProperties":false},"PlatformSystemTokenFactory":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"name":{"type":"string"},"typeId":{"$ref":"#/components/schemas/AssetFactoryTypeId"}},"required":["id","name","typeId"],"additionalProperties":false},"AssetFactoryTypeId":{"type":"string","enum":["bond","equity","fund","stablecoin","deposit","real-estate","precious-metal","dalp-asset"],"description":"Asset factory typeId identifier"},"PlatformAddonFactoryRow":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"name":{"type":"string"},"typeId":{"$ref":"#/components/schemas/AddonFactoryTypeId"},"deployedInTransaction":{"$ref":"#/components/schemas/EthereumHashEncoded"},"account":{"$ref":"#/components/schemas/EvmAddress"},"kind":{"$ref":"#/components/schemas/PlatformAddonFactoryKind"},"systemAddonImplementation":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"factoryImplementation":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"instanceImplementation":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]}},"required":["id","name","typeId","deployedInTransaction","account","kind","systemAddonImplementation","factoryImplementation","instanceImplementation"],"additionalProperties":false},"PlatformAddonFactoryKind":{"type":"string","enum":["singleton","factory","unknown"]},"PlatformAddonFactoryFilters":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000},"id":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"name":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"typeId":{"anyOf":[{"$ref":"#/components/schemas/AddonType"},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"account":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"kind":{"anyOf":[{"$ref":"#/components/schemas/PlatformAddonFactoryKind"},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]}},"additionalProperties":false},"AddonType":{"type":"string","enum":["push-airdrop","vesting-airdrop","time-bound-airdrop","fixed-yield-schedule","xvp-settlement","trading-venue","token-sale","historical-balances-feature-factory","maturity-redemption-feature-factory","hold-feature-factory","transaction-fee-feature-factory","transaction-fee-accounting-feature-factory","voting-power-feature-factory","external-transaction-fee-feature-factory","fixed-treasury-yield-feature-factory","dividend-yield-feature-factory","interest-yield-feature-factory","aum-fee-feature-factory","conversion-feature-factory","conversion-minter-feature-factory","distribution-waterfall-feature-factory","permit-feature-factory","scalar-feed-aggregator-adapter-factory","issuer-signed-scalar-feed","paymaster-signer","token-governance","token-governance-timelock","price-resolver","document-anchor-registry","access-manager"],"description":"Type of system addon"},"PlatformAccessManagerAddressPrediction":{"type":"object","properties":{"predictedAddress":{"$ref":"#/components/schemas/EvmAddress"}},"required":["predictedAddress"],"additionalProperties":false},"PlatformFactoryAddressAvailability":{"type":"object","properties":{"isAvailable":{"type":"boolean"}},"required":["isAvailable"],"additionalProperties":false},"PlatformTokenFactoryDetail":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"name":{"type":"string"},"typeId":{"$ref":"#/components/schemas/AssetFactoryTypeId"},"factoryImplementation":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"instanceImplementation":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]}},"required":["id","name","typeId","factoryImplementation","instanceImplementation"],"additionalProperties":false},"PlatformTokenFactoryRow":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"name":{"type":"string"},"typeId":{"$ref":"#/components/schemas/AssetFactoryTypeId"},"hasTokens":{"type":"boolean"},"tokenExtensions":{"$ref":"#/components/schemas/AssetExtensionArray"},"factoryImplementation":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"instanceImplementation":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]}},"required":["id","name","typeId","hasTokens","tokenExtensions","factoryImplementation","instanceImplementation"],"additionalProperties":false},"PlatformTokenFactoryFilters":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000},"id":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"name":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"typeId":{"anyOf":[{"$ref":"#/components/schemas/AssetFactoryTypeId"},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"hasTokens":{"anyOf":[{"type":"string","enum":["true","false"]},{"type":"object","properties":{"eq":{"type":"string","enum":["true","false"]},"ne":{"type":"string","enum":["true","false"]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]}},"additionalProperties":false}]}},"additionalProperties":false},"PlatformTokenFeatureTypeId":{"type":"string","enum":["aum-fee","transaction-fee","transaction-fee-accounting","external-transaction-fee","maturity-redemption","conversion","conversion-minter","fixed-treasury-yield","historical-balances","voting-power","metadata","permit"]},"IdentityStatus_1":{"type":"string","enum":["pending","registered"],"description":"On-chain identity registration status"},"EntityType":{"type":"string","enum":["eoa","token","asset","bond","equity","fund","deposit","stablecoin","real-estate","precious-metal","system","smart-account","contract"]},"PlatformDirectoryCatalog":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"systemImplementation":{"$ref":"#/components/schemas/EvmAddress"},"systemAccessManagerImplementation":{"$ref":"#/components/schemas/EvmAddress"},"forwarder":{"$ref":"#/components/schemas/EvmAddress"},"systemFactory":{"$ref":"#/components/schemas/EvmAddress"},"identityFactory":{"$ref":"#/components/schemas/EvmAddress"},"identityFactoryImplementation":{"$ref":"#/components/schemas/EvmAddress"},"identityImplementations":{"$ref":"#/components/schemas/PlatformDirectoryIdentityImplementations"},"systemImplementations":{"$ref":"#/components/schemas/PlatformDirectorySystemImplementations"},"tokenTypes":{"type":"array","items":{"$ref":"#/components/schemas/PlatformDirectoryTokenType"}},"complianceModuleTypes":{"type":"array","items":{"$ref":"#/components/schemas/PlatformDirectoryComplianceModuleType"}},"addonTypes":{"type":"array","items":{"$ref":"#/components/schemas/PlatformDirectoryAddonType"}}},"required":["id","systemImplementation","systemAccessManagerImplementation","forwarder","systemFactory","identityFactory","identityFactoryImplementation","identityImplementations","systemImplementations","tokenTypes","complianceModuleTypes","addonTypes"],"additionalProperties":false},"PlatformDirectoryAddonType":{"type":"object","properties":{"id":{"type":"string"},"typeId":{"type":"string"},"name":{"type":"string"},"kind":{"$ref":"#/components/schemas/PlatformDirectoryAddonKind"},"factoryImplementation":{"$ref":"#/components/schemas/EvmAddress"},"instanceImplementation":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"registeredAt":{"$ref":"#/components/schemas/TimestampEncoded"},"isExperimental":{"type":"boolean"}},"required":["id","typeId","name","kind","factoryImplementation","instanceImplementation","registeredAt","isExperimental"],"additionalProperties":false},"PlatformDirectoryAddonKind":{"type":"string","enum":["unknown","singleton","factory"]},"PlatformDirectoryComplianceModuleType":{"type":"object","properties":{"id":{"type":"string"},"typeId":{"type":"string"},"name":{"type":"string"},"implementation":{"$ref":"#/components/schemas/EvmAddress"},"registeredAt":{"$ref":"#/components/schemas/TimestampEncoded"},"isExperimental":{"type":"boolean"}},"required":["id","typeId","name","implementation","registeredAt","isExperimental"],"additionalProperties":false},"PlatformDirectoryTokenType":{"type":"object","properties":{"id":{"type":"string"},"typeId":{"type":"string"},"name":{"type":"string"},"implementation":{"$ref":"#/components/schemas/EvmAddress"},"factoryImplementation":{"$ref":"#/components/schemas/EvmAddress"},"registeredAt":{"$ref":"#/components/schemas/TimestampEncoded"},"isExperimental":{"type":"boolean"}},"required":["id","typeId","name","implementation","factoryImplementation","registeredAt","isExperimental"],"additionalProperties":false},"PlatformDirectorySystemImplementations":{"type":"object","properties":{"complianceImplementation":{"$ref":"#/components/schemas/EvmAddress"},"identityRegistryImplementation":{"$ref":"#/components/schemas/EvmAddress"},"identityRegistryStorageImplementation":{"$ref":"#/components/schemas/EvmAddress"},"trustedIssuersRegistryImplementation":{"$ref":"#/components/schemas/EvmAddress"},"trustedIssuersMetaRegistryImplementation":{"$ref":"#/components/schemas/EvmAddress"},"topicSchemeRegistryImplementation":{"$ref":"#/components/schemas/EvmAddress"},"tokenAccessManagerImplementation":{"$ref":"#/components/schemas/EvmAddress"},"tokenFactoryRegistryImplementation":{"$ref":"#/components/schemas/EvmAddress"},"complianceModuleRegistryImplementation":{"$ref":"#/components/schemas/EvmAddress"},"addonRegistryImplementation":{"$ref":"#/components/schemas/EvmAddress"},"identityVerificationComplianceModule":{"$ref":"#/components/schemas/EvmAddress"},"externalTokenRegistryImplementation":{"$ref":"#/components/schemas/EvmAddress"}},"required":["complianceImplementation","identityRegistryImplementation","identityRegistryStorageImplementation","trustedIssuersRegistryImplementation","trustedIssuersMetaRegistryImplementation","topicSchemeRegistryImplementation","tokenAccessManagerImplementation","tokenFactoryRegistryImplementation","complianceModuleRegistryImplementation","addonRegistryImplementation","identityVerificationComplianceModule","externalTokenRegistryImplementation"],"additionalProperties":false},"PlatformDirectoryIdentityImplementations":{"type":"object","properties":{"identityImplementation":{"$ref":"#/components/schemas/EvmAddress"},"contractIdentityImplementation":{"$ref":"#/components/schemas/EvmAddress"}},"required":["identityImplementation","contractIdentityImplementation"],"additionalProperties":false},"PlatformSystemReadRecord":{"anyOf":[{"$ref":"#/components/schemas/PlatformSystemView"},{"$ref":"#/components/schemas/PlatformSystemSummaryView"}]},"PlatformSystemSummaryView":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"canResume":{"type":"boolean"},"chainId":{"anyOf":[{"type":"number"},{"type":"null"}]},"deployedInTransaction":{"type":"string"},"tokenFactoryRegistry":{"anyOf":[{"$ref":"#/components/schemas/PlatformSystemTokenFactoryRegistry"},{"type":"null"}]},"systemAddonRegistry":{"anyOf":[{"$ref":"#/components/schemas/PlatformSystemAddonRegistry"},{"type":"null"}]},"compliance":{"anyOf":[{"$ref":"#/components/schemas/PlatformSystemCompliance"},{"type":"null"}]},"complianceModuleRegistry":{"anyOf":[{"$ref":"#/components/schemas/PlatformSystemComplianceModuleRegistry"},{"type":"null"}]},"systemAccessManager":{"anyOf":[{"$ref":"#/components/schemas/PlatformSystemAccessManager"},{"type":"null"}]},"identityRegistryStorage":{"anyOf":[{"$ref":"#/components/schemas/PlatformRegistryRef"},{"type":"null"}]},"identityRegistry":{"anyOf":[{"$ref":"#/components/schemas/PlatformSystemIdentityRegistry"},{"type":"null"}]},"trustedIssuersRegistry":{"anyOf":[{"$ref":"#/components/schemas/PlatformRegistryRef"},{"type":"null"}]},"topicSchemeRegistry":{"anyOf":[{"$ref":"#/components/schemas/PlatformRegistryRef"},{"type":"null"}]},"externalTokenRegistry":{"anyOf":[{"$ref":"#/components/schemas/PlatformRegistryRef"},{"type":"null"}]},"userPermissions":{"$ref":"#/components/schemas/PlatformSystemUserPermissionsSummary"},"userIdentity":{"anyOf":[{"$ref":"#/components/schemas/PlatformSystemUserIdentity"},{"type":"null"}]},"status":{"$ref":"#/components/schemas/PlatformSystemStatus"},"updatedAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"userIdentityRegistered":{"type":"boolean"},"isZeroGasNetwork":{"type":"boolean"}},"additionalProperties":false},"PlatformSystemUserPermissionsSummary":{"type":"object","properties":{"roles":{"$ref":"#/components/schemas/PlatformSystemRoleFlagSet"},"holdsAssetGovernanceRole":{"type":"boolean"}},"required":["roles","holdsAssetGovernanceRole"],"additionalProperties":false},"systemFieldsQuery":{"type":"object","properties":{"system":{"type":"string"}},"additionalProperties":false,"description":"Sparse fieldset for the system resource this response carries. Only named members are present, and a member this resource does not publish is refused.","examples":[{"system":"id,chainId,status,userIdentityRegistered,isZeroGasNetwork,userIdentity,userPermissions"}]},"PlatformSystemListRow":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"isBootstrapped":{"type":"boolean"},"tokenCount":{"type":"integer"},"systemCreatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["id","isBootstrapped","tokenCount","systemCreatedAt"],"additionalProperties":false},"PlatformOperatorWallet":{"type":"object","properties":{"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"address":{"$ref":"#/components/schemas/EvmAddress"},"label":{"type":"string"},"nativeCurrency":{"anyOf":[{"$ref":"#/components/schemas/NativeCurrency"},{"type":"null"}]},"nativeBalance":{"anyOf":[{"$ref":"#/components/schemas/ApiBigIntEncoded"},{"type":"null"}]},"nativeBalanceObservedAtBlock":{"anyOf":[{"$ref":"#/components/schemas/ApiBigIntEncoded"},{"type":"null"}]},"nativeBalanceObservedAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"zeroGas":{"type":"boolean"}},"required":["chainId","address","label","nativeCurrency","nativeBalance","nativeBalanceObservedAtBlock","nativeBalanceObservedAt"],"additionalProperties":false},"HTTPURL":{"type":"string","maxLength":2048},"TtlInput":{"anyOf":[{"$ref":"#/components/schemas/TtlShorthand"},{"type":"integer","minimum":0}],"description":"A TTL as a duration shorthand such as '24h', or as nonnegative integer milliseconds"},"TtlShorthand":{"type":"string","maxLength":16,"pattern":"^(\\d+)([smhd])$","description":"A TTL written as a whole number of seconds, minutes, hours or days, such as '30s', '5m', '24h' or '7d'"},"AdminNetworkLifecycle":{"type":"object","properties":{"networkName":{"type":"string","minLength":1},"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"paused":{"type":"boolean"},"pauseReason":{"anyOf":[{"type":"string","enum":["admin","endpoint-removed","directory-changed"]},{"type":"null"}]},"version":{"type":"integer","minimum":0}},"required":["networkName","chainId","paused","pauseReason","version"],"additionalProperties":false},"AdminNetworkLifecycleInput":{"type":"object","properties":{"paused":{"type":"boolean"}},"required":["paused"],"additionalProperties":false},"PlatformSetupCompleteInputEncoded":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/JsonValue"}},"ComplianceTemplateJurisdictionsEncoded":{"type":"array","items":{"type":"string"}},"PlatformProfileSectionFilters":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000},"name":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"isSystem":{"anyOf":[{"type":"string","enum":["true","false"]},{"type":"object","properties":{"eq":{"type":"string","enum":["true","false"]},"ne":{"type":"string","enum":["true","false"]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]}},"additionalProperties":false}]},"retired":{"anyOf":[{"type":"string","enum":["true","false"]},{"type":"object","properties":{"eq":{"type":"string","enum":["true","false"]},"ne":{"type":"string","enum":["true","false"]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]}},"additionalProperties":false}]},"position":{"anyOf":[{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},{"type":"object","properties":{"eq":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"ne":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"gte":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"lt":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"lte":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"between":{"type":"string","maxLength":64}},"additionalProperties":false}]},"createdAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"updatedAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]}},"additionalProperties":false},"TokenFeatureId":{"type":"string","enum":["historical-balances","maturity-redemption","fixed-treasury-yield","dividend-yield","interest-yield","voting-power","aum-fee","transaction-fee","transaction-fee-accounting","external-transaction-fee","conversion","conversion-minter","distribution-waterfall","permit","hold"]},"CSSColor":{"type":"string","maxLength":256},"AccountMode":{"type":"string","enum":["eoa-self-pay","eoa-gasless","aa"]},"PlatformSettingReadResult":{"type":"object","properties":{"value":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["value"],"additionalProperties":false},"CustodyAccountId":{"type":"string","minLength":1,"description":"Global custody account identifier"},"OrganizationId_5":{"type":"string","minLength":1,"description":"The organization the caller believes it is removing the member from. When present the platform compares it to the session's active organization and refuses the request on a mismatch, so a session switched elsewhere cannot redirect the removal at another tenant. Omit it to remove from whatever organization the session is active in."},"DalpPublicHttpError412":{"type":"object","properties":{"code":{"type":"string","minLength":1,"description":"Stable machine name for this error. Prefer the `data.id` DALP code for new clients.","examples":["USER_EMAIL_ALREADY_EXISTS"]},"status":{"type":"integer","enum":[412],"description":"HTTP status for this public error.","examples":[412]},"message":{"type":"string","minLength":1,"description":"Short headline that names what failed. Do not parse this string for control flow.","examples":["A user with this email already exists."]},"data":{"$ref":"#/components/schemas/DALP_PUBLIC_ERROR_DATA_SCHEMA"}},"required":["code","status","message","data"],"additionalProperties":false,"description":"A conditional header sent with the request does not hold for the current resource. Read the resource again and retry with the entity-tag from that read.","examples":[{"code":"PRECONDITION_FAILED","status":412,"message":"A precondition on the request was not met","data":{"id":"DALP-0681","why":"The `If-Match` or `If-None-Match` condition sent with the request does not hold for the current resource: it was changed, created, or removed since the version the request was built against.","fix":"Read the resource again, apply your change to the version you just read, and send the request with the entity-tag from that read.","retryable":false,"category":"client"}}]},"ActivityStatsOutput":{"type":"object","properties":{"timeSeries":{"type":"array","items":{"$ref":"#/components/schemas/ActivityTimeSeriesItem"},"description":"Ordered histogram buckets covering the requested range. Empty buckets may be omitted or sent with `count` 0."},"count":{"type":"integer","minimum":0,"description":"Total matching events in the range. Equal to the sum of `timeSeries[].count`.","examples":[42]}},"required":["timeSeries","count"],"additionalProperties":false,"description":"Activity histogram for one account. `count` is the range total; `timeSeries` breaks that total into time buckets.","examples":[{"timeSeries":[{"timestamp":"2026-03-01T00:00:00.000Z","count":4},{"timestamp":"2026-03-02T00:00:00.000Z","count":17},{"timestamp":"2026-03-03T00:00:00.000Z","count":21}],"count":42}]},"ActivityTimeSeriesItem":{"type":"object","properties":{"timestamp":{"$ref":"#/components/schemas/TimestampEncoded"},"count":{"type":"integer","minimum":0,"description":"Number of matching events in this bucket.","examples":[4,17]}},"required":["timestamp","count"],"additionalProperties":false,"description":"One time-bucket in an activity histogram. `count` is events whose timestamp falls in this bucket."},"StatsResolvedRange":{"type":"object","properties":{"interval":{"$ref":"#/components/schemas/StatsRangeInterval"},"from":{"$ref":"#/components/schemas/TimestampEncoded_1"},"to":{"$ref":"#/components/schemas/TimestampEncoded_1"},"isPreset":{"type":"string","enum":["true","false"]}},"required":["interval","from","to","isPreset"],"additionalProperties":false,"description":"Inclusive time window for the series. Use a resolved stats range such as the last 30 days."},"JoinableParticipants":{"type":"object","properties":{"participants":{"type":"array","items":{"$ref":"#/components/schemas/JoinableParticipant"},"description":"Every personal participant you own, drivable here or not. None drivable means create a new one or add a wallet to one on the account-level participants page."},"providers":{"type":"array","items":{"$ref":"#/components/schemas/JoinableProvider"},"description":"The organization's providers a new personal participant may be created on."},"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"aaEnabled":{"type":"boolean","description":"Whether a new participant here may run through a smart wallet. The same account-abstraction verdict the create applies, resolved for this organization and its network rather than for the caller's session: somebody joining or switching is looking at an organization that is not the one their headers name, so a session-scoped answer offers a smart wallet that is not available in this organization, and withholds one that is. False for an organization with no system yet, where a smart wallet is not available."},"pendingParticipantId":{"anyOf":[{"$ref":"#/components/schemas/ParticipantId"},{"type":"null"}],"description":"The personal participant this membership already acts as that is still waiting for its owner to prove its key, or `null`. It is absent from `participants` because a pending shell can act nowhere, so the honest next step for this person is proving that key rather than picking another participant. Only its own owner ever sees it here."},"canEnableProvider":{"type":"boolean","description":"Whether you may add a provider to the list above. False for anyone but an administrator of this organization acting in it, which includes everyone who reaches this operation on an open invitation. An organization with no provider you can be created on is a dead end for a caller this is false for, and the honest answer is that its administrator has to enable one."}},"required":["participants","providers","chainId","aaEnabled","pendingParticipantId","canEnableProvider"],"additionalProperties":false},"JoinableProvider":{"type":"object","properties":{"providerConfigurationId":{"type":"string","description":"The configuration a new personal participant would be created on."},"provider":{"type":"string","description":"The custody provider kind."},"managedSigning":{"type":"boolean","description":"Whether the platform holds the key and signs with it unattended. The provider kind alone cannot answer this: the mapping from kind to custody lives on the server, so a client that reads the kind is restating a rule it does not own."}},"required":["providerConfigurationId","provider","managedSigning"],"additionalProperties":false},"JoinableParticipant":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/ParticipantId_4"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Display name, when the participant has one."},"walletType":{"type":"string","enum":["eoa","smart"],"description":"How this participant executes: `eoa` sends directly, `smart` runs through its smart wallet."},"acting":{"type":"boolean","description":"Whether this is the participant the membership currently records. False on every entry means the caller has not chosen yet."},"keyCustody":{"type":"string","enum":["managed","external","none"],"description":"The custody behind the key this participant already holds: `managed` when the platform signs with it, `external` when its owner brings it, `none` when it holds no live key yet. A key is usable only in the organizations that honour the credentials it is held on. Adding a key takes nothing away from the organizations that already honour this participant's other keys, and an organization that does not honour a key simply does not offer it."},"custodyAccountId":{"anyOf":[{"$ref":"#/components/schemas/CustodyAccountId"},{"type":"null"}],"description":"The custody account holding that key, `null` alongside `keyCustody: \"none\"`. Send it as the `custodyAccountId` of an accept or deploy that joins as this participant: before the membership exists the account list for this organization is empty by construction, so this is the only answer that names the signer."},"drivable":{"type":"boolean","description":"Whether this organization can drive at least one of this participant's wallets. A participant it cannot drive is listed so it is never hidden, is not selectable, and gains a wallet only on the account-level participants page."},"reason":{"anyOf":[{"type":"string","enum":["custody-mismatch","account-abstraction-disabled","signer-threshold-unmet","wallet-not-active"]},{"type":"null"}],"description":"The capability this organization lacks for every wallet this participant holds, and `wallet-not-active` when it holds no active wallet on this chain; `null` exactly when `drivable` is true. It never describes another organization's arrangements."},"wallets":{"type":"array","items":{"$ref":"#/components/schemas/JoinableWallet"},"description":"Every key this participant holds on this organization's chain, each with this organization's verdict. When more than one is drivable, the caller picks which becomes the default here."}},"required":["id","name","walletType","acting","keyCustody","custodyAccountId","drivable","reason","wallets"],"additionalProperties":false},"JoinableWallet":{"type":"object","properties":{"custodyAccountId":{"$ref":"#/components/schemas/CustodyAccountId_1"},"address":{"type":"string","description":"The address the participant acts from with this key: its smart wallet when the key backs one, the key otherwise."},"drivable":{"type":"boolean","description":"Whether this organization can drive this key on its chain."},"reason":{"anyOf":[{"type":"string","enum":["custody-mismatch","account-abstraction-disabled","signer-threshold-unmet","wallet-not-active"]},{"type":"null"}],"description":"The capability this organization lacks for this key, `null` exactly when `drivable` is true. It never describes another organization's arrangements."}},"required":["custodyAccountId","address","drivable","reason"],"additionalProperties":false},"CustodyAccountId_1":{"type":"string","minLength":1,"description":"The custody account holding this key. Send it as `custodyAccountId` to make it the default here."},"ParticipantId_4":{"type":"string","minLength":1,"description":"The participant to act as."},"OrganizationId_4":{"type":"string","minLength":1,"description":"The organization being joined or switched into."},"CustodyAccountId_2":{"type":"string","minLength":1,"description":"The key that becomes this participant's default in this organization and chain. It must be one of the participant's drivable `wallets`. Omitted, the key the read reported as `custodyAccountId` stays the default."},"ParticipantId_5":{"type":"string","minLength":1,"description":"The personal participant to act as. It must be one the read operation marked drivable."},"TokenTrustedIssuer":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"account":{"anyOf":[{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"}},"required":["id"],"additionalProperties":false},{"type":"null"}],"description":"Wallet that operates the issuer identity. Null when the index resolved no operating wallet."},"claimTopics":{"type":"array","items":{"$ref":"#/components/schemas/TokenTrustedIssuerClaimTopic"},"description":"Claim topics this issuer is trusted for at its registry tier."},"registry":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"}},"required":["id"],"additionalProperties":false,"description":"Trusted-issuers registry that holds this row, the one named by the tier in `inheritanceLevel`."},"inheritanceLevel":{"type":"string","enum":["token","system","global"],"description":"Tier of the chain of trust that registered the issuer. `token` rows are token-specific and removable; `system` and `global` rows are inherited and read-only."},"isInheritedElsewhere":{"type":"boolean","description":"True when the same issuer is also active in a parent-tier registry of this token's resolved chain. A token-tier row with this flag keeps inherited trust after a token-level remove; parent-tier rows are always false."}},"required":["id","claimTopics","registry","inheritanceLevel","isInheritedElsewhere"],"additionalProperties":false},"TokenTrustedIssuerClaimTopic":{"type":"object","properties":{"topicId":{"type":"string","minLength":1,"description":"Topic identifier as a decimal string, matching the on-chain `uint256`."},"name":{"type":"string","description":"Name the token's topic-scheme registry chain publishes for this topic. Empty when no registry in that chain publishes the topic id."}},"required":["topicId","name"],"additionalProperties":false},"TokenTrustedIssuerFilters":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000},"account":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"source":{"anyOf":[{"type":"string","enum":["token","system","global"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]}},"additionalProperties":false},"TokenTopicScheme":{"type":"object","properties":{"id":{"type":"string","minLength":1,"description":"Identifier of this row: the lowercase registry address, a `#` separator, and the topic identifier."},"topicId":{"type":"string","minLength":1,"description":"Topic identifier as a decimal string."},"name":{"type":"string","description":"Name the registry publishes for this topic."},"signature":{"type":"string","description":"ABI-style signature of the claim data. A verifier decodes a claim payload against it."},"registry":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"}},"required":["id"],"additionalProperties":false,"description":"Registry that holds this row."},"inheritanceLevel":{"type":"string","enum":["token","system","global"],"description":"Tier of the chain of trust that registered the row. A `token` row sits in the token's own registry and its remove route can reach it; `system` and `global` rows are inherited read-only."},"isShadowed":{"type":"boolean","description":"True when another registry in the resolved chain registers the same topic identifier under a different claim-data signature, so the tier that wins depends on which registry verifies the claim."}},"required":["id","topicId","name","signature","registry","inheritanceLevel","isShadowed"],"additionalProperties":false},"TokenTopicSchemeFilters":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000},"topicId":{"anyOf":[{"type":"string","pattern":"^-?\\d+$","maxLength":80},{"type":"object","properties":{"eq":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"ne":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"gte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"between":{"type":"string","maxLength":161},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"name":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"signature":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"source":{"anyOf":[{"type":"string","enum":["token","system","global"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]}},"additionalProperties":false},"DirectoryTrustedIssuerTopic":{"type":"object","properties":{"id":{"type":"string","minLength":1},"topicId":{"type":"string","minLength":1},"name":{"type":"string"},"signature":{"type":"string"}},"required":["id","topicId","name","signature"],"additionalProperties":false},"DirectoryTrustedIssuerTopicFilters":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000},"topicId":{"anyOf":[{"type":"string","pattern":"^-?\\d+$","maxLength":80},{"type":"object","properties":{"eq":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"ne":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"gte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"between":{"type":"string","maxLength":161},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"name":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"signature":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]}},"additionalProperties":false},"DirectoryTrustedIssuer":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"account":{"anyOf":[{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"}},"required":["id"],"additionalProperties":false},{"type":"null"}],"description":"Wallet that operates the issuer identity. Null when the index resolved no operating wallet."},"claimTopics":{"type":"array","items":{"$ref":"#/components/schemas/DirectoryTrustedIssuerTopic"},"description":"Claim topics the issuer may attest to on this network, resolved from the global topic-scheme registry."},"deployedInTransaction":{"$ref":"#/components/schemas/EthereumHashEncoded"},"inheritedBySystemsCount":{"type":"integer","minimum":0,"description":"System trusted-issuer registries on this network that inherit from the global registry."}},"required":["id","claimTopics","deployedInTransaction","inheritedBySystemsCount"],"additionalProperties":false},"DirectoryTopicScheme":{"type":"object","properties":{"id":{"type":"string","minLength":1,"description":"Identifier of this entry: the lowercase registry address, a `#` separator, and the topic identifier."},"topicId":{"type":"string","minLength":1,"description":"Topic identifier as a decimal string. The registry holds it as an arbitrary-precision integer, so it stays a string."},"name":{"type":"string","description":"Name the registry publishes for this topic."},"signature":{"type":"string","description":"ABI-style signature of the claim data. A verifier decodes a claim payload against it."},"registry":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"}},"required":["id"],"additionalProperties":false,"description":"Registry that publishes this entry, keyed by the global topic-scheme registry address."},"isShadowed":{"type":"boolean","description":"True when a registry that inherits from the global registry publishes the same topic identifier under a different signature."},"inheritedBySystemsCount":{"type":"integer","minimum":0,"description":"Registries on this network that inherit from the global topic-scheme registry."}},"required":["id","topicId","name","signature","registry","isShadowed","inheritedBySystemsCount"],"additionalProperties":false},"ClaimTopicExclusionPolicyUpdateOutput":{"type":"object","properties":{"name":{"type":"string","description":"Name the topic scheme registry stores for the topic."},"topicId":{"type":"string","minLength":1,"description":"On-chain topic identifier as a decimal string."},"exclusionPolicy":{"$ref":"#/components/schemas/ClaimTopicExclusionPolicy_3"}},"required":["name","topicId","exclusionPolicy"],"additionalProperties":false},"ClaimTopicExclusionPolicy_3":{"type":"string","enum":["allow","warn","refuse"],"description":"The policy now stored for this topic in the active system."},"ClaimTopicExclusionPolicyUpdateBody":{"type":"object","properties":{"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]},"exclusionPolicy":{"$ref":"#/components/schemas/ClaimTopicExclusionPolicy_2"}},"required":["exclusionPolicy"],"additionalProperties":false},"ClaimTopicExclusionPolicy_2":{"type":"string","enum":["allow","warn","refuse"],"description":"Whether a compliance rule may exclude the holders of this claim: `allow` outright, `warn` against a recorded acknowledgement, or `refuse`."},"ClaimTopicRead":{"type":"object","properties":{"id":{"type":"string","minLength":1,"description":"Stable identifier of the topic: the checksummed address of the registry that holds it, followed by the hex encoding of its on-chain topic id."},"name":{"type":"string","description":"Name registered for the claim topic."},"signature":{"type":"string","description":"Solidity type list of the claim data, with its parentheses."},"topicId":{"type":"string","minLength":1,"description":"On-chain topic identifier as a decimal string."},"trustedIssuers":{"type":"array","items":{"$ref":"#/components/schemas/ClaimTopicTrustedIssuer"},"description":"Issuers that can attest this topic today, ordered by issuer address ascending. An empty list means no issuer can sign this topic today."},"exclusionPolicy":{"$ref":"#/components/schemas/ClaimTopicExclusionPolicy_1"}},"required":["id","name","signature","topicId","trustedIssuers","exclusionPolicy"],"additionalProperties":false},"ClaimTopicExclusionPolicy_1":{"type":"string","enum":["allow","warn","refuse"],"description":"Whether a compliance rule may exclude the holders of this claim: `allow` outright, `warn` against a recorded acknowledgement, or `refuse`."},"ClaimTopicTrustedIssuer":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"addedAt":{"$ref":"#/components/schemas/TimestampEncoded"},"revokedAt":{"$ref":"#/components/schemas/TimestampEncoded"},"account":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"}},"required":["id"],"additionalProperties":false,"description":"Wallet that operates the issuer identity, when the read resolves one."}},"required":["id","addedAt","revokedAt"],"additionalProperties":false},"IdentityV2KeyItem":{"type":"object","properties":{"keyHash":{"type":"string","description":"Hash that identifies the key within the identity contract, in lowercase hexadecimal."},"purpose":{"type":"string","enum":["management","deposit","claimSigner","encryption","unknown"]},"keyType":{"type":"string","enum":["ecdsa","rsa","unknown"]},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"createdAtBlock":{"type":"string","description":"Number of the block that added the key, as a decimal string because it can exceed 2^53."},"createdAtTxHash":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"required":["keyHash","purpose","keyType","createdAt","createdAtBlock","createdAtTxHash"],"additionalProperties":false},"IdentityKeyFilters":{"type":"object","properties":{"purpose":{"anyOf":[{"type":"string","enum":["management","deposit","claimSigner","encryption","unknown"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"keyType":{"anyOf":[{"type":"string","enum":["ecdsa","rsa","unknown"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"createdAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]}},"additionalProperties":false},"UserImageMutationOutput":{"type":"object","properties":{"success":{"type":"boolean","enum":[true]}},"required":["success"],"additionalProperties":false,"description":"Confirms that the platform stored the change. `success` is always true on a 200 response."},"UserImageConfirmInput":{"type":"object","properties":{"heroObjectKey":{"type":"string","description":"The `hero.objectKey` the upload-url call returned. The small key is derived from it.","examples":["user-images/0193fa5c-9c31-7a4d-b0e2-3f6c9d1a7b45/019a1c2e-7b4d-7e31-9f0a-5c2d8e1b6a47-256.png"]},"heroFileSize":{"type":"integer","exclusiveMinimum":0,"maximum":2097152,"description":"Byte size of the 256 px PNG the browser uploaded. Must match the stored object.","examples":[48213]},"smallFileSize":{"type":"integer","exclusiveMinimum":0,"maximum":524288,"description":"Byte size of the 64 px PNG the browser uploaded. Must match the stored object.","examples":[6402]}},"required":["heroObjectKey","heroFileSize","smallFileSize"],"additionalProperties":false,"description":"Binds an uploaded rendition pair to the signed-in user. The platform verifies both objects are PNG at the declared size and dimensions before it stores the hero key on the user."},"UserImageUploadOutput":{"type":"object","properties":{"hero":{"$ref":"#/components/schemas/UserImageUploadTarget"},"small":{"$ref":"#/components/schemas/UserImageUploadTarget_1"},"expiresAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["hero","small","expiresAt"],"additionalProperties":false,"description":"Two presigned PUT targets for one profile image upload: the 256 px hero rendition and the 64 px small rendition. Upload both as PNG, then confirm with the hero key and both byte sizes."},"UserImageUploadTarget_1":{"type":"object","properties":{"objectKey":{"type":"string","description":"Storage key the browser must send back on confirm. Bound to the signed-in user.","examples":["user-images/0193fa5c-9c31-7a4d-b0e2-3f6c9d1a7b45/019a1c2e-7b4d-7e31-9f0a-5c2d8e1b6a47-256.png"]},"uploadUrl":{"type":"string","description":"Presigned URL that accepts one PUT of the PNG bytes for 15 minutes.","examples":["https://storage.example/dalp/user-images/0193fa5c/019a1c2e-256.png?X-Amz-Signature=abc123"]},"method":{"type":"string","enum":["PUT"]},"headers":{"type":"object","additionalProperties":{"type":"string"},"description":"Headers the PUT must carry. Always includes `Content-Type: image/png`.","examples":[{"Content-Type":"image/png"}]}},"required":["objectKey","uploadUrl","method","headers"],"additionalProperties":false,"description":"Target for the 64 px rendition."},"UserImageUploadTarget":{"type":"object","properties":{"objectKey":{"type":"string","description":"Storage key the browser must send back on confirm. Bound to the signed-in user.","examples":["user-images/0193fa5c-9c31-7a4d-b0e2-3f6c9d1a7b45/019a1c2e-7b4d-7e31-9f0a-5c2d8e1b6a47-256.png"]},"uploadUrl":{"type":"string","description":"Presigned URL that accepts one PUT of the PNG bytes for 15 minutes.","examples":["https://storage.example/dalp/user-images/0193fa5c/019a1c2e-256.png?X-Amz-Signature=abc123"]},"method":{"type":"string","enum":["PUT"]},"headers":{"type":"object","additionalProperties":{"type":"string"},"description":"Headers the PUT must carry. Always includes `Content-Type: image/png`.","examples":[{"Content-Type":"image/png"}]}},"required":["objectKey","uploadUrl","method","headers"],"additionalProperties":false,"description":"Target for the 256 px rendition."},"UserListItem":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/UserId"},"name":{"type":"string"},"email":{"anyOf":[{"type":"string"},{"type":"null"}]},"role":{"anyOf":[{"$ref":"#/components/schemas/UserRole_1"},{"type":"null"}]},"firstName":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastName":{"anyOf":[{"type":"string"},{"type":"null"}]},"nationalId":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"null"}]},{"type":"null"}]},"country":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"null"}]},{"type":"null"}]},"residencyStatus":{"anyOf":[{"anyOf":[{"$ref":"#/components/schemas/ResidencyStatus"},{"type":"null"}]},{"type":"null"}]},"createdAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"lastLoginAt":{"anyOf":[{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},{"type":"null"}]},"participantId":{"$ref":"#/components/schemas/ParticipantId_3"},"roles":{"$ref":"#/components/schemas/AccessControlRoles"},"rolesPending":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"isAdmin":{"anyOf":[{"anyOf":[{"type":"boolean"},{"type":"null"}]},{"type":"null"}]},"personalInfoCompleted":{"type":"boolean","description":"True when the member's latest profile revision holds the fixed fields and every required user-filled field of this organization's visible profile sections."},"imageUrl":{"type":"string","description":"Path of the mark route that serves this subject's image at small or hero size."},"imageProvenance":{"$ref":"#/components/schemas/ImageProvenance"}},"required":["id","name","participantId","roles","personalInfoCompleted","imageUrl","imageProvenance"],"additionalProperties":false},"AccessControlRoles":{"type":"object","properties":{"addonManager":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"addonModule":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"addonRegistryModule":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"admin":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"assetDesigner":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"auditor":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"claimPolicyManager":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"claimIssuer":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"complianceManager":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"custodian":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"emergency":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"feedsManager":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"fundsManager":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"gasManager":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"governance":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"identityManager":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"identityRegistryModule":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"organisationIdentityManager":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"saleAdmin":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"supplyManagement":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"systemManager":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"systemModule":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"tokenFactoryModule":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"tokenFactoryRegistryModule":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"tokenManager":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"tradingVenueOperator":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"trustedIssuersMetaRegistryModule":{"anyOf":[{"type":"boolean"},{"type":"null"}]}},"additionalProperties":false},"ParticipantId_3":{"type":"string","minLength":1,"description":"Identifier of the person participant that belongs to this user in the active organization. Use it on participant routes."},"ResidencyStatus":{"type":"string","enum":["resident","non_resident","dual_resident","unknown"],"description":"Tax residency status"},"UserRole_1":{"type":"string","enum":["admin","owner","member"],"description":"User role in the system"},"EligibilityVerdictItem":{"type":"object","properties":{"verdict":{"type":"string","enum":["allowed","needs-action","blocked"]},"source":{"type":"string","enum":["indexer","live"]},"checkedAt":{"$ref":"#/components/schemas/TimestampEncoded"},"wallet":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}],"description":"Wallet the verdict was evaluated against. Null when no address is resolvable yet."},"reasons":{"type":"array","items":{"$ref":"#/components/schemas/EligibilityReason"},"description":"Rule failures behind this verdict. Empty when the verdict is `allowed`."},"wallets":{"type":"array","items":{"$ref":"#/components/schemas/WalletEligibilityVerdictItem"},"description":"Per-wallet breakdown, when the participant owns more than one wallet."}},"required":["verdict","source","checkedAt","wallet","reasons"],"additionalProperties":false},"WalletEligibilityVerdictItem":{"type":"object","properties":{"verdict":{"type":"string","enum":["allowed","needs-action","blocked"]},"source":{"type":"string","enum":["indexer","live"]},"checkedAt":{"$ref":"#/components/schemas/TimestampEncoded"},"wallet":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}],"description":"Wallet the verdict was evaluated against. Null when no address is resolvable yet."},"reasons":{"type":"array","items":{"$ref":"#/components/schemas/EligibilityReason"},"description":"Rule failures behind this verdict. Empty when the verdict is `allowed`."}},"required":["verdict","source","checkedAt","wallet","reasons"],"additionalProperties":false},"EligibilityReason":{"type":"object","properties":{"code":{"type":"string","enum":["address-blocked","country-blocked","country-not-allowed","identity-blocked","identity-not-verified","claim-missing","claim-revoked","claim-expired","live-timeout"]},"moduleTypeId":{"$ref":"#/components/schemas/ComplianceTypeId_1"},"instanceAddress":{"$ref":"#/components/schemas/EvmAddress"},"details":{"$ref":"#/components/schemas/EligibilityReasonDetails"}},"required":["code"],"additionalProperties":false},"EligibilityReasonDetails":{"type":"object","properties":{"topic":{"type":"string","description":"Claim topic name, for a `claim-*` reason code."},"expiresAt":{"$ref":"#/components/schemas/TimestampEncoded"},"countryCode":{"anyOf":[{"type":"string","pattern":"^\\d{1,3}$"},{"type":"number","multipleOf":1,"minimum":0,"maximum":999}]}},"additionalProperties":false},"ComplianceTypeId_1":{"type":"string","enum":["address-block-list","address-block-list-v2","capital-raise-limit","capped","capped-v2","claim-expiry","collateral","collateral-v2","country-allow-list","country-allow-list-v2","country-block-list","country-block-list-v2","identity-allow-list","identity-allow-list-v2","identity-block-list","identity-block-list-v2","identity-verification","identity-verification-v2","investor-count","investor-count-v2","identity-count","issuance-volume-limit","minimum-holding","time-lock","time-lock-v2","token-supply-limit","transfer-approval","transfer-approval-v2"],"description":"Type of the module that produced this reason, when known."},"AddressKinds":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/AddressKind"},"description":"Account type for each participant address in the active organization, keyed by address: `eoa` for a key account, `smart-wallet` for a smart account."},"AddressKind":{"type":"string","enum":["eoa","smart-wallet"]},"RecoveryStatus":{"type":"object","properties":{"phase":{"type":"string","enum":["creating-wallet","creating-identity","creating-smart-wallet","recovering-smart-wallet","recovering-identity","adding-management-key","disabling-old-wallets","registering-new-wallets","revoking-sessions","recovering-tokens","completed","completed-with-token-failures","failed"]},"tokensRecovered":{"type":"integer"},"totalTokens":{"type":"integer"},"error":{"anyOf":[{"type":"string"},{"type":"null"}]},"newWallet":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"newIdentity":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"tokenRecoveryFailures":{"type":"array","items":{"type":"object","properties":{"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"holderAddress":{"$ref":"#/components/schemas/EvmAddress"},"reason":{"type":"string","enum":["TOKEN_PAUSED","MISSING_CUSTODIAN_ROLE","NO_TOKENS","RPC_ERROR","UNKNOWN"]},"message":{"type":"string"},"rawError":{"type":"string"}},"required":["tokenAddress","holderAddress","reason","message","rawError"],"additionalProperties":false}},"carriedClaims":{"type":"array","items":{"type":"object","properties":{"sourceIdentity":{"$ref":"#/components/schemas/EvmAddress"},"claimId":{"type":"string","minLength":1},"topic":{"type":"string","minLength":1},"issuer":{"$ref":"#/components/schemas/EvmAddress"},"hash":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["sourceIdentity","claimId","topic","issuer","hash"],"additionalProperties":false}},"notCarriedClaims":{"type":"array","items":{"type":"object","properties":{"sourceIdentity":{"$ref":"#/components/schemas/EvmAddress"},"claimId":{"type":"string","minLength":1},"topic":{"type":"string","minLength":1},"issuer":{"$ref":"#/components/schemas/EvmAddress"},"reason":{"type":"string","enum":["external-issuer","issuance-failed"]},"message":{"type":"string"}},"required":["sourceIdentity","claimId","topic","issuer","reason"],"additionalProperties":false}}},"required":["phase","tokensRecovered","totalTokens","error","newWallet","newIdentity","tokenRecoveryFailures","carriedClaims","notCarriedClaims"],"additionalProperties":false},"RecoveryStarted":{"type":"object","properties":{"success":{"type":"boolean"}},"required":["success"],"additionalProperties":false},"RecoveryExecute":{"type":"object","properties":{"userId":{"$ref":"#/components/schemas/UserId"},"wallet":{"$ref":"#/components/schemas/EvmAddress"},"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"}},"required":["userId"],"additionalProperties":false},"RecoveryPlan":{"type":"object","properties":{"user":{"$ref":"#/components/schemas/RecoverySubject"},"lostWallet":{"$ref":"#/components/schemas/EvmAddress"},"identity":{"$ref":"#/components/schemas/RecoveryIdentityState"},"tokenBalances":{"type":"array","items":{"$ref":"#/components/schemas/RecoveryTokenBalance"}},"canRecover":{"type":"boolean"},"blockingReasons":{"type":"array","items":{"type":"string","minLength":1}}},"required":["user","lostWallet","identity","tokenBalances","canRecover","blockingReasons"],"additionalProperties":false},"RecoveryTokenBalance":{"type":"object","properties":{"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"tokenName":{"type":"string","description":"Token name published by the token contract. Empty when the contract publishes no name.","examples":["Euro Deposit"]},"tokenSymbol":{"type":"string","description":"Token symbol published by the token contract. Empty when the contract publishes no symbol.","examples":["EURD"]},"balance":{"$ref":"#/components/schemas/BigDecimal"},"balanceExact":{"$ref":"#/components/schemas/ApiBigIntEncoded"},"decimals":{"type":"integer","description":"Decimal places the token uses to convert base units into display units. 18 when the token publishes no precision.","examples":[18]}},"required":["tokenAddress","tokenName","tokenSymbol","balance","decimals"],"additionalProperties":false},"RecoveryIdentityState":{"type":"object","properties":{"id":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}],"description":"Address of the deployed identity contract, or null when the user has no identity deployed."},"status":{"anyOf":[{"$ref":"#/components/schemas/IdentityStatus_1"},{"type":"null"}]},"isMarkedAsLost":{"type":"boolean"}},"required":["id","status","isMarkedAsLost"],"additionalProperties":false},"RecoverySubject":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/UserId"},"email":{"anyOf":[{"type":"string"},{"type":"null"}]},"name":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","email","name"],"additionalProperties":false},"TokenTrustedIssuerMutated":{"type":"object","properties":{"txHash":{"$ref":"#/components/schemas/EthereumHashEncoded"},"issuerAddress":{"$ref":"#/components/schemas/EvmAddress"}},"required":["issuerAddress"],"additionalProperties":false},"TrustedIssuerRemoval":{"type":"object","properties":{"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"additionalProperties":false},"TrustedIssuerRegistration":{"type":"object","properties":{"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]},"issuerAddress":{"$ref":"#/components/schemas/EvmAddress"},"claimTopicIds":{"type":"array","items":{"type":"string","minLength":1},"minItems":1,"maxItems":50}},"required":["issuerAddress","claimTopicIds"],"additionalProperties":false},"CantonIdentityOperationAccepted":{"type":"object","properties":{"operationId":{"type":"string","minLength":1,"description":"Durable operation identifier. It is also the submission identifier, so the transaction-request read reports this operation's progress under the same id."},"submissionId":{"type":"string","minLength":1,"description":"Durable submission identifier of the command this operation sent."},"ledgerSubmissionId":{"type":"string","minLength":1,"description":"Participant submission identifier, once the ledger accepted the command."},"preparedHashHex":{"type":"string","minLength":1,"description":"Hex-encoded prepared-transaction hash the custody key signed."},"contractId":{"type":"string","minLength":1,"description":"Contract id created or retained by the operation, when the ledger choice has one to read back."}},"required":["operationId","submissionId","ledgerSubmissionId","preparedHashHex"],"additionalProperties":false},"CantonPartyId_15":{"type":"string","minLength":1,"description":"Canton party this operation is submitted as. It must be a party wallet of the active organization; a party the organization does not hold answers not-found."},"SystemTrustedIssuerRemoveMutationResult":{"anyOf":[{"$ref":"#/components/schemas/TrustedIssuerMutated"},{"$ref":"#/components/schemas/CantonIdentityOperationAccepted"}],"description":"What the route accepted. The EVM arm returns the issuer address and the hash of the transaction that carried the write; the Canton arm returns the settled operation, whose `operationId` is the submission id the transaction-request read reports."},"TrustedIssuerMutated":{"type":"object","properties":{"txHash":{"$ref":"#/components/schemas/EthereumHashEncoded"},"issuerAddress":{"$ref":"#/components/schemas/EvmAddress"}},"required":["txHash","issuerAddress"],"additionalProperties":false},"TrustedIssuerCommand":{"type":"object","properties":{"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]},"claimTopicIds":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["claimTopicIds"],"additionalProperties":false},"TrustedIssuerClaimTopicMutated":{"type":"object","properties":{"txHash":{"anyOf":[{"$ref":"#/components/schemas/EthereumHashEncoded"},{"type":"null"}],"description":"Hash of the registry transaction that carried this change, as a 32-byte hex string. Null when the issuer already held the requested topic state, because the platform then submits no transaction and the registry stays as it is."},"issuerAddress":{"$ref":"#/components/schemas/EvmAddress"},"topicId":{"type":"string","description":"Decimal topic identifier this change applied to, echoed from the request path."}},"required":["txHash","issuerAddress","topicId"],"additionalProperties":false},"TrustedIssuerClaimTopicCommand":{"type":"object","properties":{"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"additionalProperties":false},"SystemTrustedIssuerCreateMutationResult":{"anyOf":[{"$ref":"#/components/schemas/TrustedIssuerMutated"},{"$ref":"#/components/schemas/CantonIdentityOperationAccepted"}],"description":"What the route accepted. The EVM arm returns the issuer address and the hash of the transaction that carried the write; the Canton arm returns the settled operation, whose `operationId` is the submission id the transaction-request read reports."},"CantonPartyId_16":{"type":"string","minLength":1,"description":"Party whose claims are trusted or withdrawn for the named topic."},"SystemTrustedIssuerTopic":{"type":"object","properties":{"id":{"type":"string","description":"Stable identifier of this topic entry, derived from the topic scheme registry address of the active system and the topic identifier. Read it as an opaque key; no route takes it as a parameter."},"topicId":{"type":"string","description":"Decimal topic identifier, the `uint256` keccak-256 hash of the topic name. The claim-topic routes take this value in the path."},"name":{"type":"string","description":"Topic name the topic scheme registry of the active system publishes. Empty when that registry holds no name for the identifier."},"signature":{"type":"string","description":"ABI signature of the claim data the topic carries. Empty when the registry holds no signature for the identifier."}},"required":["id","topicId","name","signature"],"additionalProperties":false},"SystemTrustedIssuerTopicFilters":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000},"topicId":{"anyOf":[{"type":"string","pattern":"^-?\\d+$","maxLength":80},{"type":"object","properties":{"eq":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"ne":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"gte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"between":{"type":"string","maxLength":161},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"name":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"signature":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]}},"additionalProperties":false},"SystemTrustedIssuer":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"account":{"anyOf":[{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"}},"required":["id"],"additionalProperties":false},{"type":"null"}],"description":"Wallet that operates the issuer identity, resolved from the participants of the active system. Null when the identity is removed or when no participant wallet is linked to it."},"claimTopics":{"type":"array","items":{"$ref":"#/components/schemas/SystemTrustedIssuerTopic"},"description":"Claim topics this issuer may attest to in the registry that holds the entry, with the name and signature resolved from the topic scheme registry."},"deployedInTransaction":{"$ref":"#/components/schemas/EthereumHashEncoded"},"isGlobal":{"type":"boolean","description":"True when the entry comes from a parent registry in the registry chain rather than from the trusted issuers registry of the active system. The write routes act on the registry of the active system, so they do not change an entry that a parent registry holds."}},"required":["id","claimTopics","deployedInTransaction","isGlobal"],"additionalProperties":false},"TrustedIssuerFilters":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000},"id":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]}},"additionalProperties":false},"TopicSchemeRemoved":{"type":"object","properties":{"txHash":{"$ref":"#/components/schemas/EthereumHashEncoded"},"topicId":{"type":"string","minLength":1}},"required":["topicId"],"additionalProperties":false},"TopicSchemeRemoval":{"type":"object","properties":{"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"additionalProperties":false},"TopicSchemeMutated":{"type":"object","properties":{"txHash":{"$ref":"#/components/schemas/EthereumHashEncoded"},"name":{"type":"string","minLength":1}},"required":["name"],"additionalProperties":false},"TopicSchemeCommand":{"type":"object","properties":{"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]},"name":{"type":"string","minLength":1,"maxLength":100,"description":"Name to register the scheme under, unique among the schemes the token owns."},"signature":{"type":"string","minLength":1}},"required":["name","signature"],"additionalProperties":false},"TopicSchemeFilters":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000},"topicId":{"anyOf":[{"type":"string","pattern":"^-?\\d+$","maxLength":80},{"type":"object","properties":{"eq":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"ne":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"gte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"between":{"type":"string","maxLength":161},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"name":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"signature":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]}},"additionalProperties":false},"SystemClaimTopicDeleteMutationResult":{"anyOf":[{"$ref":"#/components/schemas/ClaimTopicMutated"},{"$ref":"#/components/schemas/CantonIdentityOperationAccepted"}],"description":"What the route accepted. The EVM arm returns the removed topic name and the hash of the transaction that carried the write; the Canton arm returns the settled operation, whose `operationId` is the submission id the transaction-request read reports."},"ClaimTopicMutated":{"type":"object","properties":{"txHash":{"$ref":"#/components/schemas/EthereumHashEncoded"},"name":{"type":"string","minLength":1}},"required":["txHash","name"],"additionalProperties":false},"SystemClaimTopicUpdateMutationResult":{"anyOf":[{"$ref":"#/components/schemas/ClaimTopicSignatureUpdated"},{"$ref":"#/components/schemas/CantonIdentityOperationAccepted"}],"description":"What the route accepted. The EVM arm returns the restated topic and the hash of the transaction that carried the write; the Canton arm returns the settled operation, whose `operationId` is the submission id the transaction-request read reports."},"ClaimTopicSignatureUpdated":{"type":"object","properties":{"txHash":{"$ref":"#/components/schemas/EthereumHashEncoded"},"name":{"type":"string","minLength":1},"newSignature":{"type":"string","minLength":1}},"required":["txHash","name","newSignature"],"additionalProperties":false},"SystemClaimTopicCreateMutationResult":{"anyOf":[{"$ref":"#/components/schemas/ClaimTopicMutated"},{"$ref":"#/components/schemas/CantonIdentityOperationAccepted"}],"description":"What the route accepted. The EVM arm returns the stored topic and the hash of the transaction that carried the write; the Canton arm returns the settled operation, whose `operationId` is the submission id the transaction-request read reports."},"ClaimTopic_1":{"type":"object","properties":{"id":{"type":"string","minLength":1},"topicId":{"type":"string","minLength":1,"description":"On-chain topic identifier as a decimal string, past the range a JSON number keeps exactly."},"name":{"type":"string","description":"Name the topic scheme registry stores for this topic."},"signature":{"type":"string","description":"Solidity type list of the claim data, stored with its surrounding parentheses."},"registry":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"}},"required":["id"],"additionalProperties":false,"description":"Topic scheme registry that holds this topic. For an inherited topic the address differs from the active system's own registry."},"isGlobal":{"anyOf":[{"type":"boolean","description":"True when the active system inherits the topic from a registry other than the one it owns, false when it registered the topic itself."},{"type":"null"}]},"exclusionPolicy":{"$ref":"#/components/schemas/ClaimTopicExclusionPolicy"}},"required":["id","topicId","name","signature","registry","exclusionPolicy"],"additionalProperties":false},"ClaimTopicExclusionPolicy":{"type":"string","enum":["allow","warn","refuse"],"description":"Whether a compliance rule may exclude the holders of this claim: `allow` outright, `warn` against a recorded acknowledgement, or `refuse`."},"ClaimTopicFilters":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000},"topicId":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"name":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]}},"additionalProperties":false},"ClaimsRevokeMutationResult":{"anyOf":[{"$ref":"#/components/schemas/ClaimRevoked"},{"$ref":"#/components/schemas/CantonIdentityOperationAccepted"}],"description":"What the route accepted. The EVM arm returns the id of the removed claim; the Canton arm returns the settled operation, with `operationId` equal to the submission id the transaction-request read reports."},"ClaimRevoked":{"type":"object","properties":{"txHash":{"$ref":"#/components/schemas/EthereumHashEncoded"},"success":{"type":"boolean"},"claimId":{"type":"string","minLength":1}},"required":["txHash","success","claimId"],"additionalProperties":false},"CantonPartyId_14":{"type":"string","minLength":1,"description":"Canton party this operation is submitted as. It must be a party wallet of the active organization; a party the organization does not hold answers not-found."},"ClaimTopic":{"type":"string","enum":["knowYourCustomer","antiMoneyLaundering","knowYourTransaction","knowYourBusiness","qualifiedInstitutionalInvestor","professionalInvestor","accreditedInvestor","accreditedInvestorVerified","regulationS","issuerProspectusFiled","issuerProspectusExempt","issuerLicensed","issuerReportingCompliant","issuerJurisdiction","collateral","uniqueIdentifier","assetClassification","basePrice","assetIssuer","assetLocation","assetCoordinates","assetPhysicalDetails","documentHash","sanctionsScreening","issuerEventDetermination","instrumentStructure","contractIdentity","custom"],"description":"Type of identity claim"},"ClaimsIssueMutationResult":{"anyOf":[{"$ref":"#/components/schemas/ClaimIssued"},{"$ref":"#/components/schemas/CantonIdentityOperationAccepted"}],"description":"What the route accepted. The EVM arm returns the issued claim; the Canton arm returns the settled operation, with `operationId` equal to the submission id the transaction-request read reports."},"ClaimIssued":{"type":"object","properties":{"txHash":{"$ref":"#/components/schemas/EthereumHashEncoded"},"success":{"type":"boolean"},"claimTopic":{"type":"string","minLength":1,"description":"Topic the issued claim records. A custom topic carries its registered name, not the literal `custom`."},"targetWallet":{"$ref":"#/components/schemas/EvmAddress"}},"required":["txHash","success","claimTopic","targetWallet"],"additionalProperties":false},"CantonPartyId_13":{"type":"string","minLength":1,"description":"Party the claim is about."},"CantonPartyId_12":{"type":"string","minLength":1,"description":"Canton party this operation is submitted as. It must be a party wallet of the active organization; a party the organization does not hold answers not-found."},"ClaimData":{"anyOf":[{"$ref":"#/components/schemas/InvestorClaimData"},{"$ref":"#/components/schemas/AssetClassificationClaimData"},{"$ref":"#/components/schemas/AssetIssuerClaimData"},{"$ref":"#/components/schemas/BasePriceClaimData"},{"$ref":"#/components/schemas/CollateralClaimData"},{"$ref":"#/components/schemas/ContractIdentityClaimData"},{"$ref":"#/components/schemas/IssuerJurisdictionClaimData"},{"$ref":"#/components/schemas/IssuerLicensedClaimData"},{"$ref":"#/components/schemas/IssuerProspectusExemptClaimData"},{"$ref":"#/components/schemas/IssuerProspectusFiledClaimData"},{"$ref":"#/components/schemas/IssuerReportingCompliantClaimData"},{"$ref":"#/components/schemas/IssuerEventDeterminationClaimData"},{"$ref":"#/components/schemas/UniqueIdentifierClaimData"},{"$ref":"#/components/schemas/AssetLocationClaimData"},{"$ref":"#/components/schemas/AssetCoordinatesClaimData"},{"$ref":"#/components/schemas/AssetPhysicalDetailsClaimData"},{"$ref":"#/components/schemas/DocumentHashClaimData"},{"$ref":"#/components/schemas/CustomClaimData"}],"description":"Claim payload keyed by `topic`. Investor topics carry a `data.claim` string. Asset and issuer topics carry typed fields. Custom topics add `topicName` and `signature`.","examples":[{"topic":"knowYourCustomer","data":{"claim":"verified"}}]},"CustomClaimData":{"type":"object","properties":{"topic":{"type":"string","enum":["custom"]},"topicName":{"type":"string","minLength":1,"maxLength":100,"description":"Custom topic name, 1 to 100 characters.","examples":["internalRiskRating"]},"signature":{"type":"string","description":"Issuer signature over the custom claim payload.","examples":["0xdeadbeef"]},"data":{"type":"array","description":"ABI-encoded custom claim arguments. Treat them as opaque unless the topic names the tuple."}},"required":["topic","topicName","signature","data"],"additionalProperties":false,"description":"Custom topic claim with an explicit topic name and signature.","examples":[{"topic":"custom","topicName":"internalRiskRating","signature":"0xdeadbeef","data":[]}]},"DocumentHashClaimData":{"type":"object","properties":{"topic":{"type":"string","enum":["documentHash"]},"data":{"type":"object","properties":{"sha256Hash":{"type":"string","description":"SHA-256 digest of the document, hex-encoded.","examples":["e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"]},"documentType":{"type":"string","description":"Document class, such as a prospectus or an appraisal.","examples":["prospectus"]},"fileName":{"type":"string","description":"Original file name.","examples":["acme-growth-bond-prospectus.pdf"]}},"required":["sha256Hash","documentType","fileName"],"additionalProperties":false}},"required":["topic","data"],"additionalProperties":false,"description":"Hash of an off-chain document attached to the asset.","examples":[{"topic":"documentHash","data":{"sha256Hash":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","documentType":"prospectus","fileName":"acme-growth-bond-prospectus.pdf"}}]},"AssetPhysicalDetailsClaimData":{"type":"object","properties":{"topic":{"type":"string","enum":["assetPhysicalDetails"]},"data":{"type":"object","properties":{"propertyArea":{"type":"string","minLength":1,"pattern":"^\\d+$","description":"Property area as a positive whole number. The issuer template names the unit.","examples":["240"]},"buildingYear":{"type":"string","minLength":1,"pattern":"^\\d+$","description":"Year the building was completed.","examples":["1998"]},"numberOfUnits":{"type":"string","minLength":1,"pattern":"^\\d+$","description":"Number of units in the property.","examples":["12"]}},"required":["propertyArea","buildingYear","numberOfUnits"],"additionalProperties":false}},"required":["topic","data"],"additionalProperties":false,"description":"Physical attributes of a real-estate asset.","examples":[{"topic":"assetPhysicalDetails","data":{"propertyArea":"240","buildingYear":"1998","numberOfUnits":"12"}}]},"AssetCoordinatesClaimData":{"type":"object","properties":{"topic":{"type":"string","enum":["assetCoordinates"]},"data":{"type":"object","properties":{"latitude":{"type":"string","minLength":1,"pattern":"^-?\\d+(?:\\.\\d+)?$","description":"Latitude as a decimal string.","examples":["50.8503"]},"longitude":{"type":"string","minLength":1,"pattern":"^-?\\d+(?:\\.\\d+)?$","description":"Longitude as a decimal string.","examples":["4.3517"]}},"required":["latitude","longitude"],"additionalProperties":false}},"required":["topic","data"],"additionalProperties":false,"description":"Geographic coordinates of a real-world asset.","examples":[{"topic":"assetCoordinates","data":{"latitude":"50.8503","longitude":"4.3517"}}]},"AssetLocationClaimData":{"type":"object","properties":{"topic":{"type":"string","enum":["assetLocation"]},"data":{"type":"object","properties":{"city":{"type":"string","description":"City of the underlying asset.","examples":["Brussels"]},"districtCode":{"type":"string","description":"District or postal sector code.","examples":["1000"]},"areaId":{"type":"string","description":"Local area or parcel identifier.","examples":["BRU-IX-4412"]}},"required":["city","districtCode","areaId"],"additionalProperties":false}},"required":["topic","data"],"additionalProperties":false,"description":"Civic location of a real-world asset.","examples":[{"topic":"assetLocation","data":{"city":"Brussels","districtCode":"1000","areaId":"BRU-IX-4412"}}]},"UniqueIdentifierClaimData":{"type":"object","properties":{"topic":{"type":"string","enum":["uniqueIdentifier"]},"data":{"type":"object","properties":{"identifier":{"type":"string","description":"Stable unique identifier for the instrument, such as an ISIN.","examples":["BE0003796134"]}},"required":["identifier"],"additionalProperties":false}},"required":["topic","data"],"additionalProperties":false,"description":"Unique instrument identifier claim.","examples":[{"topic":"uniqueIdentifier","data":{"identifier":"BE0003796134"}}]},"IssuerEventDeterminationClaimData":{"type":"object","properties":{"topic":{"type":"string","enum":["issuerEventDetermination"]},"data":{"type":"object","properties":{"determinationKind":{"type":"string","description":"Event kind the issuer determines. A coordinated distribution that names this kind ranks its classes by the kind's priority rows while the claim is in force.","examples":["sponsor-event"]},"documentReference":{"type":"string","description":"Reference to the document that records the determination.","examples":["board-minutes-2026-10"]}},"required":["determinationKind","documentReference"],"additionalProperties":false}},"required":["topic","data"],"additionalProperties":false,"description":"Issuer determination that an event of a named kind occurred, with the document that records it.","examples":[{"topic":"issuerEventDetermination","data":{"determinationKind":"sponsor-event","documentReference":"board-minutes-2026-10"}}]},"IssuerReportingCompliantClaimData":{"type":"object","properties":{"topic":{"type":"string","enum":["issuerReportingCompliant"]},"data":{"type":"object","properties":{"compliant":{"type":"boolean","description":"Whether the issuer currently meets its reporting duties.","examples":[true]},"lastUpdated":{"$ref":"#/components/schemas/BlocktimeEncoded"}},"required":["compliant","lastUpdated"],"additionalProperties":false}},"required":["topic","data"],"additionalProperties":false,"description":"Issuer ongoing reporting status and the time it was last attested."},"IssuerProspectusFiledClaimData":{"type":"object","properties":{"topic":{"type":"string","enum":["issuerProspectusFiled"]},"data":{"type":"object","properties":{"prospectusReference":{"type":"string","description":"Filing reference for the prospectus.","examples":["FSMA-PROS-2026-018"]}},"required":["prospectusReference"],"additionalProperties":false}},"required":["topic","data"],"additionalProperties":false,"description":"States that a prospectus has been filed.","examples":[{"topic":"issuerProspectusFiled","data":{"prospectusReference":"FSMA-PROS-2026-018"}}]},"IssuerProspectusExemptClaimData":{"type":"object","properties":{"topic":{"type":"string","enum":["issuerProspectusExempt"]},"data":{"type":"object","properties":{"exemptionReference":{"type":"string","description":"Legal reference for the prospectus exemption.","examples":["Reg S Rule 903"]}},"required":["exemptionReference"],"additionalProperties":false}},"required":["topic","data"],"additionalProperties":false,"description":"States that the offering relies on a prospectus exemption.","examples":[{"topic":"issuerProspectusExempt","data":{"exemptionReference":"Reg S Rule 903"}}]},"IssuerLicensedClaimData":{"type":"object","properties":{"topic":{"type":"string","enum":["issuerLicensed"]},"data":{"type":"object","properties":{"licenseType":{"type":"string","description":"License class granted to the issuer.","examples":["MiFID investment firm"]},"licenseNumber":{"type":"string","description":"License number as the regulator issued it.","examples":["FSMA-2026-441"]},"jurisdiction":{"$ref":"#/components/schemas/ISOCountryCodeNumericEncoded"},"validUntil":{"$ref":"#/components/schemas/BlocktimeEncoded"}},"required":["licenseType","licenseNumber","jurisdiction","validUntil"],"additionalProperties":false}},"required":["topic","data"],"additionalProperties":false,"description":"Issuer license details: type, number, jurisdiction, and expiry."},"IssuerJurisdictionClaimData":{"type":"object","properties":{"topic":{"type":"string","enum":["issuerJurisdiction"]},"data":{"type":"object","properties":{"jurisdiction":{"$ref":"#/components/schemas/ISOCountryCodeNumericEncoded"}},"required":["jurisdiction"],"additionalProperties":false}},"required":["topic","data"],"additionalProperties":false,"description":"Issuer country of jurisdiction.","examples":[{"topic":"issuerJurisdiction","data":{"jurisdiction":56}}]},"ContractIdentityClaimData":{"type":"object","properties":{"topic":{"type":"string","enum":["contractIdentity"]},"data":{"type":"object","properties":{"contractAddress":{"$ref":"#/components/schemas/EvmAddress"}},"required":["contractAddress"],"additionalProperties":false}},"required":["topic","data"],"additionalProperties":false,"description":"Links the claim to an identity contract address.","examples":[{"topic":"contractIdentity","data":{"contractAddress":"0x4B20993Bc481177ec7E8f571ceCaE8A9e22C02db"}}]},"CollateralClaimData":{"type":"object","properties":{"topic":{"type":"string","enum":["collateral"]},"data":{"type":"object","properties":{"amount":{"$ref":"#/components/schemas/AssetAmount"},"expiryTimestamp":{"$ref":"#/components/schemas/BlocktimeEncoded"}},"required":["amount","expiryTimestamp"],"additionalProperties":false}},"required":["topic","data"],"additionalProperties":false,"description":"Collateral amount and expiry for a backed instrument."},"BasePriceClaimData":{"type":"object","properties":{"topic":{"type":"string","enum":["basePrice"]},"data":{"type":"object","properties":{"amount":{"$ref":"#/components/schemas/BigDecimal"},"currencyCode":{"$ref":"#/components/schemas/FiatCurrency_1"}},"required":["amount","currencyCode"],"additionalProperties":false}},"required":["topic","data"],"additionalProperties":false,"description":"Unit price claim used for valuation."},"FiatCurrency_1":{"type":"string","pattern":"^[A-Z]{3}$"},"AssetIssuerClaimData":{"type":"object","properties":{"topic":{"type":"string","enum":["assetIssuer"]},"data":{"type":"object","properties":{"issuerAddress":{"$ref":"#/components/schemas/EvmAddress"}},"required":["issuerAddress"],"additionalProperties":false}},"required":["topic","data"],"additionalProperties":false,"description":"Names the issuer address for this asset.","examples":[{"topic":"assetIssuer","data":{"issuerAddress":"0x71C7656EC7ab88b098defB751B7401B5f6d8976F"}}]},"AssetClassificationClaimData":{"type":"object","properties":{"topic":{"type":"string","enum":["assetClassification"]},"data":{"$ref":"#/components/schemas/AssetClassificationPayload"}},"required":["topic","data"],"additionalProperties":false,"description":"Classifies the instrument. Equity, fund, and real-estate types require a matching `category`.","examples":[{"topic":"assetClassification","data":{"type":"bond"}}]},"AssetClassificationPayload":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/AssetType"},"category":{"anyOf":[{"$ref":"#/components/schemas/EquityCategory"},{"$ref":"#/components/schemas/FundCategory"},{"$ref":"#/components/schemas/RealEstatePropertyUse"}]}},"required":["type"],"additionalProperties":false},"InvestorClaimData":{"type":"object","properties":{"topic":{"type":"string","enum":["knowYourCustomer","antiMoneyLaundering","knowYourTransaction","knowYourBusiness","qualifiedInstitutionalInvestor","professionalInvestor","accreditedInvestor","accreditedInvestorVerified","regulationS"],"description":"Investor-qualification topic this claim asserts.","examples":["knowYourCustomer","accreditedInvestor"]},"data":{"$ref":"#/components/schemas/InvestorClaimPayload"}},"required":["topic","data"],"additionalProperties":false,"description":"Investor qualification claim. `topic` names the check, `data.claim` is the issuer payload, and `data.validUntil` optionally expires it.","examples":[{"topic":"knowYourCustomer","data":{"claim":"verified"}}]},"InvestorClaimPayload":{"type":"object","properties":{"claim":{"type":"string","description":"Issuer-supplied claim payload for this topic. Treat it as opaque text unless the topic names a format.","examples":["verified"]},"validUntil":{"$ref":"#/components/schemas/BlocktimeEncoded"}},"required":["claim"],"additionalProperties":false},"ExternalMessageAuthorization":{"type":"object","properties":{"signature":{"$ref":"#/components/schemas/EthereumHexEncoded"}},"required":["signature"],"additionalProperties":false,"description":"External-wallet signature over the exact signing payload party prepared."},"ClaimsHistoryV2Item":{"anyOf":[{"$ref":"#/components/schemas/EvmClaimsHistoryV2Item"},{"$ref":"#/components/schemas/CantonClaimItem"}],"description":"One claim event. Discriminated on `family`: an `evm` row is a lifecycle event an identity contract emitted, a `canton` row is a claim or issuer authorization on the ledger's own claim registry.","discriminator":{"propertyName":"family","mapping":{"evm":"#/components/schemas/EvmClaimsHistoryV2Item","canton":"#/components/schemas/CantonClaimItem"}}},"CantonClaimItem":{"type":"object","properties":{"family":{"type":"string","enum":["canton"],"description":"Chain family of this claim row. Present so a cross-family client can tell the rows apart."},"networkIdentity":{"$ref":"#/components/schemas/NetworkId_4"},"contractId":{"type":"string","minLength":1,"description":"Ledger contract identifier of the projected contract."},"kind":{"type":"string","enum":["claim","issuer"],"description":"Whether the row is a claim about a subject or an issuer authorization that backs claims."},"adminParty":{"$ref":"#/components/schemas/CantonPartyId_11"},"issuerParty":{"anyOf":[{"$ref":"#/components/schemas/CantonPartyId"},{"type":"null"}],"description":"Party that issued the claim."},"subjectParty":{"anyOf":[{"$ref":"#/components/schemas/CantonPartyId"},{"type":"null"}],"description":"Party the claim is about. Null on an issuer row."},"topic":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Claim topic."},"claimData":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Claim payload as the ledger recorded it."},"createdOffset":{"$ref":"#/components/schemas/LedgerOffset_4"},"updateId":{"type":"string","minLength":1,"description":"Ledger update that produced this row. Pairs with the offset to name an exact ledger coordinate."},"recordTime":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["family","networkIdentity","contractId","kind","adminParty","issuerParty","subjectParty","topic","claimData","createdOffset","updateId","recordTime"],"additionalProperties":false},"LedgerOffset_4":{"type":"string","pattern":"^\\d+$","description":"Ledger offset at which the projected contract was created."},"CantonPartyId_11":{"type":"string","minLength":1,"description":"Party administering the claim registry."},"NetworkId_4":{"type":"string","minLength":1,"description":"Platform network identity this row was projected from. Canton networks have no numeric chain id."},"EvmClaimsHistoryV2Item":{"type":"object","properties":{"family":{"type":"string","enum":["evm"],"description":"Chain family of this claim event. Present so a cross-family client can tell the rows apart."},"id":{"type":"string","description":"Stable identifier for this event: the transaction hash, a hyphen, and the zero-based log index."},"eventName":{"type":"string","enum":["ClaimAdded","ClaimChanged","ClaimRemoved","ClaimRevoked"]},"topic":{"type":"string","description":"Claim topic id as an unsigned 256-bit integer in base 10, which is past what a JSON number keeps exactly."},"claimId":{"type":"string","description":"Identifier of the claim the event refers to, as a 0x-prefixed 32-byte hash, stable across its four events."},"blockNumber":{"type":"string","description":"Number of the block that holds the transaction, in base 10, as a string so large values keep full precision."},"blockTimestamp":{"$ref":"#/components/schemas/TimestampEncoded"},"transactionHash":{"$ref":"#/components/schemas/EthereumHashEncoded"},"emitter":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"}},"required":["id"],"additionalProperties":false,"description":"Account the identity belongs to, taken from the identity registry. Falls back to the identity contract address when the registry records no account."},"sender":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"}},"required":["id"],"additionalProperties":false,"description":"Address that submitted the transaction carrying the event."},"values":{"type":"array","items":{"$ref":"#/components/schemas/ClaimEventValue"},"description":"Arguments the identity contract emitted, decoded into name and value pairs, ordered as emitted."}},"required":["family","id","eventName","topic","claimId","blockNumber","blockTimestamp","transactionHash","emitter","sender","values"],"additionalProperties":false},"ClaimEventValue":{"type":"object","properties":{"id":{"type":"string","description":"Identifier of this argument inside the event: `val-` and its zero-based position."},"name":{"type":"string","description":"Name of the decoded argument. Claim events carry `topic`, `scheme`, `issuer`, `signature`, `data`, and `uri`."},"value":{"type":"string","description":"Value rendered as a string. Numbers use base 10 and byte arguments a 0x-prefixed hex string."}},"required":["id","name","value"],"additionalProperties":false},"ClaimEventFilters":{"type":"object","properties":{"eventName":{"anyOf":[{"type":"string","enum":["ClaimAdded","ClaimChanged","ClaimRemoved","ClaimRevoked"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"topic":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"claimId":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"issuerAddress":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"senderAddress":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"blockTimestamp":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"blockNumber":{"anyOf":[{"type":"string","pattern":"^-?\\d+$","maxLength":80},{"type":"object","properties":{"eq":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"ne":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"gte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"between":{"type":"string","maxLength":161},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]}},"additionalProperties":false},"IdentityReadDto":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"account":{"anyOf":[{"$ref":"#/components/schemas/IdentityAccount"},{"type":"null"}]},"isContract":{"type":"boolean"},"hasIdentity":{"type":"boolean"},"registered":{"$ref":"#/components/schemas/IdentityRegistration"},"claims":{"type":"array","items":{"$ref":"#/components/schemas/IdentityClaim"}}},"required":["id","account","isContract","hasIdentity","claims"],"additionalProperties":false},"IdentityRegistration":{"anyOf":[{"$ref":"#/components/schemas/IdentityRegistered"},{"$ref":"#/components/schemas/IdentityUnregistered"}]},"IdentityUnregistered":{"type":"boolean","enum":[false]},"IdentityRegistered":{"type":"object","properties":{"isRegistered":{"type":"boolean","enum":[true]},"country":{"anyOf":[{"$ref":"#/components/schemas/IsoAlpha2Country_1"},{"type":"null"}]}},"required":["isRegistered","country"],"additionalProperties":false},"IsoAlpha2Country_1":{"type":"string","pattern":"^[A-Z]{2}$"},"IdentityAccount":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"contractName":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id"],"additionalProperties":false},"IdentityUpdateCountryCommand":{"type":"object","properties":{"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]},"wallet":{"$ref":"#/components/schemas/EvmAddress"},"countryCode":{"anyOf":[{"type":"string","pattern":"^\\d{1,3}$"},{"type":"number","multipleOf":1,"minimum":0,"maximum":999}]}},"required":["wallet","countryCode"],"additionalProperties":false},"IdentityDeleted":{"type":"object","properties":{"txHash":{"$ref":"#/components/schemas/EthereumHashEncoded"},"wallet":{"$ref":"#/components/schemas/EvmAddress"}},"required":["txHash","wallet"],"additionalProperties":false},"IdentityDeleteCommand":{"type":"object","properties":{"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"additionalProperties":false},"IdentityRegisterPendingCommand":{"type":"object","properties":{"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]},"organizationId":{"$ref":"#/components/schemas/OrganizationId_3"},"wallet":{"$ref":"#/components/schemas/EvmAddress"}},"additionalProperties":false},"OrganizationId_3":{"type":"string","minLength":1,"description":"Organisation to register under. Omit it to use the caller's own."},"IdentityRegisterCommand":{"type":"object","properties":{"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]},"wallet":{"$ref":"#/components/schemas/EvmAddress"},"country":{"$ref":"#/components/schemas/IsoAlpha2Country_1"}},"required":["country"],"additionalProperties":false},"IdentityCreateCommand":{"type":"object","properties":{"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]},"wallet":{"$ref":"#/components/schemas/EvmAddress"},"externalMessageAuthorization":{"$ref":"#/components/schemas/ExternalMessageAuthorization"}},"additionalProperties":false,"description":"Wallet to deploy an identity contract for. Omit `wallet` to use the caller's effective wallet. When the wallet's owner signs through a self custody wallet, the first answer names the typed data that wallet signs; send the request again with its signature in `externalMessageAuthorization`."},"IdentityRegistrationStatusOutput":{"type":"object","properties":{"status":{"type":"string","enum":["NO_SYSTEM","NO_IDENTITY","NOT_REGISTERED","PENDING","ACTIVE"]},"identityAddress":{"$ref":"#/components/schemas/EvmAddress"},"systemAddress":{"$ref":"#/components/schemas/EvmAddress"}},"required":["status"],"additionalProperties":false},"IdentityV2ListItem":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"walletAddress":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}],"description":"Wallet of the registration that represents the identity: an active registration on a wallet that is not lost first, then the wallet the identity was minted for. A `walletAddress` filter or a search that matches a wallet picks that wallet's registration."},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Contract name recorded for the account behind `walletAddress`. Null when the account has no indexed name."},"kycStatus":{"type":"string","enum":["pending","registered"],"description":"Status of the registration behind `walletAddress`."},"country":{"anyOf":[{"$ref":"#/components/schemas/IsoAlpha2Country_1"},{"type":"null"}]},"registrations":{"type":"array","items":{"$ref":"#/components/schemas/IdentityV2ListRegistration"},"description":"Every wallet the identity is registered for in the registry, the registration behind `walletAddress` first."},"isContract":{"type":"boolean","description":"Whether the account that owns the identity is a contract rather than an externally owned account."},"claimsCount":{"type":"integer","minimum":0,"description":"Every claim recorded against the identity, revoked claims included."},"activeClaimsCount":{"type":"integer","minimum":0,"description":"Claims that are not revoked, which is `claimsCount` less `revokedClaimsCount`."},"revokedClaimsCount":{"type":"integer","minimum":0,"description":"Claims on the identity an issuer has revoked."},"untrustedClaimsCount":{"type":"integer","minimum":0,"description":"Claims whose issuer the identity registry does not trust."},"deployedInTransaction":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"required":["id","walletAddress","name","kycStatus","country","registrations","isContract","claimsCount","activeClaimsCount","revokedClaimsCount","untrustedClaimsCount","deployedInTransaction"],"additionalProperties":false},"IdentityV2ListRegistration":{"type":"object","properties":{"walletAddress":{"$ref":"#/components/schemas/EvmAddress"},"kycStatus":{"type":"string","enum":["pending","registered"]},"country":{"anyOf":[{"$ref":"#/components/schemas/IsoAlpha2Country_1"},{"type":"null"}]},"isLost":{"type":"boolean","description":"Whether the wallet was marked lost. A recovered identity keeps the lost wallet's registration."}},"required":["walletAddress","kycStatus","country","isLost"],"additionalProperties":false},"IdentityFilters":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000},"id":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"walletAddress":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"name":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"kycStatus":{"anyOf":[{"type":"string","enum":["pending","registered"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"isContract":{"anyOf":[{"type":"string","enum":["true","false"]},{"type":"object","properties":{"eq":{"type":"string","enum":["true","false"]},"ne":{"type":"string","enum":["true","false"]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]}},"additionalProperties":false}]}},"additionalProperties":false},"IdentitySearchMatch":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"account":{"anyOf":[{"$ref":"#/components/schemas/IdentityAccount"},{"type":"null"}]},"isContract":{"type":"boolean"},"hasIdentity":{"type":"boolean"},"registered":{"$ref":"#/components/schemas/IdentityRegistration"}},"required":["id","account","isContract","hasIdentity"],"additionalProperties":false},"IdentitySelector":{"type":"object","properties":{"wallet":{"$ref":"#/components/schemas/EvmAddress"},"address":{"$ref":"#/components/schemas/EvmAddress"}},"additionalProperties":false},"IdentityMeResult":{"anyOf":[{"$ref":"#/components/schemas/IdentityReadDto"},{"$ref":"#/components/schemas/IdentityMeNotProvisioned"}]},"IdentityMeNotProvisioned":{"type":"object","properties":{"status":{"type":"string","enum":["NOT_PROVISIONED"]},"reason":{"type":"string","enum":["NO_IDENTITY"]}},"required":["status","reason"],"additionalProperties":false},"UserEventV2Item":{"anyOf":[{"$ref":"#/components/schemas/EvmUserEventV2Item"},{"$ref":"#/components/schemas/CantonActivityItem"}],"description":"One event involving the authenticated user. Discriminated on `family`: an `evm` row is an indexed contract event, a `canton` row is a ledger event named by its offset, update id, and node index.","discriminator":{"propertyName":"family","mapping":{"evm":"#/components/schemas/EvmUserEventV2Item","canton":"#/components/schemas/CantonActivityItem"}}},"CantonActivityItem":{"type":"object","properties":{"family":{"type":"string","enum":["canton"],"description":"Chain family of this event. Present so a cross-family client can tell the rows apart."},"id":{"type":"string","minLength":1,"description":"Stable identifier of the activity row."},"networkIdentity":{"$ref":"#/components/schemas/NetworkId_1"},"ledgerOffset":{"$ref":"#/components/schemas/LedgerOffset_1"},"updateId":{"type":"string","minLength":1,"description":"Ledger update that produced this row. Pairs with the offset to name an exact ledger coordinate."},"nodeId":{"type":"integer","minimum":0,"description":"Node index of the event inside its update. With the offset and update id it names one event exactly."},"projectionFamily":{"type":"string","enum":["holdings","transfers","allocations","allowances","compliance","identity"]},"action":{"type":"string","minLength":1,"description":"What happened, as the projection classified it."},"contractId":{"type":"string","minLength":1,"description":"Ledger contract identifier of the projected contract."},"instrumentAdmin":{"anyOf":[{"$ref":"#/components/schemas/CantonPartyId"},{"type":"null"}],"description":"Instrument admin the event concerns. Null for events with no instrument."},"instrumentId":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Instrument the event concerns. Null for events with no instrument."},"fromParty":{"anyOf":[{"$ref":"#/components/schemas/CantonPartyId"},{"type":"null"}],"description":"Party value moved from. Null when the event moves no value."},"toParty":{"anyOf":[{"$ref":"#/components/schemas/CantonPartyId"},{"type":"null"}],"description":"Party value moved to. Null when the event moves no value."},"amount":{"anyOf":[{"type":"string","pattern":"^-?\\d+(\\.\\d+)?$","description":"A Canton token amount as an exact decimal string.","examples":["1000","0","12.5"]},{"type":"null"}],"description":"Amount moved. Null when the event moves no value."},"recordTime":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["family","id","networkIdentity","ledgerOffset","updateId","nodeId","projectionFamily","action","contractId","instrumentAdmin","instrumentId","fromParty","toParty","amount","recordTime"],"additionalProperties":false},"LedgerOffset_1":{"type":"string","pattern":"^\\d+$","description":"Ledger offset of the update that produced the event."},"NetworkId_1":{"type":"string","minLength":1,"description":"Platform network identity this row was projected from. Canton networks have no numeric chain id."},"EvmUserEventV2Item":{"type":"object","properties":{"family":{"type":"string","enum":["evm"],"description":"Chain family of this event. Present so a cross-family client can tell the rows apart."},"id":{"type":"string"},"eventName":{"type":"string"},"txIndex":{"type":"string"},"blockNumber":{"type":"string"},"blockTimestamp":{"$ref":"#/components/schemas/TimestampEncoded"},"transactionHash":{"$ref":"#/components/schemas/EthereumHashEncoded"},"emitter":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"}},"required":["id"],"additionalProperties":false},"sender":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"}},"required":["id"],"additionalProperties":false},"metaTxSigner":{"anyOf":[{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"}},"required":["id"],"additionalProperties":false},{"type":"null"}],"description":"EOA attribution for meta-transactions. Null for directly-submitted transactions and for events indexed before attribution was available."},"displaySender":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"}},"required":["id"],"additionalProperties":false,"description":"Canonical originator address."},"relayerKind":{"anyOf":[{"type":"string","enum":["forwarder","user-operation"]},{"type":"null"}],"description":"Relayer type that submitted the meta-transaction. Null for a directly-submitted transaction."},"relayer":{"anyOf":[{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"}},"required":["id"],"additionalProperties":false},{"type":"null"}],"description":"Relayer EOA that submitted the meta-transaction."},"userOpHash":{"anyOf":[{"$ref":"#/components/schemas/EthereumHashEncoded"},{"type":"null"}],"description":"UserOperation hash from the ERC-4337 EntryPoint."},"paymaster":{"anyOf":[{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"}},"required":["id"],"additionalProperties":false},{"type":"null"}],"description":"Paymaster that sponsored the UserOperation's gas."},"actualGasCost":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"EntryPoint-charged gas cost in wei for this UserOperation.","examples":["128054388000000"]},"involved":{"type":"array","items":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"}},"required":["id"],"additionalProperties":false}},"values":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"value":{"type":"string"}},"required":["id","name","value"],"additionalProperties":false}}},"required":["family","id","eventName","txIndex","blockNumber","blockTimestamp","transactionHash","emitter","sender","metaTxSigner","displaySender","relayerKind","relayer","userOpHash","involved"],"additionalProperties":false},"UserEventFilters":{"type":"object","properties":{"blockTimestamp":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"eventName":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"blockNumber":{"anyOf":[{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},{"type":"object","properties":{"eq":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"ne":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"gte":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"lt":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"lte":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"between":{"type":"string","maxLength":64}},"additionalProperties":false}]},"projectionFamily":{"anyOf":[{"type":"string","enum":["holdings","transfers","allocations","allowances","compliance","identity"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"action":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"instrumentAdmin":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"instrumentId":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"fromParty":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"toParty":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"amount":{"anyOf":[{"type":"string","pattern":"^-?\\d+$","maxLength":80},{"type":"object","properties":{"eq":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"ne":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"gte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"between":{"type":"string","maxLength":161},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"ledgerOffset":{"anyOf":[{"type":"string","pattern":"^-?\\d+$","maxLength":80},{"type":"object","properties":{"eq":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"ne":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"gte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"between":{"type":"string","maxLength":161},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"recordTime":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"recordedAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"family":{"anyOf":[{"type":"string","enum":["evm","canton"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"network":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]}},"additionalProperties":false},"AdminMutationResult":{"type":"object","properties":{"success":{"type":"boolean"}},"required":["success"],"additionalProperties":false},"UserSecurityView":{"type":"object","properties":{"twoFactorEnabled":{"type":"boolean"},"walletPincodeEnabled":{"type":"boolean"},"walletTwoFactorEnabled":{"type":"boolean"},"walletSecretCodesConfirmed":{"type":"boolean"},"sessions":{"type":"array","items":{"$ref":"#/components/schemas/AdminSession"}}},"required":["twoFactorEnabled","walletPincodeEnabled","walletTwoFactorEnabled","walletSecretCodesConfirmed","sessions"],"additionalProperties":false},"AdminSession":{"type":"object","properties":{"id":{"type":"string","minLength":1},"userId":{"$ref":"#/components/schemas/UserId"},"ipAddress":{"anyOf":[{"type":"string"},{"type":"null"}]},"userAgent":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"},"expiresAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["id","userId","ipAddress","userAgent","createdAt","updatedAt","expiresAt"],"additionalProperties":false},"UserListMember":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/UserId"},"name":{"type":"string"},"email":{"anyOf":[{"type":"string"},{"type":"null"}]},"role":{"anyOf":[{"$ref":"#/components/schemas/UserRole_1"},{"type":"null"}]},"firstName":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastName":{"anyOf":[{"type":"string"},{"type":"null"}]},"nationalId":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"null"}]},{"type":"null"}]},"country":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"null"}]},{"type":"null"}]},"residencyStatus":{"anyOf":[{"anyOf":[{"$ref":"#/components/schemas/ResidencyStatus"},{"type":"null"}]},{"type":"null"}]},"createdAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"lastLoginAt":{"anyOf":[{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},{"type":"null"}]},"participantId":{"$ref":"#/components/schemas/ParticipantId_3"},"roles":{"$ref":"#/components/schemas/AccessControlRoles"},"rolesPending":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"isAdmin":{"anyOf":[{"anyOf":[{"type":"boolean"},{"type":"null"}]},{"type":"null"}]},"personalInfoCompleted":{"type":"boolean","description":"True when the member's latest profile revision holds the fixed fields and every required user-filled field of this organization's visible profile sections."},"imageUrl":{"type":"string","description":"Path of the mark route that serves this subject's image at small or hero size."},"imageProvenance":{"$ref":"#/components/schemas/ImageProvenance"},"registrationStatus":{"anyOf":[{"$ref":"#/components/schemas/IdentityStatus"},{"type":"null"}],"description":"The member's identity registration on the active system's identity registry: `registered` when the identity is active there, `pending` when it is not, and null when the member has no account on the active network."}},"required":["id","name","participantId","roles","personalInfoCompleted","imageUrl","imageProvenance","registrationStatus"],"additionalProperties":false,"description":"`registrationStatus` says whether the member's identity is registered on the active network."},"IdentityStatus":{"type":"string","enum":["pending","registered"],"description":"On-chain identity registration status"},"PartyAdminFilters":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000},"name":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"email":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"wallet":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"lastLoginAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"createdAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"roles":{"anyOf":[{"$ref":"#/components/schemas/AccessControlRole"},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]}},"additionalProperties":false},"PartyCustodyLifecycleAccepted":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/CustodyAccountLifecycleRequestId"},"state":{"type":"string","enum":["awaiting-proof","awaiting-existing-approval","claimed","awaiting-aa-reconciliation","reconciling","awaiting-external-message-authorization","awaiting-external-authorization","succeeded","failed","expired"]},"statusUrl":{"type":"string","minLength":1}},"required":["requestId","state","statusUrl"],"additionalProperties":false},"CustodyAccountLifecycleRequestId":{"type":"string","minLength":1,"description":"Durable custody account lifecycle request identifier"},"UserCreated":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/UserId"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"email":{"type":"string","minLength":1},"participantId":{"anyOf":[{"$ref":"#/components/schemas/ParticipantId"},{"type":"null"}]},"activationStatus":{"anyOf":[{"type":"string","enum":["pending","active"]},{"type":"null"}]},"custodyAccountId":{"anyOf":[{"$ref":"#/components/schemas/CustodyAccountId"},{"type":"null"}]},"identity":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]}},"required":["id","name","email","participantId","activationStatus","custodyAccountId","identity"],"additionalProperties":false},"UserCreateCommand":{"type":"object","properties":{"name":{"anyOf":[{"type":"string","minLength":1,"maxLength":255},{"type":"null"}]},"email":{"type":"string","minLength":1},"providerConfigurationId":{"$ref":"#/components/schemas/CustodyProviderConfigurationId"},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["email","providerConfigurationId"],"additionalProperties":false},"CustodyProviderConfigurationId":{"type":"string","minLength":1,"description":"Custody provider configuration identifier"},"UserListReadItem":{"anyOf":[{"$ref":"#/components/schemas/UserListMember"},{"$ref":"#/components/schemas/UserListSummaryItem"}],"description":"One organization member. Without `view=summary` or `fields[user]` the row carries `roles`, the on-chain access-control roles its scoped executor holds; with either, the row carries only the named members."},"UserListSummaryItem":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/UserId"},"name":{"type":"string"},"email":{"anyOf":[{"type":"string"},{"type":"null"}]},"role":{"anyOf":[{"$ref":"#/components/schemas/UserRole_1"},{"type":"null"}]},"firstName":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastName":{"anyOf":[{"type":"string"},{"type":"null"}]},"nationalId":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"null"}]},{"type":"null"}]},"country":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"null"}]},{"type":"null"}]},"residencyStatus":{"anyOf":[{"anyOf":[{"$ref":"#/components/schemas/ResidencyStatus"},{"type":"null"}]},{"type":"null"}]},"createdAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"lastLoginAt":{"anyOf":[{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},{"type":"null"}]},"participantId":{"$ref":"#/components/schemas/ParticipantId_3"},"roles":{"$ref":"#/components/schemas/AccessControlRoles_1"},"rolesPending":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"isAdmin":{"anyOf":[{"anyOf":[{"type":"boolean"},{"type":"null"}]},{"type":"null"}]},"personalInfoCompleted":{"type":"boolean","description":"True when the member's latest profile revision holds the fixed fields and every required user-filled field of this organization's visible profile sections."},"imageUrl":{"type":"string","description":"Path of the mark route that serves this subject's image at small or hero size."},"imageProvenance":{"$ref":"#/components/schemas/ImageProvenance"},"registrationStatus":{"anyOf":[{"$ref":"#/components/schemas/IdentityStatus"},{"type":"null"}],"description":"The member's identity registration on the active system's identity registry: `registered` when the identity is active there, `pending` when it is not, and null when the member has no account on the active network."}},"additionalProperties":false,"description":"One organization member carrying only the members the request named: without the access-control `roles` map unless the request names it."},"AccessControlRoles_1":{"type":"object","properties":{"addonManager":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"addonModule":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"addonRegistryModule":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"admin":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"assetDesigner":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"auditor":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"claimPolicyManager":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"claimIssuer":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"complianceManager":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"custodian":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"emergency":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"feedsManager":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"fundsManager":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"gasManager":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"governance":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"identityManager":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"identityRegistryModule":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"organisationIdentityManager":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"saleAdmin":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"supplyManagement":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"systemManager":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"systemModule":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"tokenFactoryModule":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"tokenFactoryRegistryModule":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"tokenManager":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"tradingVenueOperator":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"trustedIssuersMetaRegistryModule":{"anyOf":[{"type":"boolean"},{"type":"null"}]}},"additionalProperties":false},"userFieldsQuery":{"type":"object","properties":{"user":{"type":"string"}},"additionalProperties":false,"description":"Sparse fieldset for the user resource this response carries. Only named members are present, and a member this resource does not publish is refused.","examples":[{"user":"id,name,email,role,firstName,lastName,nationalId,country,residencyStatus,createdAt,lastLoginAt,participantId,rolesPending,isAdmin,personalInfoCompleted,imageUrl,imageProvenance,registrationStatus"}]},"UserFilters":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000},"createdAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"name":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"email":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"wallet":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"transactionWallet":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"signingWallet":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"nationalId":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"country":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"dob":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"residencyStatus":{"anyOf":[{"$ref":"#/components/schemas/ResidencyStatus"},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"registrationStatus":{"anyOf":[{"$ref":"#/components/schemas/IdentityStatus"},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]}},"additionalProperties":false},"UserMe":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/UserId"},"name":{"type":"string"},"email":{"anyOf":[{"type":"string"},{"type":"null"}]},"role":{"anyOf":[{"$ref":"#/components/schemas/UserRole_1"},{"type":"null"}]},"firstName":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastName":{"anyOf":[{"type":"string"},{"type":"null"}]},"nationalId":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"null"}]},{"type":"null"}]},"country":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"null"}]},{"type":"null"}]},"dob":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"null"}]},{"type":"null"}]},"residencyStatus":{"anyOf":[{"anyOf":[{"$ref":"#/components/schemas/ResidencyStatus"},{"type":"null"}]},{"type":"null"}]},"createdAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"lastLoginAt":{"anyOf":[{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},{"type":"null"}]},"verificationTypes":{"type":"array","items":{"$ref":"#/components/schemas/VerificationType"}},"onboardingState":{"$ref":"#/components/schemas/OnboardingState"},"remainingRecoveryCodes":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"hasRelevantAddons":{"type":"boolean"},"personalInfoCompleted":{"type":"boolean"},"isUserSecure":{"type":"boolean"},"systemAddress":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"baseCurrency":{"anyOf":[{"$ref":"#/components/schemas/FiatCurrency"},{"type":"null"}]},"onboardingCompletedAt":{"anyOf":[{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},{"type":"null"}]},"organizationName":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"null"}]},{"type":"null"}]},"imageUrl":{"type":"string","description":"Path of the mark route that serves this subject's image at small or hero size."},"imageProvenance":{"$ref":"#/components/schemas/ImageProvenance"}},"required":["id","name","verificationTypes","onboardingState","hasRelevantAddons","personalInfoCompleted","isUserSecure","systemAddress","baseCurrency","imageUrl","imageProvenance"],"additionalProperties":false},"OnboardingState":{"type":"object","properties":{"wallet":{"type":"boolean"},"walletSecurity":{"type":"boolean"},"walletRecoveryCodes":{"type":"boolean"},"system":{"type":"boolean"},"systemSettings":{"type":"boolean"},"systemAssets":{"type":"boolean"},"systemAddons":{"type":"boolean"},"identitySetup":{"type":"boolean"}},"required":["wallet","walletSecurity","walletRecoveryCodes","system","systemSettings","systemAssets","systemAddons","identitySetup"],"additionalProperties":false},"VerificationType":{"type":"string","enum":["OTP","PINCODE","SECRET_CODES"],"description":"Type of verification"},"Contact":{"type":"object","properties":{"id":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"name":{"type":"string","minLength":1,"maxLength":120},"wallet":{"$ref":"#/components/schemas/EvmAddress"},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["id","name","wallet","createdAt","updatedAt"],"additionalProperties":false},"ContactUpsert":{"type":"object","properties":{"id":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid","description":"Contact to overwrite. Omit it to add a new contact."},"name":{"type":"string","minLength":1,"maxLength":120},"wallet":{"$ref":"#/components/schemas/EvmAddress"}},"required":["name","wallet"],"additionalProperties":false},"ContactV2":{"type":"object","properties":{"id":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"name":{"type":"string","minLength":1,"maxLength":120},"wallet":{"$ref":"#/components/schemas/EvmAddress"},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"},"imageUrl":{"type":"string","description":"Path of the mark route that serves this subject's image at small or hero size."},"imageProvenance":{"$ref":"#/components/schemas/ImageProvenance"}},"required":["id","name","wallet","createdAt","updatedAt","imageUrl","imageProvenance"],"additionalProperties":false},"EligibleForTokenFilter":{"type":"object","properties":{"tokenAddress":{"$ref":"#/components/schemas/EvmAddress"},"action":{"anyOf":[{"type":"string","enum":["mint","transfer","burn"]},{"type":"null"}]},"reveal":{"type":"string","enum":["true","false"]}},"required":["tokenAddress"],"additionalProperties":false},"ContactFilters":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000},"name":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"wallet":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"createdAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"updatedAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]}},"additionalProperties":false},"MultisigFinalized":{"type":"object","properties":{"participantId":{"$ref":"#/components/schemas/ParticipantId"},"smartWalletAddress":{"$ref":"#/components/schemas/EvmAddress"}},"required":["participantId","smartWalletAddress"],"additionalProperties":false},"MultisigFinalize":{"type":"object","properties":{"providerConfigurationId":{"$ref":"#/components/schemas/CustodyProviderConfigurationId"},"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"}},"required":["providerConfigurationId"],"additionalProperties":false},"SeatJoined":{"type":"object","properties":{"joined":{"type":"boolean"},"address":{"$ref":"#/components/schemas/EvmAddress"},"weight":{"type":"integer","exclusiveMinimum":0}},"required":["joined","address","weight"],"additionalProperties":false},"InviteAccept":{"type":"object","properties":{"participantId":{"$ref":"#/components/schemas/ParticipantId"},"address":{"$ref":"#/components/schemas/EvmAddress"}},"required":["participantId","address"],"additionalProperties":false},"MultisigEligibleKey":{"type":"object","properties":{"walletId":{"type":"string","description":"Identifier of the caller's wallet this row offers as a signer seat."},"participantId":{"$ref":"#/components/schemas/ParticipantId"},"displayName":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Label the participant carries, or null when it has none."},"address":{"$ref":"#/components/schemas/EvmAddress"},"walletType":{"anyOf":[{"type":"string","enum":["eoa"]}]},"eligible":{"type":"boolean","description":"Whether this organization can drive the wallet on this chain."},"reason":{"anyOf":[{"type":"string","enum":["custody-mismatch","account-abstraction-disabled","signer-threshold-unmet","wallet-not-active"]},{"type":"null"}],"description":"The capability this organization lacks, `null` exactly when `eligible` is true."}},"required":["walletId","participantId","displayName","address","walletType","eligible","reason"],"additionalProperties":false},"MultisigEligibleKeyFilters":{"type":"object","properties":{"participantId":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"displayName":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"walletType":{"anyOf":[{"anyOf":[{"type":"string","enum":["eoa"]}]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]}},"additionalProperties":false},"MultisigInviteView":{"type":"object","properties":{"name":{"type":"string","description":"Name the creator gave the draft."},"creator":{"$ref":"#/components/schemas/MultisigDraftCreatorRef"},"assignedWeight":{"type":"integer","exclusiveMinimum":0,"description":"Weight the seat this invite offers contributes toward the threshold."},"threshold":{"type":"integer","exclusiveMinimum":0,"description":"Weight the finalized wallet will require, counting the seat this invite offers."},"members":{"type":"array","items":{"$ref":"#/components/schemas/MultisigInviteMember"},"description":"Seats already on the draft, as addresses and weights."},"status":{"type":"string","enum":["pending","joined","revoked","void","expired"]}},"required":["name","creator","assignedWeight","threshold","members","status"],"additionalProperties":false},"MultisigInviteMember":{"type":"object","properties":{"address":{"$ref":"#/components/schemas/EvmAddress"},"weight":{"type":"integer","exclusiveMinimum":0}},"required":["address","weight"],"additionalProperties":false},"MultisigDraftCreatorRef":{"type":"object","properties":{"participantId":{"$ref":"#/components/schemas/ParticipantId"},"displayName":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Always null on the invite read: the invitee is not told who the creator is."}},"required":["participantId","displayName"],"additionalProperties":false},"InviteRevoked":{"type":"object","properties":{"revoked":{"type":"boolean"}},"required":["revoked"],"additionalProperties":false},"InviteIssued":{"type":"object","properties":{"inviteId":{"type":"string","minLength":1},"seatId":{"type":"string","minLength":1},"token":{"type":"string"},"expiresAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["inviteId","seatId","token","expiresAt"],"additionalProperties":false},"InviteRequest":{"type":"object","properties":{"weight":{"type":"integer","exclusiveMinimum":0},"deliveryEmail":{"type":"string","minLength":1}},"required":["weight"],"additionalProperties":false},"SeatRemoved":{"type":"object","properties":{"removed":{"type":"boolean"}},"required":["removed"],"additionalProperties":false},"DraftDiscarded":{"type":"object","properties":{"deleted":{"type":"boolean","description":"Always `true` when the draft was removed."}},"required":["deleted"],"additionalProperties":false,"description":"Confirmation that the draft was removed and its unused invites are void."},"MultisigDraftView":{"type":"object","properties":{"id":{"type":"string","minLength":1,"description":"Identifier of the multisig draft, assigned by the platform."},"kind":{"type":"string","enum":["multisig"]},"name":{"type":"string"},"threshold":{"type":"integer","exclusiveMinimum":0},"status":{"type":"string","enum":["open","finalizing","finalized"]},"memberSetVersion":{"type":"integer","exclusiveMinimum":0},"creator":{"$ref":"#/components/schemas/MultisigDraftCreator"},"seats":{"type":"array","items":{"$ref":"#/components/schemas/MultisigDraftSeat"}},"achievability":{"$ref":"#/components/schemas/MultisigAchievability"},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"},"finalizedAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]}},"required":["id","kind","name","threshold","status","memberSetVersion","creator","seats","achievability","createdAt","updatedAt","finalizedAt"],"additionalProperties":false},"MultisigAchievability":{"type":"object","properties":{"totalWeight":{"type":"integer","minimum":0},"collectableWeight":{"type":"integer","minimum":0},"pendingWeight":{"type":"integer","minimum":0},"thresholdAchievable":{"type":"boolean"},"collectableThresholdAchievable":{"type":"boolean"}},"required":["totalWeight","collectableWeight","pendingWeight","thresholdAchievable","collectableThresholdAchievable"],"additionalProperties":false},"MultisigDraftSeat":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["own"]},"weight":{"type":"integer","exclusiveMinimum":0},"address":{"$ref":"#/components/schemas/EvmAddress"},"walletId":{"anyOf":[{"type":"string"},{"type":"null"}]},"participant":{"$ref":"#/components/schemas/MultisigDraftCreator"}},"required":["id","kind","weight","address","walletId","participant"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["invited"]},"weight":{"type":"integer","exclusiveMinimum":0},"address":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"walletId":{"anyOf":[{"type":"string"},{"type":"null"}]},"participant":{"anyOf":[{"$ref":"#/components/schemas/MultisigDraftCreator"},{"type":"null"}]},"invite":{"type":"object","properties":{"id":{"type":"string"},"tokenPrefix":{"type":"string"},"status":{"type":"string","enum":["pending","revoked","void","joined"]},"expiresAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["id","tokenPrefix","status","expiresAt"],"additionalProperties":false}},"required":["id","kind","weight","address","participant","invite"],"additionalProperties":false},{"type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string","enum":["external"]},"weight":{"type":"integer","exclusiveMinimum":0},"address":{"$ref":"#/components/schemas/EvmAddress"}},"required":["id","kind","weight","address"],"additionalProperties":false}]},"MultisigDraftCreator":{"type":"object","properties":{"participantId":{"type":"string"},"displayName":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["participantId","displayName"],"additionalProperties":false},"ExternalSeatInput":{"type":"object","properties":{"address":{"$ref":"#/components/schemas/EvmAddress"},"weight":{"type":"integer","exclusiveMinimum":0}},"required":["address","weight"],"additionalProperties":false},"OwnSeatInput":{"type":"object","properties":{"participantId":{"$ref":"#/components/schemas/ParticipantId"},"address":{"$ref":"#/components/schemas/EvmAddress"},"weight":{"type":"integer","exclusiveMinimum":0}},"required":["participantId","address","weight"],"additionalProperties":false},"MultisigDraftUpdate":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255,"description":"Display name for the draft, between 1 and 255 characters."},"threshold":{"type":"integer","exclusiveMinimum":0}},"additionalProperties":false},"MultisigDraftCreate":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255,"description":"Display name for the draft, between 1 and 255 characters."},"threshold":{"type":"integer","exclusiveMinimum":0},"participantId":{"$ref":"#/components/schemas/ParticipantId_2"},"address":{"$ref":"#/components/schemas/EvmAddress"}},"required":["name","participantId","address"],"additionalProperties":false},"ParticipantId_2":{"type":"string","minLength":1,"description":"Participant taking the first seat. The session must be allowed to act as it."},"MultisigDraftFilters":{"type":"object","properties":{"name":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"status":{"anyOf":[{"type":"string","enum":["open","finalizing","finalized"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"createdAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"updatedAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]}},"additionalProperties":false},"RegistrationRejected":{"type":"object","properties":{"registrationId":{"type":"string","minLength":1},"status":{"type":"string","enum":["rejected"]}},"required":["registrationId","status"],"additionalProperties":false},"RegistrationActivated":{"type":"object","properties":{"registrationId":{"type":"string","minLength":1},"status":{"type":"string","enum":["active"]}},"required":["registrationId","status"],"additionalProperties":false},"DirectRegistration":{"type":"object","properties":{"identityAddress":{"$ref":"#/components/schemas/EvmAddress"},"country":{"$ref":"#/components/schemas/IsoAlpha2Country"},"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"}},"required":["identityAddress","country"],"additionalProperties":false},"IsoAlpha2Country":{"type":"string","pattern":"^[A-Z]{2}$","description":"ISO 3166-1 alpha-2 country code recorded for every account registered by this request.","examples":["BE"]},"RegistrationAccepted":{"anyOf":[{"$ref":"#/components/schemas/PendingRegistrationAccepted"},{"$ref":"#/components/schemas/CantonIdentityOperationAccepted"}],"description":"What the route accepted. The EVM arm returns the pending registration; the Canton arm returns the settled identity operation, with `operationId` equal to the submission id the transaction-request read reports."},"PendingRegistrationAccepted":{"type":"object","properties":{"registrationId":{"type":"string","minLength":1},"status":{"type":"string","enum":["pending"]}},"required":["registrationId","status"],"additionalProperties":false},"RegistrationCreate":{"anyOf":[{"$ref":"#/components/schemas/EvmRegistrationCreate"},{"anyOf":[{"$ref":"#/components/schemas/CantonPartyIdentityRegisterCreate"},{"$ref":"#/components/schemas/CantonPartyIdentityDeleteCreate"},{"$ref":"#/components/schemas/CantonPartyIdentityMarkLostCreate"},{"$ref":"#/components/schemas/CantonPartyIdentityUpdateCountryCreate"},{"$ref":"#/components/schemas/CantonRecoveryProposalWithdrawCreate"}],"discriminator":{"propertyName":"kind","mapping":{"register-identity":"#/components/schemas/CantonPartyIdentityRegisterCreate","delete-identity":"#/components/schemas/CantonPartyIdentityDeleteCreate","mark-identity-lost":"#/components/schemas/CantonPartyIdentityMarkLostCreate","update-identity-country":"#/components/schemas/CantonPartyIdentityUpdateCountryCreate","withdraw-recovery-proposal":"#/components/schemas/CantonRecoveryProposalWithdrawCreate"}}}],"description":"The registration to request, or one party-identity registry choice to run. A body carrying `cantonPartyId` and `kind` is read on the Canton arm; a body carrying neither is the EVM registration, and it must name the participant and the organization."},"CantonRecoveryProposalWithdrawCreate":{"type":"object","properties":{"cantonPartyId":{"$ref":"#/components/schemas/CantonPartyId_10"},"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"kind":{"type":"string","enum":["withdraw-recovery-proposal"],"description":"Withdraws a recovery proposal by the contract id the party-onboardings list published."},"proposalContractId":{"type":"string","minLength":1,"description":"Contract id of the recovery proposal to withdraw, as the party-onboardings list returned it on a row of kind recovery-proposal."}},"required":["cantonPartyId","kind","proposalContractId"],"additionalProperties":false},"CantonPartyId_10":{"type":"string","minLength":1,"description":"Canton party this choice is submitted as. It must be a party wallet of the active organization; a party the organization does not hold answers not-found."},"CantonPartyIdentityUpdateCountryCreate":{"type":"object","properties":{"cantonPartyId":{"$ref":"#/components/schemas/CantonPartyId_9"},"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"kind":{"type":"string","enum":["update-identity-country"],"description":"Restates one registered identity's country."},"entryContractId":{"type":"string","minLength":1,"description":"Contract id of the registered identity to restate, as the party-onboardings list returned it on a row of kind identity."},"newCountry":{"type":"string","pattern":"^-?(0|[1-9]\\d*)$","description":"ISO 3166-1 numeric country code as a Daml `Int64` decimal string: no leading zeros and no JSON number. Belgium is numeric 056, so send \"56\". 0 means unset.","examples":["56"]}},"required":["cantonPartyId","kind","entryContractId","newCountry"],"additionalProperties":false},"CantonPartyId_9":{"type":"string","minLength":1,"description":"Canton party this choice is submitted as. It must be a party wallet of the active organization; a party the organization does not hold answers not-found."},"CantonPartyIdentityMarkLostCreate":{"type":"object","properties":{"cantonPartyId":{"$ref":"#/components/schemas/CantonPartyId_7"},"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"kind":{"type":"string","enum":["mark-identity-lost"],"description":"Flags a registered identity as lost, as the recovery agent. Its verification fails permanently afterwards."},"walletParty":{"$ref":"#/components/schemas/CantonPartyId_8"}},"required":["cantonPartyId","kind","walletParty"],"additionalProperties":false},"CantonPartyId_8":{"type":"string","minLength":1,"description":"Registered party to mark lost."},"CantonPartyId_7":{"type":"string","minLength":1,"description":"Canton party this choice is submitted as. It must be a party wallet of the active organization; a party the organization does not hold answers not-found."},"CantonPartyIdentityDeleteCreate":{"type":"object","properties":{"cantonPartyId":{"$ref":"#/components/schemas/CantonPartyId_6"},"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"kind":{"type":"string","enum":["delete-identity"],"description":"Removes a registered identity and archives its entry."},"entryContractId":{"type":"string","minLength":1,"description":"Contract id of the registered identity to remove, as the party-onboardings list returned it on a row of kind identity."}},"required":["cantonPartyId","kind","entryContractId"],"additionalProperties":false},"CantonPartyId_6":{"type":"string","minLength":1,"description":"Canton party this choice is submitted as. It must be a party wallet of the active organization; a party the organization does not hold answers not-found."},"CantonPartyIdentityRegisterCreate":{"type":"object","properties":{"cantonPartyId":{"$ref":"#/components/schemas/CantonPartyId_4"},"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"kind":{"type":"string","enum":["register-identity"],"description":"Admits the subject party to the identity registry, with its country of record."},"subjectParty":{"$ref":"#/components/schemas/CantonPartyId_5"},"country":{"type":"string","pattern":"^-?(0|[1-9]\\d*)$","description":"ISO 3166-1 numeric country code as a Daml `Int64` decimal string: no leading zeros and no JSON number. Belgium is numeric 056, so send \"56\". 0 means unset.","examples":["56"]}},"required":["cantonPartyId","kind","subjectParty","country"],"additionalProperties":false},"CantonPartyId_5":{"type":"string","minLength":1,"description":"Party to register in the registry."},"CantonPartyId_4":{"type":"string","minLength":1,"description":"Canton party this choice is submitted as. It must be a party wallet of the active organization; a party the organization does not hold answers not-found."},"EvmRegistrationCreate":{"type":"object","properties":{"participantId":{"$ref":"#/components/schemas/ParticipantId_1"},"organizationId":{"$ref":"#/components/schemas/OrganizationId_2"},"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"cantonPartyId":{"not":{}},"kind":{"not":{}}},"required":["participantId","organizationId"],"additionalProperties":false},"OrganizationId_2":{"type":"string","minLength":1,"description":"Identifier of the organization whose identity registry the participant should join. The session must be a member of it."},"ParticipantId_1":{"type":"string","minLength":1,"description":"Identifier of the participant to register. The session must be allowed to act as it."},"RegistrationListItem":{"anyOf":[{"$ref":"#/components/schemas/EvmRegistrationListItem"},{"$ref":"#/components/schemas/CantonPartyOnboardingItem"}],"description":"One registration. Discriminated on `family`: an `evm` row is an identity registration awaiting a decision, a `canton` row is one party-onboarding step on the selected Canton network.","discriminator":{"propertyName":"family","mapping":{"evm":"#/components/schemas/EvmRegistrationListItem","canton":"#/components/schemas/CantonPartyOnboardingItem"}}},"CantonPartyOnboardingItem":{"type":"object","properties":{"family":{"type":"string","enum":["canton"],"description":"Chain family of this party-onboarding row. Present so a cross-family client can tell the rows apart."},"networkIdentity":{"$ref":"#/components/schemas/NetworkId_3"},"contractId":{"type":"string","minLength":1,"description":"Registry contract that recorded this onboarding step."},"kind":{"type":"string","enum":["registry","identity","verification","recovery-proposal"],"description":"How far onboarding has progressed: the registry that will hold the identity, the registered identity, its verification, or the recovery proposal a recovery agent can withdraw."},"adminParty":{"$ref":"#/components/schemas/CantonPartyId_3"},"subjectParty":{"anyOf":[{"$ref":"#/components/schemas/CantonPartyId"},{"type":"null"}],"description":"Party being onboarded. Null on a registry row."},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Recorded country of the subject."},"createdOffset":{"$ref":"#/components/schemas/LedgerOffset_3"},"updateId":{"type":"string","minLength":1,"description":"Ledger update that produced this row. Pairs with the offset to name an exact ledger coordinate."},"recordTime":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["family","networkIdentity","contractId","kind","adminParty","subjectParty","country","createdOffset","updateId","recordTime"],"additionalProperties":false},"LedgerOffset_3":{"type":"string","pattern":"^\\d+$","description":"Ledger offset at which the projected contract was created."},"CantonPartyId_3":{"type":"string","minLength":1,"description":"Party administering the identity registry."},"NetworkId_3":{"type":"string","minLength":1,"description":"Platform network identity this row was projected from. Canton networks have no numeric chain id."},"EvmRegistrationListItem":{"type":"object","properties":{"family":{"type":"string","enum":["evm"],"description":"Chain family of this registration row. Every row carries it, so a page holding more than one family is narrowed on a field rather than guessed from which columns are present."},"registrationId":{"type":"string","minLength":1},"participantId":{"$ref":"#/components/schemas/ParticipantId"},"displayName":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Name to show for the participant. Null when the participant carries no name."},"kind":{"type":"string","enum":["person","company","fund","spv","department","joint_account","asset","organisation","claim_issuer","addon"]},"requestedByUserId":{"anyOf":[{"$ref":"#/components/schemas/UserId"},{"type":"null"}],"description":"Identifier of the user who requested the registration. Null after that user is deleted."},"requestedAt":{"type":"string"},"walletAddress":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}],"description":"Account address registered for the participant. Null while the participant's identity is still being indexed."},"identityAddress":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}],"description":"Address of the participant's on-chain identity contract. Null while that identity is still being indexed."}},"required":["family","registrationId","participantId","displayName","kind","requestedByUserId","requestedAt","walletAddress","identityAddress"],"additionalProperties":false},"RegistrationFilters":{"type":"object","properties":{"kind":{"anyOf":[{"type":"string","enum":["registry","identity","verification","recovery-proposal"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"adminParty":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"subjectParty":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"country":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"createdOffset":{"anyOf":[{"type":"string","pattern":"^-?\\d+$","maxLength":80},{"type":"object","properties":{"eq":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"ne":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"gte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"between":{"type":"string","maxLength":161},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"recordTime":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"family":{"anyOf":[{"type":"string","enum":["evm","canton"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"network":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]}},"additionalProperties":false},"ParticipantChainIdentityState":{"anyOf":[{"type":"object","properties":{"participantId":{"$ref":"#/components/schemas/ParticipantId"},"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"state":{"type":"string","enum":["absent","installing","present"],"description":"`absent` while no identity exists on this chain and no install was started (only the read answers it); `installing` while the identity, the wallet binding and the pending registration in the organization's identity registry are being created on this chain; `present` once the install finished and the identity exists there."}},"required":["participantId","chainId","state"],"additionalProperties":false},{"type":"object","properties":{"participantId":{"$ref":"#/components/schemas/ParticipantId"},"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"state":{"type":"string","enum":["refused"],"description":"The identity cannot be installed on this chain for the named `reason`; nothing was started."},"reason":{"type":"string","enum":["self-custody-key","multi-signer-wallet","provider-not-on-chain","chain-not-connected","no-chain-key"],"description":"Why the identity cannot be installed on this chain: `self-custody-key` when the participant's key is held in self custody and must sign for this chain itself, `multi-signer-wallet` when its smart wallet has more than one signer, `provider-not-on-chain` when the organization has not enabled the participant's custody provider on this chain, `chain-not-connected` when the organization is not connected to this chain, `no-chain-key` when the participant holds no managed key on another chain to carry here."}},"required":["participantId","chainId","state","reason"],"additionalProperties":false},{"type":"object","properties":{"participantId":{"$ref":"#/components/schemas/ParticipantId"},"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"state":{"type":"string","enum":["failed"],"description":"The install run on this chain ended before it finished, even when the identity itself was already created; `message` says why. The run is terminal, so a repeated install answers the same."},"message":{"type":"string","description":"Why the install run on this chain did not finish."}},"required":["participantId","chainId","state","message"],"additionalProperties":false}]},"ParticipantChainIdentityInstallBody":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/WalletVerification"}},"required":["walletVerification"],"additionalProperties":false},"CustodyAccountLifecycleStatusOutputEncoded":{"type":"string","contentMediaType":"application/json"},"CustodyAccountLifecycleStatusOutput":{"type":"object","properties":{"requestId":{"$ref":"#/components/schemas/CustodyAccountLifecycleRequestId"},"custodyAccountId":{"$ref":"#/components/schemas/CustodyAccountId"},"organizationContextId":{"$ref":"#/components/schemas/CustodyAccountOrganizationContextId"},"operation":{"type":"string","enum":["onboard","add","revoke","archive"]},"state":{"type":"string","enum":["awaiting-proof","awaiting-existing-approval","claimed","awaiting-aa-reconciliation","reconciling","awaiting-external-message-authorization","awaiting-external-authorization","succeeded","failed","expired"]},"externalPreparationId":{"anyOf":[{"$ref":"#/components/schemas/TransactionPreparationId"},{"type":"null"}],"description":"Prepared transaction this request is waiting to have authorized. Null on a managed path and until the request reaches an external-authorization state."},"externalAuthorizingCustodyAccountId":{"anyOf":[{"$ref":"#/components/schemas/CustodyAccountId"},{"type":"null"}],"description":"Account whose signature the request is waiting for. Null on a managed path and until the request reaches an external-authorization state."},"externalMessageDigest":{"anyOf":[{"$ref":"#/components/schemas/EthereumHexEncoded"},{"type":"null"}],"description":"Digest of the message the external account must sign. Null on a managed path and until the request reaches an external-authorization state."},"terminalResult":{"anyOf":[{"type":"string","enum":["succeeded","failed","expired"]},{"type":"null"}],"description":"How the request ended. Null while it is still running, which is what tells a poller to ask again."},"terminalCode":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Machine-readable reason a request failed or expired. Null for a request that has not ended, and for one that succeeded."}},"required":["requestId","custodyAccountId","organizationContextId","operation","state","externalPreparationId","externalAuthorizingCustodyAccountId","externalMessageDigest","terminalResult","terminalCode"],"additionalProperties":false},"TransactionPreparationId":{"type":"string","minLength":1,"description":"Server-prepared transaction authorization identifier"},"CustodyAccountOrganizationContextId":{"type":"string","minLength":1,"description":"Custody account organization context identifier"},"ParticipantHoldingV2Item":{"anyOf":[{"$ref":"#/components/schemas/EvmParticipantHoldingV2Item"},{"$ref":"#/components/schemas/CantonHolderItem"}],"description":"One position the participant holds. Discriminated on `family`: an `evm` row is one token held by one account, a `canton` row is one party's position in one instrument.","discriminator":{"propertyName":"family","mapping":{"evm":"#/components/schemas/EvmParticipantHoldingV2Item","canton":"#/components/schemas/CantonHolderItem"}}},"CantonHolderItem":{"type":"object","properties":{"family":{"type":"string","enum":["canton"],"description":"Chain family of this holder row. Present so a cross-family client can tell the rows apart."},"networkIdentity":{"$ref":"#/components/schemas/NetworkId_2"},"instrumentAdmin":{"$ref":"#/components/schemas/CantonPartyId_1"},"instrumentId":{"type":"string","minLength":1,"description":"Instrument identifier under its admin. The other half of a Canton instrument's key."},"ownerParty":{"$ref":"#/components/schemas/CantonPartyId_2"},"totalAmount":{"type":"string","pattern":"^-?\\d+(\\.\\d+)?$","description":"Total balance of the party in this instrument.","examples":["1000","0","12.5"]},"lockedAmount":{"type":"string","pattern":"^-?\\d+(\\.\\d+)?$","description":"Locked portion of the party's balance.","examples":["1000","0","12.5"]},"holdingCount":{"type":"integer"},"updatedOffset":{"$ref":"#/components/schemas/LedgerOffset_2"},"updateId":{"type":"string","minLength":1,"description":"Ledger update that produced this row. Pairs with the offset to name an exact ledger coordinate."},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["family","networkIdentity","instrumentAdmin","instrumentId","ownerParty","totalAmount","lockedAmount","holdingCount","updatedOffset","updateId","updatedAt"],"additionalProperties":false},"LedgerOffset_2":{"type":"string","pattern":"^\\d+$","description":"Ledger offset the balance was last recomputed at."},"CantonPartyId_2":{"type":"string","minLength":1,"description":"Party whose balance this row rolls up."},"CantonPartyId_1":{"type":"string","minLength":1,"description":"Party that administers the instrument. Half of a Canton instrument's key."},"NetworkId_2":{"type":"string","minLength":1,"description":"Platform network identity this row was projected from. Canton networks have no numeric chain id."},"EvmParticipantHoldingV2Item":{"type":"object","properties":{"family":{"type":"string","enum":["evm"],"description":"Chain family of this holding. Every row carries it, so a page holding more than one family is narrowed on a field rather than guessed from which columns are present."},"id":{"type":"string","description":"Identifier of this row: the token address and the account address, separated by a colon."},"token":{"$ref":"#/components/schemas/HoldingTokenV2Item"},"assetClass":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","description":"Identifier of the asset class."},"slug":{"type":"string","description":"Stable slug of the asset class, for grouping holdings by class."},"name":{"type":"string","description":"Name of the asset class, for display."}},"required":["id","slug","name"],"additionalProperties":false},{"type":"null"}],"description":"The token's asset class. Null for an externally registered token, which has no asset class template."},"organization":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","description":"Identifier of the issuing organization."},"name":{"type":"string","description":"Name of the issuing organization, for display."}},"required":["id","name"],"additionalProperties":false},{"type":"null"}],"description":"The organization that issued the token, resolved from the token's system. Null when none resolves, which is the usual case for an externally registered token."},"walletAddress":{"$ref":"#/components/schemas/EvmAddress"},"walletType":{"type":"string","enum":["eoa","smart"]},"balance":{"$ref":"#/components/schemas/BigDecimal"},"frozen":{"$ref":"#/components/schemas/BigDecimal"},"available":{"$ref":"#/components/schemas/BigDecimal"},"valueInBaseCurrency":{"anyOf":[{"$ref":"#/components/schemas/BigDecimal"},{"type":"null"}],"description":"The available balance valued in the base currency. Null when no price and exchange-rate path resolves for the token."},"priceInBaseCurrencyReliable":{"type":"boolean","description":"Whether every step used to reach the base-currency price was fresh. False when no price resolved at all, and false when any step fell back to a stale exchange rate."},"transferVerdict":{"type":"string","enum":["transferable","restricted"]},"restrictionReason":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Why the holding cannot be transferred. Null for a transferable holding, and also null when a restricted holding carries no more specific reason."}},"required":["family","id","token","assetClass","organization","walletAddress","walletType","balance","frozen","available","valueInBaseCurrency","priceInBaseCurrencyReliable","transferVerdict","restrictionReason"],"additionalProperties":false},"HoldingTokenV2Item":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"},"name":{"type":"string","description":"Name of the token.","examples":["Acme Bond 2030"]},"symbol":{"type":"string","minLength":1,"allOf":[{"description":"Ticker symbol of the token.","examples":["ACMB30"]}]},"type":{"$ref":"#/components/schemas/AssetTypeOrSlug_1"},"isExternal":{"type":"boolean","description":"True when the token was registered as an external token rather than issued by the organization's system."},"decimals":{"$ref":"#/components/schemas/DecimalsEncoded"}},"required":["id","name","symbol","type","isExternal","decimals"],"additionalProperties":false,"description":"The token this holding is denominated in."},"AssetTypeOrSlug_1":{"anyOf":[{"$ref":"#/components/schemas/AssetType"},{"$ref":"#/components/schemas/AssetTypeTemplateSlug"}],"description":"The asset type: one of the built-in types, or the slug of a custom asset type template."},"ParticipantHoldingFilters":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000},"tokenAddress":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"tokenName":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"tokenSymbol":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"walletAddress":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"walletType":{"anyOf":[{"type":"string","enum":["eoa","smart"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"instrumentAdmin":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"instrumentId":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"ownerParty":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"totalAmount":{"anyOf":[{"type":"string","pattern":"^-?\\d+$","maxLength":80},{"type":"object","properties":{"eq":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"ne":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"gte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"between":{"type":"string","maxLength":161},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"lockedAmount":{"anyOf":[{"type":"string","pattern":"^-?\\d+$","maxLength":80},{"type":"object","properties":{"eq":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"ne":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"gte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"between":{"type":"string","maxLength":161},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"holdingCount":{"anyOf":[{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},{"type":"object","properties":{"eq":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"ne":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"gte":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"lt":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"lte":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"between":{"type":"string","maxLength":64}},"additionalProperties":false}]},"updatedOffset":{"anyOf":[{"type":"string","pattern":"^-?\\d+$","maxLength":80},{"type":"object","properties":{"eq":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"ne":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"gte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"between":{"type":"string","maxLength":161},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"updatedAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"family":{"anyOf":[{"type":"string","enum":["evm","canton"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"network":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]}},"additionalProperties":false},"ParticipantActivityEventV2Item":{"anyOf":[{"$ref":"#/components/schemas/EvmParticipantActivityEventV2Item"},{"$ref":"#/components/schemas/CantonActivityItem"}],"description":"One event involving the participant. Discriminated on `family`: an `evm` row is an indexed contract event, a `canton` row is a ledger event named by its offset, update id, and node index.","discriminator":{"propertyName":"family","mapping":{"evm":"#/components/schemas/EvmParticipantActivityEventV2Item","canton":"#/components/schemas/CantonActivityItem"}}},"EvmParticipantActivityEventV2Item":{"type":"object","properties":{"family":{"type":"string","enum":["evm"],"description":"Chain family this event came from. Every row carries it, so a page holding more than one family is narrowed on a field rather than guessed from which columns are present."},"id":{"type":"string","description":"Stable identifier of the event row.","examples":["evt_123abc"]},"eventName":{"type":"string","description":"Name of the contract event.","examples":["TransferCompleted","MintCompleted"]},"txIndex":{"type":"string","description":"Log index inside the transaction, carried as text for parity with v1.","examples":["0","5"]},"blockNumber":{"type":"string","description":"Block the event was mined in, as a decimal string so a number past 2^53 keeps its digits.","examples":["12345678"]},"blockTimestamp":{"$ref":"#/components/schemas/TimestampEncoded"},"transactionHash":{"$ref":"#/components/schemas/EthereumHashEncoded"},"emitter":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"}},"required":["id"],"additionalProperties":false,"description":"Contract that emitted the event, named by its address."},"sender":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"}},"required":["id"],"additionalProperties":false,"description":"Address that triggered the event, taken from its sender or account. Falls back to the emitting contract when the event records neither."},"metaTxSigner":{"anyOf":[{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"}},"required":["id"],"additionalProperties":false},{"type":"null"}],"description":"Key account attributed for a meta-transaction. Null for a directly submitted transaction and for a row indexed before attribution existed."},"displaySender":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"}},"required":["id"],"additionalProperties":false,"description":"Canonical originator: the meta-transaction signer when there is one, the sender otherwise."},"relayerKind":{"anyOf":[{"type":"string","enum":["forwarder","user-operation"]},{"type":"null"}],"description":"How the meta-transaction reached the chain. Null for a directly submitted transaction."},"relayer":{"anyOf":[{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"}},"required":["id"],"additionalProperties":false},{"type":"null"}],"description":"Relayer key account that submitted the meta-transaction."},"userOpHash":{"anyOf":[{"$ref":"#/components/schemas/EthereumHashEncoded"},{"type":"null"}],"description":"UserOperation hash from the ERC-4337 entry point."},"paymaster":{"anyOf":[{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"}},"required":["id"],"additionalProperties":false},{"type":"null"}],"description":"Paymaster that sponsored the UserOperation gas."},"actualGasCost":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Gas cost in wei the entry point charged for this UserOperation.","examples":["128054388000000"]},"involved":{"type":"array","items":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/EvmAddress"}},"required":["id"],"additionalProperties":false},"description":"Every address the event involved, the sender and the emitting contract included."},"values":{"type":"array","items":{"$ref":"#/components/schemas/RuntimeActivityEventV2Value"},"description":"Decoded event parameters as name and value pairs."}},"required":["family","id","eventName","txIndex","blockNumber","blockTimestamp","transactionHash","emitter","sender","metaTxSigner","displaySender","relayerKind","relayer","userOpHash","involved","values"],"additionalProperties":false},"RuntimeActivityEventV2Value":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"value":{"type":"string"}},"required":["id","name","value"],"additionalProperties":false},"ParticipantActivityFilters":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000},"eventName":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"blockTimestamp":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"projectionFamily":{"anyOf":[{"type":"string","enum":["holdings","transfers","allocations","allowances","compliance","identity"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"action":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"instrumentAdmin":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"instrumentId":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"fromParty":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"toParty":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"amount":{"anyOf":[{"type":"string","pattern":"^-?\\d+$","maxLength":80},{"type":"object","properties":{"eq":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"ne":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"gte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"between":{"type":"string","maxLength":161},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"ledgerOffset":{"anyOf":[{"type":"string","pattern":"^-?\\d+$","maxLength":80},{"type":"object","properties":{"eq":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"ne":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"gte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lt":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"lte":{"type":"string","pattern":"^-?\\d+$","maxLength":80},"between":{"type":"string","maxLength":161},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"recordTime":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"recordedAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"family":{"anyOf":[{"type":"string","enum":["evm","canton"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"network":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]}},"additionalProperties":false},"AssumableParticipantRead":{"anyOf":[{"$ref":"#/components/schemas/AssumableParticipant"},{"$ref":"#/components/schemas/AssumableParticipantSummary"}],"description":"One participant the session can act as. Without `view=summary` or `fields[assumableParticipant]` this carries the identity status and address, the registered organizations, and the account count; with either, it carries only the named switcher members."},"AssumableParticipantSummary":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/ParticipantId"},"kind":{"type":"string","enum":["person","organisation"]},"gatingRole":{"anyOf":[{"type":"string","enum":["organisationIdentityManager","admin"]},{"type":"null"}],"description":"The role that qualifies this organization participant. Null for every kind other than `organisation`, which needs no such role."},"displayName":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Name to show for the participant. Null when the participant carries no name."},"actAvailability":{"$ref":"#/components/schemas/ActAvailability"}},"additionalProperties":false,"description":"A participant the session can act as, without the fields the switcher does not render: no identity status or address, no registered organizations, and no account count."},"ActAvailability":{"type":"object","properties":{"actable":{"type":"boolean","description":"Whether the session can act as this participant right now."},"reason":{"type":"string","enum":["ok","noSmartWallet","noEoa","noIdentity","multisigThreshold"]}},"required":["actable","reason"],"additionalProperties":false},"AssumableParticipant":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/ParticipantId"},"kind":{"type":"string","enum":["person","organisation"]},"displayName":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Name to show for the participant. Null when the participant carries no name."},"gatingRole":{"anyOf":[{"type":"string","enum":["organisationIdentityManager","admin"]},{"type":"null"}],"description":"The role that qualifies this organization participant. Null for every kind other than `organisation`, which needs no such role."},"actAvailability":{"$ref":"#/components/schemas/ActAvailability"},"identityStatus":{"type":"string","enum":["verified","pending","none"]},"identityAddress":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}],"description":"Address of the participant's on-chain identity contract, or null when no identity has been created. Set independently of `identityStatus`: an identity that exists but is not registered yet still reports its address here with an `identityStatus` of `none`."},"registeredOrganizations":{"type":"array","items":{"$ref":"#/components/schemas/ParticipantOrganizationRegistration"},"description":"Organizations you belong to whose identity registry already holds this participant, and whether that entry is `pending` acceptance or `active`. Registering the participant into one of these has no effect."},"identities":{"type":"array","items":{"$ref":"#/components/schemas/ParticipantChainIdentity"},"description":"The participant's identity on each chain your organization is connected to, your organization's default chain first. Each entry says whether the identity exists on that chain and, separately, whether your organization's identity registry there has approved it."},"accountCount":{"type":"integer","minimum":0,"description":"How many accounts belong to the participant. Zero or more."}},"required":["id","kind","displayName","gatingRole","actAvailability","identityStatus","identityAddress","registeredOrganizations","identities","accountCount"],"additionalProperties":false},"ParticipantChainIdentity":{"type":"object","properties":{"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"identityAddress":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}],"description":"Address of the participant's on-chain identity contract on this chain. Null until the identity contract exists on this chain."},"registration":{"type":"string","enum":["none","pending","approved"],"description":"Where your organization's identity registry on this chain stands on this identity: `approved` when an entry is active, `pending` while it awaits acceptance, `none` when the registry holds no entry. Read per identity in your organization's registry, so it can differ from `identityStatus`, which reads the participant's accounts in any registry."}},"required":["chainId","identityAddress","registration"],"additionalProperties":false},"ParticipantOrganizationRegistration":{"type":"object","properties":{"organizationId":{"$ref":"#/components/schemas/OrganizationId"},"state":{"type":"string","enum":["pending","active"],"description":"`pending` awaits acceptance by that organization; `active` is accepted."}},"required":["organizationId","state"],"additionalProperties":false},"assumableParticipantFieldsQuery":{"type":"object","properties":{"assumableParticipant":{"type":"string"}},"additionalProperties":false,"description":"Sparse fieldset for the assumableParticipant resource this response carries. Only named members are present, and a member this resource does not publish is refused.","examples":[{"assumableParticipant":"id,displayName,kind,gatingRole,actAvailability"}]},"AssumableFilters":{"type":"object","properties":{"id":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"kind":{"anyOf":[{"type":"string","enum":["person","organisation"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"displayName":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]}},"additionalProperties":false},"PendingParticipantCreated":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/ParticipantId"},"activationStatus":{"anyOf":[{"type":"string","enum":["pending"]}],"description":"Always `pending`: the participant cannot act with this key until its owner proves control of it.","examples":["pending"]},"proofUrl":{"type":"string","description":"Where the participant's owner connects the wallet and signs the proof, in a session of their own.","examples":["/api/v2/user/custody-accounts/control"]}},"required":["id","activationStatus","proofUrl"],"additionalProperties":false},"ParticipantCreated":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/ParticipantId"},"kind":{"type":"string","enum":["eoa","smart"],"description":"The account provisioned for the participant.","examples":["smart"]},"wallet":{"$ref":"#/components/schemas/EvmAddress"},"identity":{"$ref":"#/components/schemas/EvmAddress"}},"required":["id","kind","wallet","identity"],"additionalProperties":false},"ParticipantCreate":{"type":"object","properties":{"organizationId":{"$ref":"#/components/schemas/OrganizationId_1"},"name":{"type":"string","maxLength":255,"description":"Name to show for the participant. Omit it to leave the participant unnamed.","examples":["Treasury desk"]},"forUserId":{"type":"string","minLength":1,"description":"The user the participant belongs to. Omit it to create one for yourself. Naming somebody else needs the identity-manager role and a session of your own, and the user must already be a member of the active organization.","examples":["usr_01J8Z3M4N5P6Q7R8S9T0V1W2X3"]},"walletType":{"type":"string","enum":["eoa","smart"],"description":"Account to provision directly. Omit it and the organization's own account type stands: `smart` where the organization drives account abstraction on this network, `eoa` everywhere else. Sending a type the organization does not drive is refused with `party.participant.WALLET_TYPE_CONFLICT`; sending the matching one is accepted. Multisig accounts are created through the multisig-draft finalize operation.","examples":["smart"]},"providerConfigurationId":{"$ref":"#/components/schemas/CustodyProviderConfigurationId"},"walletVerification":{"$ref":"#/components/schemas/WalletVerification"}},"required":["providerConfigurationId","walletVerification"],"additionalProperties":false},"OrganizationId_1":{"type":"string","minLength":1,"description":"The organization the participant is created in. Omit it to use your active organization. Naming another one is how somebody joining on an invitation creates the participant they will join as, before the membership that would make it active exists; you must belong to it or hold an open invitation to it."},"Participant":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/ParticipantId"},"kind":{"type":"string","enum":["person","company","fund","spv","department","joint_account","asset","organisation","claim_issuer","addon"]},"address":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}],"description":"The address the requested `purpose` selected. Null only for the `participant` purpose, when the participant has no address of that kind yet."},"displayName":{"type":"string","description":"Name to show for the participant. A participant with no name of its own falls back to the linked user's name, then that user's email, then the organization name, then the claim issuer's provider, and last to an address."},"symbol":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Ticker symbol of the token behind an `asset` participant. Null for every other kind."}},"required":["id","kind","address","displayName","symbol"],"additionalProperties":false},"ParticipantFilters":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000},"kind":{"anyOf":[{"type":"string","enum":["person","company","fund","spv","department","joint_account","asset","organisation","claim_issuer","addon"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"displayName":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"address":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]}},"additionalProperties":false},"CheckerApprovalDecision":{"type":"object","properties":{"approvalId":{"type":"string","description":"The decided approval"},"status":{"type":"string","enum":["approved","rejected"],"description":"The recorded decision"}},"required":["approvalId","status"],"additionalProperties":false},"UserRoleEncoded":{"anyOf":[{"$ref":"#/components/schemas/UserRole"},{"type":"null"}]},"UserRole":{"type":"string","enum":["admin","owner","member"],"description":"User role in the system"},"StatusTransactionsList":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"transactionId":{"type":"string"},"kind":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"status":{"$ref":"#/components/schemas/TransactionRequestState"},"subStatus":{"anyOf":[{"type":"string"},{"type":"null"}]},"fromAddress":{"type":"string"},"chainId":{"type":"integer"},"nonce":{"anyOf":[{"type":"integer"},{"type":"null"}]},"gasPrice":{"anyOf":[{"type":"string"},{"type":"null"}]},"transactionHash":{"anyOf":[{"type":"string"},{"type":"null"}]},"confirmationChecks":{"type":"integer"},"errorMessage":{"anyOf":[{"type":"string"},{"type":"null"}]},"revertReason":{"anyOf":[{"type":"string"},{"type":"null"}]},"contractErrorCode":{"anyOf":[{"type":"string"},{"type":"null"}]},"traceId":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["transactionId","kind","description","status","subStatus","fromAddress","chainId","nonce","gasPrice","transactionHash","confirmationChecks","errorMessage","revertReason","contractErrorCode","traceId","createdAt","updatedAt"],"additionalProperties":false}},"meta":{"$ref":"#/components/schemas/CollectionResponseMeta"},"links":{"$ref":"#/components/schemas/CollectionPaginationLinks"}},"required":["data","meta","links"],"additionalProperties":false},"TransactionRequestState":{"type":"string","enum":["RECEIVED","QUEUED","AWAITING_WORKFLOW","PREPARING","PENDING_APPROVAL","SIGNING","BROADCASTING","CONFIRMING","COMPLETED","FAILED","DEAD_LETTER","CANCELLED"],"description":"Current state in the transaction request lifecycle"},"StatusTransactionListFilters":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000},"status":{"anyOf":[{"$ref":"#/components/schemas/TransactionRequestState"},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"operationType":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"fromAddress":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"chainId":{"anyOf":[{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},{"type":"object","properties":{"eq":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"ne":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"gte":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"lt":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"lte":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"between":{"type":"string","maxLength":64}},"additionalProperties":false}]},"createdAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"updatedAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]}},"additionalProperties":false},"OpsCaseRefusedEncoded":{"type":"object","properties":{"_tag":{"type":"string","enum":["OpsCaseRefused"]},"message":{"type":"string","minLength":1},"cause":{"anyOf":[{},{"type":"null"}]},"reason":{"type":"string","enum":["already-resolved","already-acknowledged","expired","row-version-moved"]}},"required":["_tag","message","reason"],"additionalProperties":false},"OpsCaseNotFoundEncoded":{"type":"object","properties":{"_tag":{"type":"string","enum":["OpsCaseNotFound"]},"message":{"type":"string","minLength":1},"cause":{"anyOf":[{},{"type":"null"}]}},"required":["_tag","message"],"additionalProperties":false},"OpsApprovalRefusedEncoded":{"type":"object","properties":{"_tag":{"type":"string","enum":["OpsApprovalRefused"]},"message":{"type":"string","minLength":1},"cause":{"anyOf":[{},{"type":"null"}]},"violation":{"type":"string","enum":["same-actor","already-decided","wrong-kind","wrong-state","impersonated-session","digest-moved","row-version-moved","expired","approver-role-not-permitted","quorum-not-met","not-named-approver"]},"storedDigest":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"submittedDigest":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]}},"required":["_tag","message","violation","storedDigest","submittedDigest"],"additionalProperties":false},"OpsApprovalNotFoundEncoded":{"type":"object","properties":{"_tag":{"type":"string","enum":["OpsApprovalNotFound"]},"message":{"type":"string","minLength":1},"cause":{"anyOf":[{},{"type":"null"}]}},"required":["_tag","message"],"additionalProperties":false},"OpsBundleWindowInvalidEncoded":{"type":"object","properties":{"_tag":{"type":"string","enum":["OpsBundleWindowInvalid"]},"message":{"type":"string","minLength":1},"cause":{"anyOf":[{},{"type":"null"}]}},"required":["_tag","message"],"additionalProperties":false},"OpsMetadataNotFoundEncoded":{"type":"object","properties":{"_tag":{"type":"string","enum":["OpsMetadataNotFound"]},"message":{"type":"string","minLength":1},"cause":{"anyOf":[{},{"type":"null"}]}},"required":["_tag","message"],"additionalProperties":false},"OpsIndexerUnreachableEncoded":{"type":"object","properties":{"_tag":{"type":"string","enum":["OpsIndexerUnreachable"]},"message":{"type":"string","minLength":1},"cause":{"anyOf":[{},{"type":"null"}]}},"required":["_tag","message"],"additionalProperties":false},"OpsReindexInvalidEncoded":{"type":"object","properties":{"_tag":{"type":"string","enum":["OpsReindexInvalid"]},"message":{"type":"string","minLength":1},"cause":{"anyOf":[{},{"type":"null"}]}},"required":["_tag","message"],"additionalProperties":false},"OpsReindexConflictEncoded":{"type":"object","properties":{"_tag":{"type":"string","enum":["OpsReindexConflict"]},"message":{"type":"string","minLength":1},"cause":{"anyOf":[{},{"type":"null"}]}},"required":["_tag","message"],"additionalProperties":false},"OpsAdminRequiredEncoded":{"type":"object","properties":{"_tag":{"type":"string","enum":["OpsAdminRequired"]},"message":{"type":"string","minLength":1},"cause":{"anyOf":[{},{"type":"null"}]}},"required":["_tag","message"],"additionalProperties":false},"OpsLogNotFoundEncoded":{"type":"object","properties":{"_tag":{"type":"string","enum":["OpsLogNotFound"]},"message":{"type":"string","minLength":1},"cause":{"anyOf":[{},{"type":"null"}]}},"required":["_tag","message"],"additionalProperties":false},"FiniteDecimalFromStringEncoded":{"type":"string"},"CantonIdentityOperationOutput":{"type":"object","properties":{"operationId":{"type":"string","minLength":1,"description":"Durable operation identifier. It is also the submission identifier, so `/api/v2/transaction-requests` reports this operation's progress under the same id."},"submissionId":{"type":"string","minLength":1},"ledgerSubmissionId":{"type":"string","minLength":1},"preparedHashHex":{"type":"string","minLength":1},"contractId":{"type":"string","description":"Contract id the submission created, when the operation created one."}},"required":["operationId","submissionId","ledgerSubmissionId","preparedHashHex"],"additionalProperties":false},"FxRateHistoryFilters":{"type":"object","properties":{"rate":{"anyOf":[{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},{"type":"object","properties":{"eq":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"ne":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"gte":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"lt":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"lte":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"between":{"type":"string","maxLength":64}},"additionalProperties":false}]},"effectiveAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]}},"additionalProperties":false},"FxRateListFilters":{"type":"object","properties":{"q":{"type":"string","minLength":1,"maxLength":1000},"baseCurrency":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"quoteCurrency":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"rate":{"anyOf":[{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},{"type":"object","properties":{"eq":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"ne":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"gte":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"lt":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"lte":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"between":{"type":"string","maxLength":64}},"additionalProperties":false}]},"effectiveAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"updatedAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]}},"additionalProperties":false},"OptionalUserVerification":{"anyOf":[{"$ref":"#/components/schemas/UserVerification"},{"type":"null"}],"description":"Wallet step-up proof for this write. Required when the organization enforces PIN, OTP, recovery codes, or OIDC MFA on mutations. Omit only when the deployment does not require wallet verification.","examples":[{"secretVerificationCode":"847291","verificationType":"OTP"}]},"UserVerification":{"type":"object","properties":{"secretVerificationCode":{"$ref":"#/components/schemas/NonEmptyString"},"verificationType":{"anyOf":[{"type":"string","enum":["OTP","PINCODE","SECRET_CODES","OIDC_MFA"]},{"type":"null"}]}},"required":["secretVerificationCode"],"additionalProperties":false},"NonEmptyString":{"type":"string","minLength":1},"BundlerBalance":{"type":"object","properties":{"address":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}],"description":"Bundler wallet whose native balance was read. Null when no managed bundler wallet is bound."},"balance":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Live native-token balance of the bundler wallet, in wei, as a decimal string. Null when no managed bundler wallet is bound."},"nativeTokenSymbol":{"type":"string","description":"Native token symbol on the selected chain, such as ETH.","examples":["ETH"]},"nativeTokenDecimals":{"type":"integer","minimum":0,"maximum":18,"description":"Base units per whole unit of the chain's native token, as a power of ten."}},"required":["address","balance","nativeTokenSymbol","nativeTokenDecimals"],"additionalProperties":false},"BundlerStatus":{"type":"object","properties":{"address":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}],"description":"Configured bundler wallet for the organization. Null when no bundler wallet address is stored."}},"required":["address"],"additionalProperties":false,"description":"Whether a bundler wallet is configured for the organization. This is an organization setting, not a live chain probe."},"PayerWithdrawal":{"type":"object","properties":{"payerAddress":{"$ref":"#/components/schemas/EvmAddress"},"destination":{"$ref":"#/components/schemas/EvmAddress"},"amount":{"type":"string","description":"The withdrawn amount, in wei, as a decimal string."}},"required":["payerAddress","destination","amount"],"additionalProperties":false},"PayerWithdrawable":{"type":"object","properties":{"payerAddress":{"$ref":"#/components/schemas/EvmAddress"},"balance":{"type":"string","description":"Live native balance, in wei, as a decimal string."},"reserve":{"type":"string","description":"What the wallet keeps to pay for the withdrawal itself, including a replacement at a raised fee, in wei."},"withdrawable":{"type":"string","description":"The most a withdrawal can move now: the balance less the reserve, never below zero, in wei."}},"required":["payerAddress","balance","reserve","withdrawable"],"additionalProperties":false},"MutationInput":{"type":"object","properties":{"walletVerification":{"$ref":"#/components/schemas/OptionalUserVerification"}},"additionalProperties":false,"description":"Shared mutation body fields. `walletVerification` carries the step-up secret the signer must present before a chain write is queued.","examples":[{"walletVerification":{"secretVerificationCode":"847291","verificationType":"OTP"}}]},"WalletId":{"type":"string","minLength":1,"description":"Persisted wallet identifier"},"NetworkId":{"type":"string","minLength":1,"description":"Stable platform network identifier"},"ExecutionChainStepOutcome":{"type":"object","properties":{"transactionId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"status":{"$ref":"#/components/schemas/TransactionRequestState"},"transactionHash":{"anyOf":[{"$ref":"#/components/schemas/EthereumHashEncoded"},{"type":"null"}]},"errorMessage":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["transactionId","status","transactionHash","errorMessage"],"additionalProperties":false,"description":"One call of a chained write: its own transaction request id (readable alone), its queue state (COMPLETED landed on chain, FAILED did not), its hash once broadcast, and its failure text."},"TransactionStatusOutput":{"anyOf":[{"$ref":"#/components/schemas/EvmTransactionStatusOutput"},{"type":"object","properties":{"family":{"type":"string","enum":["canton"]},"submissionId":{"type":"string","minLength":1},"networkIdentity":{"$ref":"#/components/schemas/NetworkId"},"submittingParty":{"$ref":"#/components/schemas/CantonPartyId"},"submissionStatus":{"type":"string","enum":["intent","approved","executed","projecting","settled","expired","failed"]},"approvalStatus":{"type":"string","enum":["none","pending","approved","denied"]},"approvalDecidedBy":{"anyOf":[{"type":"string"},{"type":"null"}]},"approvalDecidedAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded_2"},{"type":"null"}]},"ledgerSubmissionId":{"type":"string"},"settlementOffset":{"$ref":"#/components/schemas/LedgerOffset"},"failureReason":{"type":"object","properties":{"category":{"type":"string","enum":["ledger-rejected","approval-denied","approval-expired","no-longer-applies","signing-denied","not-entitled","internal"]},"code":{"type":"string","minLength":1},"message":{"type":"string","minLength":1}},"required":["category","code","message"],"additionalProperties":false},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded_2"},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded_2"}},"required":["family","submissionId","networkIdentity","submittingParty","submissionStatus","approvalStatus","approvalDecidedBy","approvalDecidedAt","createdAt","updatedAt"],"additionalProperties":false}]},"TimestampEncoded_2":{"anyOf":[{"type":"string","description":"Epoch milliseconds as a digit string, or a readable datetime.","format":"timestamp"},{"type":"number","minimum":0}]},"EvmTransactionStatusOutput":{"type":"object","properties":{"family":{"type":"string","enum":["evm"],"description":"Chain family of this row."},"transactionId":{"type":"string","description":"Queue identifier of the transaction request, assigned when the mutation was accepted."},"kind":{"type":"string","description":"Submitted mutation kind, such as token.mint or token.create."},"status":{"$ref":"#/components/schemas/TransactionRequestState_1"},"subStatus":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Finer queue progress or failure detail when the processor recorded one. Null otherwise."},"transactionHash":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Primary blockchain transaction hash after broadcast. Null until the request is sent to the chain."},"transactionHashes":{"type":"array","items":{"type":"string"},"description":"Every blockchain hash this request produced. Present only when the operation submitted more than one transaction."},"blockNumber":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Decimal block number after confirmation. Null until the transaction is mined."},"errorMessage":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Plain failure or timeout text when the request did not complete. Null on success or while in flight."},"contractError":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","description":"Stable catalog code for the decoded contract revert, such as DALP-1106."},"args":{"type":"object","additionalProperties":{"type":"string"},"description":"Decoded revert arguments as raw base-unit strings, keyed by the catalog template name."},"why":{"type":"string","description":"Explanation of why the contract reverted."},"message":{"type":"string","description":"Short headline for the contract revert."},"fix":{"type":"string","description":"Suggested next action when the catalog entry provides one."}},"required":["id","args","why","message"],"additionalProperties":false},{"type":"null"}],"description":"Decoded catalog revert, present only after an async-settled failure maps to a catalog entry."},"result":{"type":"object","properties":{"tokenAddress":{"type":"string","description":"Created token contract address. Present only for a completed token.create request."}},"required":["tokenAddress"],"additionalProperties":false,"description":"Kind-scoped terminal result after the request completes."},"activeRequirement":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","description":"Identifier of the open funding requirement."},"role":{"type":"string","description":"Which wallet the chain refused, in operator terms. For a day-two write this is `queued-write-eoa`."},"subjectOwner":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Whose wallet must be funded: `caller`, `organisation`, or `platform`. Null for rows recorded before ownership was tracked."},"chainId":{"type":"integer","description":"Chain the refused broadcast targeted."},"address":{"type":"string","description":"Address whose balance settles the ask."},"nativeCurrency":{"type":"object","properties":{"name":{"type":"string","description":"Full name of the chain's native currency."},"symbol":{"type":"string","description":"Ticker of the chain's native currency."},"decimals":{"type":"integer","description":"Decimal places that scale a base-unit amount into a display amount."}},"required":["name","symbol","decimals"],"additionalProperties":false,"description":"The currency both amounts below are denominated in."},"shortfall":{"type":"string","description":"What the refused operation itself needs, in base units, as a decimal integer string."},"recommendedTotal":{"type":"string","description":"What to send, in base units, including any ongoing-ops allowance the gate advised."}},"required":["id","role","subjectOwner","chainId","address","nativeCurrency","shortfall","recommendedTotal"],"additionalProperties":false},{"type":"null"}],"description":"The open gas funding requirement blocking this request, when one exists."},"activeRequirementUnavailable":{"type":"boolean","description":"True when the funding requirement could not be read, so `activeRequirement` reports nothing."},"indexerRebuild":{"anyOf":[{"type":"object","properties":{"chainId":{"type":"integer","description":"Chain whose history the indexer is replaying."},"blockNumber":{"type":"integer","description":"Block the write waits for. The rebuild has to pass it before the request completes."}},"required":["chainId","blockNumber"],"additionalProperties":false},{"type":"null"}],"description":"The indexer rebuild this request is parked on, when one runs."},"indexerRebuildUnavailable":{"type":"boolean","description":"True when the deployment registry could not be read, so `indexerRebuild` reports nothing."},"steps":{"type":"array","items":{"$ref":"#/components/schemas/ExecutionChainStepOutcome_1"},"description":"The calls sent before this request when it is the final call of a chained write, in the order they ran. Each carries its own status, so a chain whose last call failed shows which earlier calls landed. Absent when the request sent a single call."},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded_2"},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded_2"}},"required":["family","transactionId","kind","status","subStatus","transactionHash","blockNumber","errorMessage","createdAt","updatedAt"],"additionalProperties":false},"ExecutionChainStepOutcome_1":{"type":"object","properties":{"transactionId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"status":{"$ref":"#/components/schemas/TransactionRequestState"},"transactionHash":{"anyOf":[{"$ref":"#/components/schemas/EthereumHashEncoded"},{"type":"null"}]},"errorMessage":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["transactionId","status","transactionHash","errorMessage"],"additionalProperties":false,"description":"One call of a chained write: its own transaction request id (readable alone), its queue state (COMPLETED landed on chain, FAILED did not), its hash once broadcast, and its failure text."},"TransactionRequestState_1":{"type":"string","enum":["RECEIVED","QUEUED","AWAITING_WORKFLOW","PREPARING","PENDING_APPROVAL","SIGNING","BROADCASTING","CONFIRMING","COMPLETED","FAILED","DEAD_LETTER","CANCELLED"],"description":"Queue state of the request. Terminal values are COMPLETED, FAILED, DEAD_LETTER, and CANCELLED."},"CustodyDepositInstructionsList":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/DepositInstruction"}}},"required":["data"],"additionalProperties":false},"DepositInstruction":{"type":"object","properties":{"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"walletId":{"$ref":"#/components/schemas/WalletId"},"address":{"$ref":"#/components/schemas/LowercaseEvmAddressEncoded"},"token":{"$ref":"#/components/schemas/DepositInstructionToken"}},"required":["chainId","walletId","address","token"],"additionalProperties":false},"DepositInstructionToken":{"type":"object","properties":{"address":{"$ref":"#/components/schemas/LowercaseEvmAddressEncoded"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"symbol":{"anyOf":[{"type":"string"},{"type":"null"}]},"decimals":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"required":["address","name","symbol","decimals"],"additionalProperties":false},"LowercaseEvmAddressEncoded":{"type":"string"},"CustodyOpsMovementsPage":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"entryId":{"type":"string","minLength":1},"organizationId":{"$ref":"#/components/schemas/OrganizationId"},"assetKey":{"type":"string","minLength":1},"participantId":{"anyOf":[{"$ref":"#/components/schemas/ParticipantId"},{"type":"null"}]},"amount":{"type":"string","pattern":"^-?\\d+$"},"debit":{"type":"object","properties":{"accountKind":{"type":"string","enum":["participant-free","participant-held","org-payout","org-fee","org-omnibus","org-withdrawal-pool","org-gas-station","external"]},"walletId":{"anyOf":[{"$ref":"#/components/schemas/WalletId"},{"type":"null"}]}},"required":["accountKind","walletId"],"additionalProperties":false},"credit":{"type":"object","properties":{"accountKind":{"type":"string","enum":["participant-free","participant-held","org-payout","org-fee","org-omnibus","org-withdrawal-pool","org-gas-station","external"]},"walletId":{"anyOf":[{"$ref":"#/components/schemas/WalletId"},{"type":"null"}]}},"required":["accountKind","walletId"],"additionalProperties":false},"cause":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["chain-delta"]},"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"txHash":{"$ref":"#/components/schemas/EthereumHashEncoded"},"logIndex":{"type":"integer","minimum":0},"accountAddress":{"$ref":"#/components/schemas/LowercaseEvmAddressEncoded"},"tokenAddress":{"$ref":"#/components/schemas/LowercaseEvmAddressEncoded"},"leg":{"type":"string","enum":["debit","credit"]}},"required":["kind","chainId","txHash","logIndex","accountAddress","tokenAddress","leg"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["withdrawal"]},"withdrawalId":{"type":"string","minLength":1},"holdId":{"type":"string","minLength":1}},"required":["kind","withdrawalId","holdId"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["fee-posting"]},"feePostingRef":{"type":"string","minLength":1}},"required":["kind","feePostingRef"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["operator-movement"]},"operatorMovementRef":{"type":"string","minLength":1},"actorUserId":{"anyOf":[{"$ref":"#/components/schemas/UserId"},{"type":"null"}]}},"required":["kind","operatorMovementRef","actorUserId"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["deposit-lifecycle"]},"phase":{"type":"string","enum":["held","cleared","compensated"]},"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"txHash":{"$ref":"#/components/schemas/EthereumHashEncoded"},"logIndex":{"type":"integer","minimum":0},"reason":{"type":"string","enum":["screening-pending","screening-cleared","below-finality","finality-passed","screening-frozen","reorged"]}},"required":["kind","phase","chainId","txHash","logIndex","reason"],"additionalProperties":false}]},"recordedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["entryId","organizationId","assetKey","participantId","amount","debit","credit","cause","recordedAt"],"additionalProperties":false}},"meta":{"$ref":"#/components/schemas/CustodyPositionsMeta"},"links":{"$ref":"#/components/schemas/CustodyPositionsLinks"}},"required":["data","meta","links"],"additionalProperties":false},"CustodyPositionsLinks":{"type":"object","properties":{"self":{"type":"string"},"first":{"type":"string"},"prev":{"anyOf":[{"type":"string"},{"type":"null"}]},"next":{"anyOf":[{"type":"string"},{"type":"null"}]},"last":{"type":"string"}},"required":["self","first","prev","next","last"],"additionalProperties":false},"CustodyPositionsMeta":{"type":"object","properties":{"total":{"type":"integer"},"facets":{"type":"object","additionalProperties":{"type":"array","items":{"$ref":"#/components/schemas/CustodyPositionsFacet"}}}},"required":["total","facets"],"additionalProperties":false},"CustodyPositionsFacet":{"type":"object","properties":{"value":{"type":"string"},"count":{"type":"integer","minimum":0}},"required":["value","count"],"additionalProperties":false},"CustodyOpsReconciliationReport":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"walletId":{"$ref":"#/components/schemas/WalletId"},"assetKey":{"type":"string","minLength":1},"journalTotal":{"type":"string","pattern":"^-?\\d+$"},"chainBalance":{"anyOf":[{"type":"string","pattern":"^-?\\d+$"},{"type":"null"}]},"difference":{"anyOf":[{"type":"string","pattern":"^-?\\d+$"},{"type":"null"}]},"entries":{"type":"array","items":{"type":"object","properties":{"entryId":{"type":"string","minLength":1},"organizationId":{"$ref":"#/components/schemas/OrganizationId"},"assetKey":{"type":"string","minLength":1},"participantId":{"anyOf":[{"$ref":"#/components/schemas/ParticipantId"},{"type":"null"}]},"amount":{"type":"string","pattern":"^-?\\d+$"},"debit":{"type":"object","properties":{"accountKind":{"type":"string","enum":["participant-free","participant-held","org-payout","org-fee","org-omnibus","org-withdrawal-pool","org-gas-station","external"]},"walletId":{"anyOf":[{"$ref":"#/components/schemas/WalletId"},{"type":"null"}]}},"required":["accountKind","walletId"],"additionalProperties":false},"credit":{"type":"object","properties":{"accountKind":{"type":"string","enum":["participant-free","participant-held","org-payout","org-fee","org-omnibus","org-withdrawal-pool","org-gas-station","external"]},"walletId":{"anyOf":[{"$ref":"#/components/schemas/WalletId"},{"type":"null"}]}},"required":["accountKind","walletId"],"additionalProperties":false},"cause":{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["chain-delta"]},"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"txHash":{"$ref":"#/components/schemas/EthereumHashEncoded"},"logIndex":{"type":"integer","minimum":0},"accountAddress":{"$ref":"#/components/schemas/LowercaseEvmAddressEncoded"},"tokenAddress":{"$ref":"#/components/schemas/LowercaseEvmAddressEncoded"},"leg":{"type":"string","enum":["debit","credit"]}},"required":["kind","chainId","txHash","logIndex","accountAddress","tokenAddress","leg"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["withdrawal"]},"withdrawalId":{"type":"string","minLength":1},"holdId":{"type":"string","minLength":1}},"required":["kind","withdrawalId","holdId"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["fee-posting"]},"feePostingRef":{"type":"string","minLength":1}},"required":["kind","feePostingRef"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["operator-movement"]},"operatorMovementRef":{"type":"string","minLength":1},"actorUserId":{"anyOf":[{"$ref":"#/components/schemas/UserId"},{"type":"null"}]}},"required":["kind","operatorMovementRef","actorUserId"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["deposit-lifecycle"]},"phase":{"type":"string","enum":["held","cleared","compensated"]},"chainId":{"$ref":"#/components/schemas/ChainIdEncoded_1"},"txHash":{"$ref":"#/components/schemas/EthereumHashEncoded"},"logIndex":{"type":"integer","minimum":0},"reason":{"type":"string","enum":["screening-pending","screening-cleared","below-finality","finality-passed","screening-frozen","reorged"]}},"required":["kind","phase","chainId","txHash","logIndex","reason"],"additionalProperties":false}]},"recordedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["entryId","organizationId","assetKey","participantId","amount","debit","credit","cause","recordedAt"],"additionalProperties":false}}},"required":["walletId","assetKey","journalTotal","chainBalance","difference","entries"],"additionalProperties":false}},"meta":{"$ref":"#/components/schemas/CustodyPositionsMeta"},"links":{"$ref":"#/components/schemas/CustodyPositionsLinks"}},"required":["data","meta","links"],"additionalProperties":false},"CustodialPositionAttribution":{"type":"object","properties":{"assetKey":{"type":"string","minLength":1},"free":{"type":"string","pattern":"^-?\\d+$"},"held":{"type":"string","pattern":"^-?\\d+$"},"organizationId":{"$ref":"#/components/schemas/OrganizationId"},"participantId":{"$ref":"#/components/schemas/ParticipantId"},"location":{"type":"string","enum":["in-workspace","in-transit"]},"walletId":{"$ref":"#/components/schemas/WalletId"}},"required":["assetKey","free","held","organizationId","participantId","location","walletId"],"additionalProperties":false},"CustodialPositionBalance":{"type":"object","properties":{"assetKey":{"type":"string","minLength":1},"free":{"type":"string","pattern":"^-?\\d+$"},"held":{"type":"string","pattern":"^-?\\d+$"}},"required":["assetKey","free","held"],"additionalProperties":false},"WalletIneligibilityReason":{"type":"string","enum":["custody-mismatch","account-abstraction-disabled","signer-threshold-unmet","wallet-not-active"],"description":"The capability this organization lacks for the wallet on this chain: `custody-mismatch` when it cannot sign with the custody provider the key lives on, `account-abstraction-disabled` when the wallet is a smart wallet and account abstraction does not route on this chain here, `signer-threshold-unmet` when the signers it can sign with carry less weight than the smart wallet's threshold, `wallet-not-active` when the key is still being provisioned or was revoked or archived."},"ParticipantCustodyAccountListResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/CustodyAccount"}},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"CustodyAccount":{"type":"object","properties":{"custodyAccountId":{"$ref":"#/components/schemas/CustodyAccountId"},"organizationContextId":{"$ref":"#/components/schemas/CustodyAccountOrganizationContextId"},"participantId":{"$ref":"#/components/schemas/ParticipantId"},"organizationId":{"$ref":"#/components/schemas/OrganizationId"},"ledger":{"type":"string","enum":["evm","canton"]},"network":{"type":"string","minLength":1},"locator":{"type":"string","minLength":1},"accountLifecycle":{"type":"string","enum":["pending","active","unavailable","revoked","archived"]},"contextLifecycle":{"type":"string","enum":["active","archived"]},"eligibility":{"type":"string","enum":["eligible","ineligible"]},"eligibilityReason":{"anyOf":[{"$ref":"#/components/schemas/WalletIneligibilityReason"},{"type":"null"}]},"isPrimary":{"type":"boolean"},"providerConfigurationId":{"$ref":"#/components/schemas/CustodyProviderConfigurationId"},"provider":{"type":"string","enum":["local","dfns","fireblocks","luna","ripple","anvil","privy","injected-browser","dynamic"]},"clientConfiguration":{"anyOf":[{"anyOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["privy"]},"tenant":{"type":"string","enum":["platform","organization"]},"appId":{"type":"string","minLength":1},"clientId":{"type":"string","minLength":1}},"required":["kind","tenant","appId"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["injected-browser"]}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","enum":["dynamic"]},"tenant":{"type":"string","enum":["platform","organization"]},"environmentId":{"type":"string","minLength":1}},"required":["kind","tenant","environmentId"],"additionalProperties":false}]},{"type":"null"}]},"capabilities":{"type":"object","properties":{"accountCreation":{"type":"string","enum":["create","link"]},"accountProof":{"type":"string","enum":["provider-attestation","interactive-address"]},"managedSigning":{"type":"boolean"},"externalSigning":{"type":"boolean"},"accountAbstraction":{"type":"boolean"},"ledgerNetworks":{"type":"array","items":{"type":"object","properties":{"ledger":{"type":"string","enum":["evm","canton"]},"networks":{"type":"array","items":{"type":"string","minLength":1}}},"required":["ledger","networks"],"additionalProperties":false}}},"required":["accountCreation","accountProof","managedSigning","externalSigning","accountAbstraction","ledgerNetworks"],"additionalProperties":false},"executionHealth":{"type":"string","enum":["healthy","unhealthy","quarantined"]},"signingAddress":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"ownerWalletId":{"anyOf":[{"$ref":"#/components/schemas/WalletId"},{"type":"null"}]},"smartWalletId":{"anyOf":[{"$ref":"#/components/schemas/WalletId"},{"type":"null"}]},"smartWalletAddress":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"cantonPartyId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["custodyAccountId","organizationContextId","participantId","organizationId","ledger","network","locator","accountLifecycle","contextLifecycle","eligibility","eligibilityReason","isPrimary","providerConfigurationId","provider","clientConfiguration","capabilities","executionHealth","signingAddress","ownerWalletId","smartWalletId","smartWalletAddress","cantonPartyId","createdAt","updatedAt"],"additionalProperties":false},"ParticipantWalletRemovalResponse":{"type":"object","properties":{"data":{"type":"object","properties":{"walletId":{"$ref":"#/components/schemas/WalletId"},"unregistered":{"type":"array","items":{"type":"object","properties":{"organizationId":{"$ref":"#/components/schemas/OrganizationId"},"chainId":{"type":"integer"},"route":{"type":"string","enum":["wallet","organization"]}},"required":["organizationId","chainId","route"],"additionalProperties":false}}},"required":["walletId","unregistered"],"additionalProperties":false},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"ParticipantWalletRemovalInput":{"type":"object","properties":{"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"additionalProperties":false},"ParticipantWalletListResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ParticipantWallet"}},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"ParticipantWallet":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/WalletId"},"participantId":{"anyOf":[{"$ref":"#/components/schemas/ParticipantId"},{"type":"null"}]},"walletType":{"type":"string","enum":["eoa","smart","canton"]},"walletAddress":{"anyOf":[{"$ref":"#/components/schemas/EvmAddress"},{"type":"null"}]},"cantonPartyId":{"anyOf":[{"type":"string"},{"type":"null"}]},"cantonNetworkId":{"anyOf":[{"type":"string"},{"type":"null"}]},"chainId":{"anyOf":[{"type":"integer"},{"type":"null"}]},"label":{"anyOf":[{"type":"string"},{"type":"null"}]},"boundChains":{"type":"array","items":{"type":"integer"}},"custody":{"type":"array","items":{"type":"object","properties":{"provider":{"type":"string"},"kind":{"type":"string","enum":["managed","external"]},"ledger":{"type":"string","enum":["evm","canton"]},"network":{"type":"string"}},"required":["provider","kind","ledger","network"],"additionalProperties":false}},"signsFor":{"type":"array","items":{"type":"object","properties":{"walletId":{"$ref":"#/components/schemas/WalletId"},"walletAddress":{"$ref":"#/components/schemas/EvmAddress"},"label":{"anyOf":[{"type":"string"},{"type":"null"}]},"chainId":{"type":"integer"}},"required":["walletId","walletAddress","label","chainId"],"additionalProperties":false}},"organizations":{"type":"array","items":{"type":"object","properties":{"organizationId":{"$ref":"#/components/schemas/OrganizationId"},"organizationName":{"type":"string"},"chainId":{"anyOf":[{"type":"integer"},{"type":"null"}]},"eligible":{"type":"boolean"},"reason":{"anyOf":[{"$ref":"#/components/schemas/WalletIneligibilityReason"},{"type":"null"}]}},"required":["organizationId","organizationName","chainId","eligible","reason"],"additionalProperties":false}},"holdsBalance":{"type":"boolean"}},"required":["id","participantId","walletType","walletAddress","cantonPartyId","cantonNetworkId","chainId","label","boundChains","custody","signsFor","organizations","holdsBalance"],"additionalProperties":false},"CustodyProviderProvenance":{"anyOf":[{"$ref":"#/components/schemas/ManagedCustodyProviderProvenance"},{"$ref":"#/components/schemas/PrivyCustodyProviderProvenance"},{"$ref":"#/components/schemas/InjectedBrowserCustodyProviderProvenance"},{"$ref":"#/components/schemas/DynamicCustodyProviderProvenance"}],"discriminator":{"propertyName":"_tag","mapping":{"ManagedProviderProvenance":"#/components/schemas/ManagedCustodyProviderProvenance","PrivyProviderProvenance":"#/components/schemas/PrivyCustodyProviderProvenance","InjectedBrowserProviderProvenance":"#/components/schemas/InjectedBrowserCustodyProviderProvenance","DynamicProviderProvenance":"#/components/schemas/DynamicCustodyProviderProvenance"}}},"DynamicCustodyProviderProvenance":{"type":"object","properties":{"_tag":{"type":"string","enum":["DynamicProviderProvenance"]},"kind":{"type":"string","enum":["external"]},"provider":{"type":"string","enum":["dynamic"]},"connector":{"type":"string","enum":["dynamic-v1"]},"tenant":{"type":"string","enum":["platform","organization"]},"environmentId":{"type":"string","minLength":1}},"required":["_tag","kind","provider","connector","tenant","environmentId"],"additionalProperties":false},"InjectedBrowserCustodyProviderProvenance":{"type":"object","properties":{"_tag":{"type":"string","enum":["InjectedBrowserProviderProvenance"]},"kind":{"type":"string","enum":["external"]},"provider":{"type":"string","enum":["injected-browser"]},"connector":{"type":"string","enum":["eip6963-eip1193"]}},"required":["_tag","kind","provider","connector"],"additionalProperties":false},"PrivyCustodyProviderProvenance":{"type":"object","properties":{"_tag":{"type":"string","enum":["PrivyProviderProvenance"]},"kind":{"type":"string","enum":["external"]},"provider":{"type":"string","enum":["privy"]},"connector":{"type":"string","enum":["privy-v3"]},"tenant":{"type":"string","enum":["platform","organization"]},"appId":{"type":"string","minLength":1},"clientId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]}},"required":["_tag","kind","provider","connector","tenant","appId"],"additionalProperties":false},"ManagedCustodyProviderProvenance":{"type":"object","properties":{"_tag":{"type":"string","enum":["ManagedProviderProvenance"]},"kind":{"type":"string","enum":["managed"]},"provider":{"$ref":"#/components/schemas/ManagedCustodyProviderKind"},"credentialSource":{"$ref":"#/components/schemas/CustodyProviderCredentialSource"},"credentialVersion":{"type":"integer","exclusiveMinimum":0},"metadata":{"$ref":"#/components/schemas/OrganizationCustodyMetadata"}},"required":["_tag","kind","provider","credentialSource","credentialVersion","metadata"],"additionalProperties":false},"OrganizationCustodyMetadata":{"type":"object","properties":{"workspaceId":{"type":"string"},"vaultId":{"type":"string"},"baseUrl":{"type":"string"},"authUrl":{"type":"string"},"targetDomainId":{"type":"string"},"ledgerId":{"type":"string"},"keyStrategy":{"type":"string","enum":["VaultHard","VaultSoft","Random"]},"defaultAssetId":{"type":"string"},"defaultNetwork":{"type":"string"},"accountIdentifiers":{"type":"object","additionalProperties":{"type":"string"}}},"additionalProperties":false},"CustodyProviderCredentialSource":{"anyOf":[{"type":"object","properties":{"_tag":{"type":"string","enum":["PlatformCredentialSource"]},"source":{"type":"string","enum":["platform"]},"reference":{"type":"string","minLength":1}},"required":["_tag","source","reference"],"additionalProperties":false},{"type":"object","properties":{"_tag":{"type":"string","enum":["OrganizationCredentialSource"]},"source":{"type":"string","enum":["organization"]},"reference":{"type":"string","minLength":1}},"required":["_tag","source","reference"],"additionalProperties":false}]},"ManagedCustodyProviderKind":{"type":"string","enum":["local","dfns","fireblocks","luna","ripple","anvil"]},"WalletCheckerPolicy":{"type":"object","properties":{"walletId":{"type":"string"},"checkerUserId":{"anyOf":[{"type":"string"},{"type":"null"}]},"checkerEmail":{"anyOf":[{"type":"string"},{"type":"null"}]},"eligible":{"type":"boolean"},"reason":{"anyOf":[{"$ref":"#/components/schemas/WalletCheckerIneligibleReason"},{"type":"null"}]},"providerOwnsSignOff":{"type":"boolean"}},"required":["walletId","checkerUserId","checkerEmail","eligible","reason","providerOwnsSignOff"],"additionalProperties":false},"WalletCheckerIneligibleReason":{"type":"string","enum":["browser-wallet","multisig","signer-wallet","canton"]},"CantonEd25519SignatureHex":{"type":"string","allOf":[{"minLength":128},{"maxLength":128}]},"ComplianceExpressionWritten":{"type":"object","properties":{"txHash":{"$ref":"#/components/schemas/EthereumHashEncoded"}},"additionalProperties":false},"TokenComplianceExpressionReplaceBody":{"type":"object","properties":{"expression":{"type":"array","items":{"type":"object","properties":{"nodeType":{"type":"number","enum":[0,1,2,3]},"value":{"anyOf":[{"type":"string","pattern":"^\\s*-?\\d+\\s*$"},{"type":"integer"}]}},"required":["nodeType","value"],"additionalProperties":false}},"unnarrowedContractBranch":{"type":"object","properties":{"accepted":{"type":"boolean"}},"required":["accepted"],"additionalProperties":false},"holderRemovableNot":{"type":"object","properties":{"accepted":{"type":"boolean"}},"required":["accepted"],"additionalProperties":false},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["expression"],"additionalProperties":false},"ComplianceExpressionReadback":{"type":"object","properties":{"expression":{"type":"array","items":{"type":"object","properties":{"nodeType":{"type":"integer"},"value":{"type":"string"}},"required":["nodeType","value"],"additionalProperties":false},"maxItems":32}},"required":["expression"],"additionalProperties":false},"ComplianceSubjectTransaction":{"type":"object","properties":{"kytDataTxnId":{"type":"string","minLength":1},"kytTxnId":{"type":"string","minLength":1},"identityAddress":{"$ref":"#/components/schemas/EvmAddress"}},"required":["kytDataTxnId","kytTxnId"],"additionalProperties":false},"ComplianceSubjectTransactionBody":{"type":"object","properties":{"providerId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"topicName":{"$ref":"#/components/schemas/ClaimTopic"},"kytDataTxnId":{"type":"string","minLength":1},"txn":{"type":"object","properties":{"applicantId":{"type":"string","minLength":1},"info":{"type":"object","properties":{"address":{"$ref":"#/components/schemas/EvmAddress"}},"allOf":[{"type":"object","additionalProperties":{}}]},"counterparty":{"type":"object","properties":{"address":{"$ref":"#/components/schemas/EvmAddress"}},"allOf":[{"type":"object","additionalProperties":{}}]}},"allOf":[{"type":"object","additionalProperties":{}}]}},"required":["providerId","topicName","kytDataTxnId","txn"],"additionalProperties":false},"ComplianceSubjectWallet":{"type":"object","properties":{"externalId":{"type":"string","minLength":1},"identityAddress":{"$ref":"#/components/schemas/EvmAddress"}},"required":["externalId"],"additionalProperties":false},"ComplianceSubjectWalletBody":{"type":"object","properties":{"providerId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"topicName":{"$ref":"#/components/schemas/ClaimTopic"},"walletAddress":{"$ref":"#/components/schemas/EvmAddress"},"identityAddress":{"$ref":"#/components/schemas/EvmAddress"},"subjectHints":{"$ref":"#/components/schemas/ComplianceSubjectHints"}},"required":["providerId","topicName"],"additionalProperties":false},"ComplianceSubjectHints":{"type":"object","properties":{"searchTerm":{"type":"string","minLength":1},"clientRef":{"type":"string","minLength":1},"entityType":{"type":"string","enum":["person","company"]},"types":{"type":"array","items":{"type":"string","minLength":1}}},"required":["searchTerm"],"additionalProperties":false},"ComplianceSubjectSdkAccessToken":{"type":"object","properties":{"token":{"type":"string","minLength":1},"expiresAt":{"type":"string"},"levelName":{"type":"string","minLength":1}},"required":["token","expiresAt","levelName"],"additionalProperties":false},"ComplianceSubjectSdkAccessTokenBody":{"type":"object","properties":{"providerId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"topicName":{"$ref":"#/components/schemas/ClaimTopic"},"identityAddress":{"$ref":"#/components/schemas/EvmAddress"}},"required":["providerId","topicName"],"additionalProperties":false},"ComplianceSubjectApplicant":{"type":"object","properties":{"externalId":{"type":"string","minLength":1},"redirectUrl":{"type":"string"}},"required":["externalId"],"additionalProperties":false},"ComplianceSubjectApplicantBody":{"type":"object","properties":{"providerId":{"type":"string","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|[fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})$","format":"uuid"},"topicName":{"$ref":"#/components/schemas/ClaimTopic"},"identityAddress":{"$ref":"#/components/schemas/EvmAddress"},"applicantHints":{"type":"object","properties":{"externalUserId":{"type":"string","minLength":1},"level":{"type":"string","minLength":1}},"allOf":[{"type":"object","additionalProperties":{}}]}},"required":["providerId","topicName","identityAddress"],"additionalProperties":false},"ComplianceProviderWebhookAction":{"type":"object","properties":{"topic":{"$ref":"#/components/schemas/ComplianceProviderTopicView"}},"required":["topic"],"additionalProperties":false},"ComplianceProviderTopicView":{"type":"object","properties":{"providerId":{"type":"string","minLength":1},"topicName":{"$ref":"#/components/schemas/ClaimTopic"},"topicId":{"type":"string","pattern":"^\\d+$"},"webhookUrlToken":{"type":"string","minLength":1},"status":{"type":"string","enum":["pending","active","paused","revoked","failed"]},"revocationSeverityThreshold":{"type":"integer","minimum":0,"maximum":100},"claimValiditySeconds":{"anyOf":[{"$ref":"#/components/schemas/ComplianceClaimValiditySeconds"},{"type":"null"}]},"notificationChannels":{"type":"array","items":{"type":"object"}},"lastActivity":{"anyOf":[{"$ref":"#/components/schemas/ComplianceProviderActivity"},{"type":"null"}]},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["providerId","topicName","topicId","webhookUrlToken","status","revocationSeverityThreshold","claimValiditySeconds","notificationChannels","lastActivity","createdAt","updatedAt"],"additionalProperties":false},"ComplianceProviderActivity":{"anyOf":[{"$ref":"#/components/schemas/ComplianceProviderVerdictActivity"},{"$ref":"#/components/schemas/ComplianceProviderAlertActivity"}],"discriminator":{"propertyName":"kind","mapping":{"verdict":"#/components/schemas/ComplianceProviderVerdictActivity","alert":"#/components/schemas/ComplianceProviderAlertActivity"}}},"ComplianceProviderAlertActivity":{"type":"object","properties":{"kind":{"type":"string","enum":["alert"]},"severity":{"anyOf":[{"type":"integer","minimum":0,"maximum":100},{"type":"null"}]},"outcome":{"type":"string","enum":["applied","replayed","rejected_out_of_order","rejected_unmapped","rejected_topic_mismatch","rejected_paused","rejected_over_cap","rejected_unsponsorable","failed","pending"]},"at":{"type":"string"}},"required":["kind","severity","outcome","at"],"additionalProperties":false},"ComplianceProviderVerdictActivity":{"type":"object","properties":{"kind":{"type":"string","enum":["verdict"]},"state":{"anyOf":[{"type":"string","enum":["approved","rejected","under_review","action_required"]},{"type":"null"}]},"outcome":{"type":"string","enum":["applied","replayed","rejected_out_of_order","rejected_unmapped","rejected_topic_mismatch","rejected_paused","rejected_over_cap","rejected_unsponsorable","failed","pending"]},"at":{"type":"string"}},"required":["kind","state","outcome","at"],"additionalProperties":false},"ComplianceClaimValiditySeconds":{"type":"integer","minimum":1,"maximum":2147483647,"description":"How long a claim issued from an approved verdict stays valid, in seconds from the verdict. Leave it out to issue claims that never lapse; a topic read then reports null.","examples":[31536000]},"ComplianceProviderRotateSecretBody":{"type":"object","properties":{"webhookSigningSecret":{"type":"string","minLength":1},"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"},"graceWindowMinutes":{"type":"integer","minimum":1,"maximum":1440}},"required":["webhookSigningSecret"],"additionalProperties":false},"ComplianceProviderWebhookTransitionBody":{"anyOf":[{"type":"object","properties":{"to":{"type":"string","enum":["paused"]}},"required":["to"],"additionalProperties":false},{"type":"object","properties":{"to":{"type":"string","enum":["active"]},"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"}},"required":["to"],"additionalProperties":false},{"type":"object","properties":{"to":{"type":"string","enum":["revoked"]},"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"}},"required":["to"],"additionalProperties":false}]},"ComplianceProviderWebhookAddBody":{"type":"object","properties":{"topicName":{"$ref":"#/components/schemas/ClaimTopic"},"topicId":{"type":"string","pattern":"^\\d+$"},"revocationSeverityThreshold":{"type":"integer","minimum":0,"maximum":100},"claimValiditySeconds":{"$ref":"#/components/schemas/ComplianceClaimValiditySeconds"},"notificationChannels":{"type":"array","items":{"type":"object"}},"webhookSigningSecret":{"type":"string","minLength":1},"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"}},"required":["topicName","topicId","webhookSigningSecret"],"additionalProperties":false},"ComplianceMonitoringEventView":{"type":"object","properties":{"id":{"type":"string","minLength":1},"providerEventId":{"type":"string","minLength":1},"subjectAddress":{"anyOf":[{"$ref":"#/components/schemas/LowercaseEvmAddressEncoded"},{"type":"null"}]},"topicName":{"anyOf":[{"type":"string"},{"type":"null"}]},"severity":{"anyOf":[{"type":"integer","minimum":0,"maximum":100},{"type":"null"}]},"outcome":{"type":"string","enum":["applied","replayed","rejected_out_of_order","rejected_unmapped","rejected_topic_mismatch","rejected_paused","rejected_over_cap","rejected_unsponsorable","failed","pending"]},"rawPayload":{"type":"object"},"processedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"type":"string"}},"required":["id","providerEventId","subjectAddress","topicName","severity","outcome","rawPayload","processedAt","createdAt"],"additionalProperties":false},"ComplianceMonitoringFilters":{"type":"object","properties":{"createdAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"outcome":{"anyOf":[{"type":"string","enum":["applied","replayed","rejected_out_of_order","rejected_unmapped","rejected_topic_mismatch","rejected_paused","rejected_over_cap","rejected_unsponsorable","failed","pending"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"providerEventId":{"anyOf":[{"type":"string","minLength":1},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"q":{"type":"string","minLength":1,"maxLength":1000},"severity":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"object","properties":{"eq":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"ne":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"gte":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"lt":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"lte":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"between":{"type":"string","maxLength":64}},"additionalProperties":false}]},"subjectAddress":{"anyOf":[{"type":"string","minLength":1},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"topicName":{"anyOf":[{"type":"string","minLength":1},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]}},"additionalProperties":false},"ComplianceProviderView":{"type":"object","properties":{"id":{"type":"string","minLength":1},"participantId":{"type":"string","minLength":1},"providerKind":{"type":"string","enum":["sumsub","sumsub-aml","sumsub-kyt","complyadvantage","elliptic","jumio","middesk","onfido","persona","trulioo","veriff"]},"status":{"type":"string","enum":["pending","active","paused","revoked","failed"]},"statusExplanation":{"type":"string","minLength":1},"lastHealthCheck":{"anyOf":[{"$ref":"#/components/schemas/ComplianceProviderHealthView"},{"type":"null"}]},"issuerEoaAddress":{"$ref":"#/components/schemas/EvmAddress"},"onchainIdentityAddress":{"$ref":"#/components/schemas/EvmAddress"},"providerApiKeyRef":{"type":"string","minLength":1},"webhookUrlToken":{"type":"string","minLength":1},"webhookAuthMode":{"type":"string","enum":["hmac","basic_auth_ip_allowlist"]},"webhookIpAllowlist":{"anyOf":[{"type":"array","items":{"type":"string","minLength":1}},{"type":"null"}]},"pendingSecretExpiresAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastActivity":{"anyOf":[{"$ref":"#/components/schemas/ComplianceProviderActivity"},{"type":"null"}]},"topics":{"type":"array","items":{"$ref":"#/components/schemas/ComplianceProviderTopicView"}},"topicsCount":{"type":"integer","minimum":0},"activeTopicsCount":{"type":"integer","minimum":0},"revokedTopicsCount":{"type":"integer","minimum":0},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","participantId","providerKind","status","statusExplanation","lastHealthCheck","issuerEoaAddress","onchainIdentityAddress","providerApiKeyRef","webhookUrlToken","webhookAuthMode","webhookIpAllowlist","pendingSecretExpiresAt","lastActivity","topics","topicsCount","activeTopicsCount","revokedTopicsCount","createdAt","updatedAt"],"additionalProperties":false},"ComplianceProviderHealthView":{"type":"object","properties":{"status":{"type":"string","enum":["healthy","degraded","unknown"]},"checkedAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"message":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["status","checkedAt","message"],"additionalProperties":false},"ComplianceProviderTransitionBody":{"anyOf":[{"type":"object","properties":{"to":{"type":"string","enum":["paused"]}},"required":["to"],"additionalProperties":false},{"type":"object","properties":{"to":{"type":"string","enum":["active"]}},"required":["to"],"additionalProperties":false},{"type":"object","properties":{"to":{"type":"string","enum":["revoked"]},"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"}},"required":["to"],"additionalProperties":false}]},"ComplianceProviderReplaceCredentialsBody":{"type":"object","properties":{"credentials":{"$ref":"#/components/schemas/ComplianceProviderCredentials"},"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"}},"required":["credentials"],"additionalProperties":false},"ComplianceProviderCredentials":{"anyOf":[{"type":"object","properties":{"providerKind":{"type":"string","enum":["sumsub"]},"credentials":{"type":"object","properties":{"appToken":{"type":"string","minLength":1},"secretKey":{"type":"string","minLength":1},"levelName":{"type":"string","minLength":1}},"required":["appToken","secretKey","levelName"],"additionalProperties":false}},"required":["providerKind","credentials"],"additionalProperties":false},{"type":"object","properties":{"providerKind":{"type":"string","enum":["sumsub-aml"]},"credentials":{"type":"object","properties":{"apiToken":{"type":"string","minLength":1},"secretKey":{"type":"string","minLength":1},"webhookSigningSecret":{"type":"string","minLength":1},"levelName":{"type":"string","minLength":1}},"required":["apiToken","secretKey","webhookSigningSecret","levelName"],"additionalProperties":false}},"required":["providerKind","credentials"],"additionalProperties":false},{"type":"object","properties":{"providerKind":{"type":"string","enum":["sumsub-kyt"]},"credentials":{"type":"object","properties":{"apiToken":{"type":"string","minLength":1},"secretKey":{"type":"string","minLength":1},"webhookSigningSecret":{"type":"string","minLength":1},"levelName":{"type":"string","minLength":1}},"required":["apiToken","secretKey","webhookSigningSecret","levelName"],"additionalProperties":false}},"required":["providerKind","credentials"],"additionalProperties":false},{"type":"object","properties":{"providerKind":{"type":"string","enum":["elliptic"]},"credentials":{"type":"object","properties":{"apiKey":{"type":"string","minLength":1},"apiSecret":{"type":"string","minLength":1}},"required":["apiKey","apiSecret"],"additionalProperties":false}},"required":["providerKind","credentials"],"additionalProperties":false},{"type":"object","properties":{"providerKind":{"type":"string","enum":["complyadvantage"]},"credentials":{"type":"object","properties":{"apiToken":{"type":"string","minLength":1},"webhookSigningSecret":{"type":"string","minLength":1},"meshClientId":{"type":"string","minLength":1},"meshClientSecret":{"type":"string","minLength":1}},"required":["apiToken","webhookSigningSecret"],"additionalProperties":false}},"required":["providerKind","credentials"],"additionalProperties":false},{"type":"object","properties":{"providerKind":{"type":"string","enum":["jumio"]},"credentials":{"type":"object","properties":{"apiToken":{"type":"string","minLength":1},"apiSecret":{"type":"string","minLength":1},"region":{"type":"string","enum":["amer-1","eu-1","sg-1"]},"basicAuthCredentials":{"type":"string","minLength":1}},"required":["apiToken","apiSecret","region","basicAuthCredentials"],"additionalProperties":false}},"required":["providerKind","credentials"],"additionalProperties":false},{"type":"object","properties":{"providerKind":{"type":"string","enum":["middesk"]},"credentials":{"type":"object","properties":{"apiKey":{"type":"string","minLength":1},"webhookSigningSecret":{"type":"string","minLength":1}},"required":["apiKey","webhookSigningSecret"],"additionalProperties":false}},"required":["providerKind","credentials"],"additionalProperties":false},{"type":"object","properties":{"providerKind":{"type":"string","enum":["onfido"]},"credentials":{"type":"object","properties":{"apiToken":{"type":"string","minLength":1},"webhookSigningSecret":{"type":"string","minLength":1},"region":{"type":"string","enum":["us","eu","ca"]}},"required":["apiToken","webhookSigningSecret"],"additionalProperties":false}},"required":["providerKind","credentials"],"additionalProperties":false},{"type":"object","properties":{"providerKind":{"type":"string","enum":["persona"]},"credentials":{"type":"object","properties":{"apiToken":{"type":"string","minLength":1},"webhookSigningSecret":{"type":"string","minLength":1},"inquiryTemplateId":{"type":"string","minLength":1}},"required":["apiToken","webhookSigningSecret"],"additionalProperties":false}},"required":["providerKind","credentials"],"additionalProperties":false},{"type":"object","properties":{"providerKind":{"type":"string","enum":["trulioo"]},"credentials":{"type":"object","properties":{"apiKey":{"type":"string","minLength":1},"apiSecret":{"type":"string","minLength":1},"webhookSigningSecret":{"type":"string","minLength":1}},"required":["apiKey","apiSecret","webhookSigningSecret"],"additionalProperties":false}},"required":["providerKind","credentials"],"additionalProperties":false},{"type":"object","properties":{"providerKind":{"type":"string","enum":["veriff"]},"credentials":{"type":"object","properties":{"apiKey":{"type":"string","minLength":1},"apiSecret":{"type":"string","minLength":1},"webhookSigningSecret":{"type":"string","minLength":1}},"required":["apiKey","apiSecret","webhookSigningSecret"],"additionalProperties":false}},"required":["providerKind","credentials"],"additionalProperties":false}]},"ComplianceProviderValidation":{"type":"object","properties":{"valid":{"type":"boolean"},"providerMessage":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["valid","providerMessage"],"additionalProperties":false},"ComplianceProviderCreateBody":{"anyOf":[{"type":"object","properties":{"providerKind":{"type":"string","enum":["sumsub"]},"credentials":{"type":"object","properties":{"appToken":{"type":"string","minLength":1},"secretKey":{"type":"string","minLength":1},"levelName":{"type":"string","minLength":1}},"required":["appToken","secretKey","levelName"],"additionalProperties":false},"webhookSigningSecret":{"type":"string","minLength":1},"webhookAuthMode":{"type":"string","enum":["hmac","basic_auth_ip_allowlist"]},"webhookIpAllowlist":{"type":"array","items":{"type":"string"}},"firstTopic":{"$ref":"#/components/schemas/ComplianceProviderTopicRequest"},"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"}},"required":["providerKind","credentials","webhookSigningSecret","firstTopic"],"additionalProperties":false},{"type":"object","properties":{"providerKind":{"type":"string","enum":["sumsub-aml"]},"credentials":{"type":"object","properties":{"apiToken":{"type":"string","minLength":1},"secretKey":{"type":"string","minLength":1},"webhookSigningSecret":{"type":"string","minLength":1},"levelName":{"type":"string","minLength":1}},"required":["apiToken","secretKey","webhookSigningSecret","levelName"],"additionalProperties":false},"webhookSigningSecret":{"type":"string","minLength":1},"webhookAuthMode":{"type":"string","enum":["hmac","basic_auth_ip_allowlist"]},"webhookIpAllowlist":{"type":"array","items":{"type":"string"}},"firstTopic":{"$ref":"#/components/schemas/ComplianceProviderTopicRequest"},"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"}},"required":["providerKind","credentials","webhookSigningSecret","firstTopic"],"additionalProperties":false},{"type":"object","properties":{"providerKind":{"type":"string","enum":["sumsub-kyt"]},"credentials":{"type":"object","properties":{"apiToken":{"type":"string","minLength":1},"secretKey":{"type":"string","minLength":1},"webhookSigningSecret":{"type":"string","minLength":1},"levelName":{"type":"string","minLength":1}},"required":["apiToken","secretKey","webhookSigningSecret","levelName"],"additionalProperties":false},"webhookSigningSecret":{"type":"string","minLength":1},"webhookAuthMode":{"type":"string","enum":["hmac","basic_auth_ip_allowlist"]},"webhookIpAllowlist":{"type":"array","items":{"type":"string"}},"firstTopic":{"$ref":"#/components/schemas/ComplianceProviderTopicRequest"},"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"}},"required":["providerKind","credentials","webhookSigningSecret","firstTopic"],"additionalProperties":false},{"type":"object","properties":{"providerKind":{"type":"string","enum":["elliptic"]},"credentials":{"type":"object","properties":{"apiKey":{"type":"string","minLength":1},"apiSecret":{"type":"string","minLength":1}},"required":["apiKey","apiSecret"],"additionalProperties":false},"webhookSigningSecret":{"type":"string","minLength":1},"webhookAuthMode":{"type":"string","enum":["hmac","basic_auth_ip_allowlist"]},"webhookIpAllowlist":{"type":"array","items":{"type":"string"}},"firstTopic":{"$ref":"#/components/schemas/ComplianceProviderTopicRequest"},"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"}},"required":["providerKind","credentials","webhookSigningSecret","firstTopic"],"additionalProperties":false},{"type":"object","properties":{"providerKind":{"type":"string","enum":["complyadvantage"]},"credentials":{"type":"object","properties":{"apiToken":{"type":"string","minLength":1},"webhookSigningSecret":{"type":"string","minLength":1},"meshClientId":{"type":"string","minLength":1},"meshClientSecret":{"type":"string","minLength":1}},"required":["apiToken","webhookSigningSecret"],"additionalProperties":false},"webhookSigningSecret":{"type":"string","minLength":1},"webhookAuthMode":{"type":"string","enum":["hmac","basic_auth_ip_allowlist"]},"webhookIpAllowlist":{"type":"array","items":{"type":"string"}},"firstTopic":{"$ref":"#/components/schemas/ComplianceProviderTopicRequest"},"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"}},"required":["providerKind","credentials","webhookSigningSecret","firstTopic"],"additionalProperties":false},{"type":"object","properties":{"providerKind":{"type":"string","enum":["jumio"]},"credentials":{"type":"object","properties":{"apiToken":{"type":"string","minLength":1},"apiSecret":{"type":"string","minLength":1},"region":{"type":"string","enum":["amer-1","eu-1","sg-1"]},"basicAuthCredentials":{"type":"string","minLength":1}},"required":["apiToken","apiSecret","region","basicAuthCredentials"],"additionalProperties":false},"webhookSigningSecret":{"type":"string","minLength":1},"webhookAuthMode":{"type":"string","enum":["hmac","basic_auth_ip_allowlist"]},"webhookIpAllowlist":{"type":"array","items":{"type":"string"}},"firstTopic":{"$ref":"#/components/schemas/ComplianceProviderTopicRequest"},"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"}},"required":["providerKind","credentials","webhookSigningSecret","firstTopic"],"additionalProperties":false},{"type":"object","properties":{"providerKind":{"type":"string","enum":["middesk"]},"credentials":{"type":"object","properties":{"apiKey":{"type":"string","minLength":1},"webhookSigningSecret":{"type":"string","minLength":1}},"required":["apiKey","webhookSigningSecret"],"additionalProperties":false},"webhookSigningSecret":{"type":"string","minLength":1},"webhookAuthMode":{"type":"string","enum":["hmac","basic_auth_ip_allowlist"]},"webhookIpAllowlist":{"type":"array","items":{"type":"string"}},"firstTopic":{"$ref":"#/components/schemas/ComplianceProviderTopicRequest"},"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"}},"required":["providerKind","credentials","webhookSigningSecret","firstTopic"],"additionalProperties":false},{"type":"object","properties":{"providerKind":{"type":"string","enum":["onfido"]},"credentials":{"type":"object","properties":{"apiToken":{"type":"string","minLength":1},"webhookSigningSecret":{"type":"string","minLength":1},"region":{"type":"string","enum":["us","eu","ca"]}},"required":["apiToken","webhookSigningSecret"],"additionalProperties":false},"webhookSigningSecret":{"type":"string","minLength":1},"webhookAuthMode":{"type":"string","enum":["hmac","basic_auth_ip_allowlist"]},"webhookIpAllowlist":{"type":"array","items":{"type":"string"}},"firstTopic":{"$ref":"#/components/schemas/ComplianceProviderTopicRequest"},"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"}},"required":["providerKind","credentials","webhookSigningSecret","firstTopic"],"additionalProperties":false},{"type":"object","properties":{"providerKind":{"type":"string","enum":["persona"]},"credentials":{"type":"object","properties":{"apiToken":{"type":"string","minLength":1},"webhookSigningSecret":{"type":"string","minLength":1},"inquiryTemplateId":{"type":"string","minLength":1}},"required":["apiToken","webhookSigningSecret"],"additionalProperties":false},"webhookSigningSecret":{"type":"string","minLength":1},"webhookAuthMode":{"type":"string","enum":["hmac","basic_auth_ip_allowlist"]},"webhookIpAllowlist":{"type":"array","items":{"type":"string"}},"firstTopic":{"$ref":"#/components/schemas/ComplianceProviderTopicRequest"},"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"}},"required":["providerKind","credentials","webhookSigningSecret","firstTopic"],"additionalProperties":false},{"type":"object","properties":{"providerKind":{"type":"string","enum":["trulioo"]},"credentials":{"type":"object","properties":{"apiKey":{"type":"string","minLength":1},"apiSecret":{"type":"string","minLength":1},"webhookSigningSecret":{"type":"string","minLength":1}},"required":["apiKey","apiSecret","webhookSigningSecret"],"additionalProperties":false},"webhookSigningSecret":{"type":"string","minLength":1},"webhookAuthMode":{"type":"string","enum":["hmac","basic_auth_ip_allowlist"]},"webhookIpAllowlist":{"type":"array","items":{"type":"string"}},"firstTopic":{"$ref":"#/components/schemas/ComplianceProviderTopicRequest"},"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"}},"required":["providerKind","credentials","webhookSigningSecret","firstTopic"],"additionalProperties":false},{"type":"object","properties":{"providerKind":{"type":"string","enum":["veriff"]},"credentials":{"type":"object","properties":{"apiKey":{"type":"string","minLength":1},"apiSecret":{"type":"string","minLength":1},"webhookSigningSecret":{"type":"string","minLength":1}},"required":["apiKey","apiSecret","webhookSigningSecret"],"additionalProperties":false},"webhookSigningSecret":{"type":"string","minLength":1},"webhookAuthMode":{"type":"string","enum":["hmac","basic_auth_ip_allowlist"]},"webhookIpAllowlist":{"type":"array","items":{"type":"string"}},"firstTopic":{"$ref":"#/components/schemas/ComplianceProviderTopicRequest"},"walletVerification":{"$ref":"#/components/schemas/WalletVerification_1"}},"required":["providerKind","credentials","webhookSigningSecret","firstTopic"],"additionalProperties":false}]},"ComplianceProviderTopicRequest":{"type":"object","properties":{"topicName":{"$ref":"#/components/schemas/ClaimTopic"},"topicId":{"type":"string","pattern":"^\\d+$"},"revocationSeverityThreshold":{"type":"integer","minimum":0,"maximum":100},"claimValiditySeconds":{"$ref":"#/components/schemas/ComplianceClaimValiditySeconds"},"notificationChannels":{"type":"array","items":{"type":"object"}}},"required":["topicName","topicId"],"additionalProperties":false},"ComplianceProviderWriteAuthority":{"type":"object","properties":{"allowed":{"type":"boolean"},"requiredRoles":{"type":"array","items":{"$ref":"#/components/schemas/AccessControlRole"}},"reason":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["allowed","requiredRoles","reason"],"additionalProperties":false},"ComplianceProviderFilters":{"type":"object","properties":{"createdAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"providerKind":{"anyOf":[{"type":"string","enum":["sumsub","sumsub-aml","sumsub-kyt","complyadvantage","elliptic","jumio","middesk","onfido","persona","trulioo","veriff"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"q":{"type":"string","minLength":1,"maxLength":1000},"status":{"anyOf":[{"type":"string","enum":["pending","active","paused","revoked","failed"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"updatedAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]}},"additionalProperties":false},"UserProfileVersion":{"type":"object","properties":{"id":{"type":"string"},"versionNumber":{"type":"number"},"status":{"type":"string","enum":["draft","submitted","under_review","approved","rejected"]},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"createdBy":{"anyOf":[{"type":"string"},{"type":"null"}]},"submittedAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"submittedBy":{"anyOf":[{"type":"string"},{"type":"null"}]},"reviewedAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"reviewedBy":{"anyOf":[{"type":"string"},{"type":"null"}]},"reviewOutcome":{"anyOf":[{"type":"string","enum":["approved","rejected","changes_requested"]},{"type":"null"}]},"isDraft":{"type":"boolean"},"isUnderReview":{"type":"boolean"},"isApproved":{"type":"boolean"},"isCurrent":{"type":"boolean"},"values":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/UserProfileValue"}}}},"required":["id","versionNumber","status","createdAt","submittedAt","reviewedAt","reviewOutcome","isDraft","isUnderReview","isApproved","isCurrent","values"],"additionalProperties":false},"UserProfileValue":{"anyOf":[{"type":"string"},{"type":"number"}]},"UserProfile":{"type":"object","properties":{"userId":{"type":"string"},"status":{"type":"string","enum":["incomplete","submitted","under_review","approved","rejected","update_required"]},"personalInfoCompleted":{"type":"boolean"},"approvedVersionId":{"anyOf":[{"type":"string"},{"type":"null"}]},"latestVersionId":{"anyOf":[{"type":"string"},{"type":"null"}]},"fixed":{"type":"array","items":{"$ref":"#/components/schemas/UserProfileFixedField"}},"sections":{"type":"array","items":{"$ref":"#/components/schemas/UserProfileSectionValues"}}},"required":["userId","status","personalInfoCompleted","approvedVersionId","latestVersionId","fixed","sections"],"additionalProperties":false},"UserProfileSectionValues":{"type":"object","properties":{"sectionId":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"fields":{"type":"array","items":{"$ref":"#/components/schemas/UserProfileFieldValue"}}},"required":["sectionId","slug","name","fields"],"additionalProperties":false},"UserProfileFieldValue":{"type":"object","properties":{"key":{"type":"string"},"field":{"type":"object","properties":{"type":{"type":"string"},"mutability":{"type":"string"},"storage":{"type":"string"},"audience":{"type":"string"},"position":{"type":"integer"},"label":{"type":"string"},"description":{"type":"string"},"required":{"type":"boolean"},"defaultValue":{"type":"string"},"configurableInDesigner":{"type":"boolean"},"minLength":{"type":"integer"},"maxLength":{"type":"integer"},"lowerBound":{"type":"string"},"upperBound":{"type":"string"},"options":{"type":"array","items":{"type":"string"}}},"required":["type","mutability","storage","label"],"additionalProperties":false},"value":{"anyOf":[{"$ref":"#/components/schemas/UserProfileValue"},{"type":"null"}]},"suggested":{"anyOf":[{"$ref":"#/components/schemas/UserProfileValue"},{"type":"null"}]},"review":{"anyOf":[{"$ref":"#/components/schemas/UserProfileFieldReview"},{"type":"null"}]}},"required":["key","field","value","suggested","review"],"additionalProperties":false},"UserProfileFieldReview":{"type":"object","properties":{"state":{"$ref":"#/components/schemas/UserProfileReviewState"},"note":{"anyOf":[{"type":"string"},{"type":"null"}]},"editedBy":{"anyOf":[{"type":"string"},{"type":"null"}]},"editedByName":{"anyOf":[{"type":"string"},{"type":"null"}]},"editedAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"reviewedBy":{"anyOf":[{"type":"string"},{"type":"null"}]},"reviewedByName":{"anyOf":[{"type":"string"},{"type":"null"}]},"reviewedAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"reviewedVersionId":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["state","note"],"additionalProperties":false},"UserProfileReviewState":{"type":"string","enum":["unreviewed","approved","changes_requested"]},"UserProfileFixedField":{"type":"object","properties":{"key":{"type":"string","enum":["firstName","lastName","country","nationalId"]},"value":{"anyOf":[{"type":"string"},{"type":"null"}]},"review":{"anyOf":[{"$ref":"#/components/schemas/UserProfileFieldReview"},{"type":"null"}]}},"required":["key","value","review"],"additionalProperties":false},"UserProfileChangesBody":{"type":"object","properties":{"versionId":{"type":"string"},"fields":{"type":"array","items":{"type":"string"},"minItems":1},"note":{"type":"string","minLength":1},"dueAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["versionId","fields","note"],"additionalProperties":false},"UserProfileApproveBody":{"type":"object","properties":{"versionId":{"type":"string"},"fields":{"anyOf":[{"type":"string","enum":["all"]},{"type":"array","items":{"type":"string"},"minItems":1}]}},"required":["versionId","fields"],"additionalProperties":false},"UserProfileUpdateBody":{"type":"object","properties":{"values":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/UserProfileValue"}}},"fixed":{"type":"object","properties":{"firstName":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastName":{"anyOf":[{"type":"string"},{"type":"null"}]},"country":{"anyOf":[{"type":"string"},{"type":"null"}]},"nationalId":{"anyOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false},"approve":{"type":"boolean"}},"required":["values"],"additionalProperties":false},"KycActionRequest":{"type":"object","properties":{"id":{"type":"string","minLength":1},"versionId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"status":{"type":"string","enum":["open","fulfilled","cancelled"]},"reason":{"type":"string","minLength":1},"requiredFields":{"type":"array","items":{"type":"string","minLength":1}},"requestedAt":{"type":"string"},"requestedBy":{"anyOf":[{"$ref":"#/components/schemas/UserId"},{"type":"null"}]},"dueAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"fulfilledAt":{"anyOf":[{"type":"string"},{"type":"null"}]},"fulfilledVersionId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]}},"required":["id","versionId","status","reason","requiredFields","requestedAt","requestedBy","dueAt","fulfilledAt","fulfilledVersionId"],"additionalProperties":false},"KycActionRequestFulfillOutput":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string","enum":["fulfilled"]},"fulfilledAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["id","status","fulfilledAt"],"additionalProperties":false},"KycProfileVersionDocumentGetDownloadUrlOutput":{"type":"object","properties":{"downloadUrl":{"type":"string"},"fileName":{"type":"string"},"mimeType":{"type":"string"},"expiresAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["downloadUrl","fileName","mimeType","expiresAt"],"additionalProperties":false},"KycProfileVersionDocumentConfirmUploadOutput":{"type":"object","properties":{"id":{"type":"string"},"versionId":{"type":"string"},"documentType":{"type":"string","enum":["passport","drivers_license","national_id","proof_of_address","other"]},"fileName":{"type":"string"},"fileSize":{"type":"number"},"mimeType":{"type":"string"},"uploadedAt":{"$ref":"#/components/schemas/TimestampEncoded"},"uploadedBy":{"type":"string"}},"required":["id","versionId","documentType","fileName","fileSize","mimeType","uploadedAt","uploadedBy"],"additionalProperties":false},"KycProfileVersionDocumentsV2ListItem":{"type":"object","properties":{"id":{"type":"string"},"documentType":{"type":"string","enum":["passport","drivers_license","national_id","proof_of_address","other"]},"fileName":{"type":"string"},"fileSize":{"type":"number"},"mimeType":{"type":"string"},"uploadedAt":{"$ref":"#/components/schemas/TimestampEncoded"},"uploadedBy":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","documentType","fileName","fileSize","mimeType","uploadedAt","uploadedBy"],"additionalProperties":false},"KycDocumentFilters":{"type":"object","properties":{"documentType":{"anyOf":[{"type":"string","enum":["passport","drivers_license","national_id","proof_of_address","other"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"fileName":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"fileSize":{"anyOf":[{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},{"type":"object","properties":{"eq":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"ne":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"gte":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"lt":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"lte":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"between":{"type":"string","maxLength":64}},"additionalProperties":false}]},"mimeType":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"uploadedAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]}},"additionalProperties":false},"KycProfileVersionRequestUpdateOutput":{"type":"object","properties":{"version":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string","enum":["under_review"]}},"required":["id","status"],"additionalProperties":false},"actionRequest":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string","enum":["open"]},"reason":{"type":"string"},"requiredFields":{"type":"array","items":{"type":"string"}},"dueAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"requestedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["id","status","reason","requiredFields","dueAt","requestedAt"],"additionalProperties":false},"newDraft":{"type":"object","properties":{"id":{"type":"string"},"versionNumber":{"type":"number"},"status":{"type":"string","enum":["draft"]}},"required":["id","versionNumber","status"],"additionalProperties":false}},"required":["version","actionRequest"],"additionalProperties":false},"KycProfileVersionRejectOutput":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string","enum":["rejected"]},"reviewOutcome":{"type":"string","enum":["rejected"]},"rejectionReason":{"type":"string"},"reviewedAt":{"$ref":"#/components/schemas/TimestampEncoded"},"reviewedBy":{"type":"string"}},"required":["id","status","reviewOutcome","rejectionReason","reviewedAt","reviewedBy"],"additionalProperties":false},"KycProfileVersionApproveOutput":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string","enum":["approved"]},"reviewOutcome":{"type":"string","enum":["approved"]},"reviewedAt":{"$ref":"#/components/schemas/TimestampEncoded"},"reviewedBy":{"type":"string"},"reviewNotes":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","status","reviewOutcome","reviewedAt","reviewedBy","reviewNotes"],"additionalProperties":false},"KycProfileVersionSubmitOutput":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string","enum":["under_review"]},"submittedAt":{"$ref":"#/components/schemas/TimestampEncoded"},"submittedBy":{"type":"string"}},"required":["id","status","submittedAt","submittedBy"],"additionalProperties":false},"KycProfileVersionUpdateOutput":{"type":"object","properties":{"id":{"type":"string"},"userId":{"type":"string"},"versionNumber":{"type":"number"},"status":{"type":"string","enum":["draft","submitted","under_review","approved","rejected"]},"firstName":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastName":{"anyOf":[{"type":"string"},{"type":"null"}]},"dob":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"country":{"anyOf":[{"type":"string"},{"type":"null"}]},"residencyStatus":{"anyOf":[{"type":"string","enum":["resident","non_resident","dual_resident","unknown"]},{"type":"null"}]},"nationalId":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"createdBy":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","userId","versionNumber","status","firstName","lastName","dob","country","residencyStatus","nationalId","createdAt","createdBy"],"additionalProperties":false},"KycProfileVersionUpdatePayload":{"type":"object","properties":{"firstName":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"null"}]},{"type":"null"}]},"lastName":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"null"}]},{"type":"null"}]},"dob":{"anyOf":[{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},{"type":"null"}]},"country":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"null"}]},{"type":"null"}]},"residencyStatus":{"anyOf":[{"anyOf":[{"type":"string","enum":["resident","non_resident","dual_resident","unknown"]},{"type":"null"}]},{"type":"null"}]},"nationalId":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"null"}]},{"type":"null"}]}},"additionalProperties":false},"KycProfileVersionReadOutput":{"type":"object","properties":{"id":{"type":"string"},"userId":{"anyOf":[{"type":"string"},{"type":"null"}]},"versionNumber":{"type":"number"},"status":{"type":"string","enum":["draft","submitted","under_review","approved","rejected"]},"firstName":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastName":{"anyOf":[{"type":"string"},{"type":"null"}]},"dob":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"country":{"anyOf":[{"type":"string"},{"type":"null"}]},"residencyStatus":{"anyOf":[{"type":"string","enum":["resident","non_resident","dual_resident","unknown"]},{"type":"null"}]},"nationalId":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"createdBy":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdByName":{"anyOf":[{"type":"string"},{"type":"null"}]},"submittedAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"submittedBy":{"anyOf":[{"type":"string"},{"type":"null"}]},"submittedByName":{"anyOf":[{"type":"string"},{"type":"null"}]},"reviewedAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"reviewedBy":{"anyOf":[{"type":"string"},{"type":"null"}]},"reviewedByName":{"anyOf":[{"type":"string"},{"type":"null"}]},"reviewOutcome":{"anyOf":[{"type":"string","enum":["approved","rejected","changes_requested"]},{"type":"null"}]},"reviewNotes":{"anyOf":[{"type":"string"},{"type":"null"}]},"rejectionReason":{"anyOf":[{"type":"string"},{"type":"null"}]},"documentsCount":{"type":"number"},"openActionRequest":{"anyOf":[{"type":"object","properties":{"reason":{"type":"string"},"requiredFields":{"type":"array","items":{"type":"string"}},"requestedBy":{"anyOf":[{"type":"string"},{"type":"null"}]},"requestedByName":{"anyOf":[{"type":"string"},{"type":"null"}]},"requestedAt":{"$ref":"#/components/schemas/TimestampEncoded"},"dueAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]}},"required":["reason","requiredFields","requestedBy","requestedByName","requestedAt","dueAt"],"additionalProperties":false},{"type":"null"}]},"canEdit":{"type":"boolean"},"canSubmit":{"type":"boolean"},"canReview":{"type":"boolean"}},"required":["id","userId","versionNumber","status","firstName","lastName","dob","country","residencyStatus","nationalId","createdAt","createdBy","createdByName","submittedAt","submittedBy","submittedByName","reviewedAt","reviewedBy","reviewedByName","reviewOutcome","reviewNotes","rejectionReason","documentsCount","openActionRequest","canEdit","canSubmit","canReview"],"additionalProperties":false},"KycProfileVersionsCreateOutput":{"type":"object","properties":{"id":{"type":"string"},"versionNumber":{"type":"number"},"status":{"type":"string","enum":["draft"]},"userId":{"type":"string"},"firstName":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastName":{"anyOf":[{"type":"string"},{"type":"null"}]},"dob":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"country":{"anyOf":[{"type":"string"},{"type":"null"}]},"residencyStatus":{"anyOf":[{"type":"string","enum":["resident","non_resident","dual_resident","unknown"]},{"type":"null"}]},"nationalId":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"createdBy":{"type":"string"}},"required":["id","versionNumber","status","userId","firstName","lastName","dob","country","residencyStatus","nationalId","createdAt","createdBy"],"additionalProperties":false},"KycProfileVersionsCreatePayload":{"type":"object","properties":{"cloneFrom":{"anyOf":[{"type":"string","enum":["approved","latest"]},{"type":"null"}]},"cloneFromVersionId":{"anyOf":[{"type":"string"},{"type":"null"}]},"overwriteDraft":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"initialData":{"anyOf":[{"type":"object","properties":{"firstName":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"null"}]},{"type":"null"}]},"lastName":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"null"}]},{"type":"null"}]},"dob":{"anyOf":[{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},{"type":"null"}]},"country":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"null"}]},{"type":"null"}]},"residencyStatus":{"anyOf":[{"anyOf":[{"type":"string","enum":["resident","non_resident","dual_resident","unknown"]},{"type":"null"}]},{"type":"null"}]},"nationalId":{"anyOf":[{"anyOf":[{"type":"string"},{"type":"null"}]},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}]}},"additionalProperties":false},"KycProfileVersionsV2ListItem":{"type":"object","properties":{"id":{"type":"string"},"versionNumber":{"type":"number"},"status":{"type":"string","enum":["draft","submitted","under_review","approved","rejected"]},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"createdBy":{"anyOf":[{"type":"string"},{"type":"null"}]},"submittedAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"submittedBy":{"anyOf":[{"type":"string"},{"type":"null"}]},"reviewedAt":{"anyOf":[{"$ref":"#/components/schemas/TimestampEncoded"},{"type":"null"}]},"reviewedBy":{"anyOf":[{"type":"string"},{"type":"null"}]},"reviewOutcome":{"anyOf":[{"type":"string","enum":["approved","rejected","changes_requested"]},{"type":"null"}]},"isDraft":{"type":"boolean"},"isUnderReview":{"type":"boolean"},"isApproved":{"type":"boolean"},"isCurrent":{"type":"boolean"}},"required":["id","versionNumber","status","createdAt","createdBy","submittedAt","submittedBy","reviewedAt","reviewedBy","reviewOutcome","isDraft","isUnderReview","isApproved","isCurrent"],"additionalProperties":false},"KycVersionFilters":{"type":"object","properties":{"createdAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"reviewedAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"status":{"anyOf":[{"type":"string","enum":["draft","submitted","under_review","approved","rejected"]},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"submittedAt":{"anyOf":[{"type":"string","maxLength":64},{"type":"object","properties":{"eq":{"type":"string","maxLength":64},"ne":{"type":"string","maxLength":64},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"type":"string","maxLength":64},"gte":{"type":"string","maxLength":64},"lt":{"type":"string","maxLength":64},"lte":{"type":"string","maxLength":64},"between":{"type":"string","maxLength":128}},"additionalProperties":false}]},"versionNumber":{"anyOf":[{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},{"type":"object","properties":{"eq":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"ne":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"gt":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"gte":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"lt":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"lte":{"anyOf":[{"type":"string","pattern":"^[+-]?\\d*\\.?\\d+(?:[Ee][+-]?\\d+)?$"},{"type":"string"}]},"between":{"type":"string","maxLength":64}},"additionalProperties":false}]}},"additionalProperties":false},"KycProfileReadOutput":{"type":"object","properties":{"id":{"type":"string"},"userId":{"type":"string"},"status":{"type":"string","enum":["incomplete","submitted","under_review","approved","rejected","update_required"]},"hasPendingUpdate":{"type":"boolean"},"approvedVersion":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"versionNumber":{"type":"number"},"firstName":{"anyOf":[{"type":"string"},{"type":"null"}]},"lastName":{"anyOf":[{"type":"string"},{"type":"null"}]},"contentHash":{"anyOf":[{"type":"string"},{"type":"null"}]},"approvedAt":{"$ref":"#/components/schemas/TimestampEncoded"},"approvedBy":{"type":"string"}},"required":["id","versionNumber","firstName","lastName","contentHash","approvedAt","approvedBy"],"additionalProperties":false},{"type":"null"}]},"latestVersion":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"versionNumber":{"type":"number"},"status":{"type":"string","enum":["draft","submitted","under_review","approved","rejected"]},"isDraft":{"type":"boolean"},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["id","versionNumber","status","isDraft","createdAt"],"additionalProperties":false},{"type":"null"}]},"openActionRequestsCount":{"type":"number"},"createdAt":{"$ref":"#/components/schemas/TimestampEncoded"},"updatedAt":{"$ref":"#/components/schemas/TimestampEncoded"}},"required":["id","userId","status","hasPendingUpdate","approvedVersion","latestVersion","openActionRequestsCount","createdAt","updatedAt"],"additionalProperties":false},"TokenComplianceUpdateAttesterRegistryBody":{"anyOf":[{"type":"object","properties":{"instrumentAdmin":{"not":{}}},"additionalProperties":false},{"type":"object","properties":{"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]},"cantonPartyId":{"$ref":"#/components/schemas/CantonPartyId"},"instrumentAdmin":{"$ref":"#/components/schemas/CantonPartyId"},"registryContractId":{"type":"string","minLength":1},"attesters":{"type":"array","items":{"$ref":"#/components/schemas/CantonPartyId"},"minItems":1},"acceptedClaimKinds":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["cantonPartyId","instrumentAdmin","registryContractId","attesters","acceptedClaimKinds"],"additionalProperties":false}]},"TokenComplianceSetModulesBody":{"anyOf":[{"type":"object","properties":{"instrumentAdmin":{"not":{}}},"additionalProperties":false},{"type":"object","properties":{"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]},"cantonPartyId":{"$ref":"#/components/schemas/CantonPartyId"},"instrumentAdmin":{"$ref":"#/components/schemas/CantonPartyId"},"registrationContractId":{"type":"string","minLength":1},"moduleContractIds":{"type":"array","items":{"type":"string","minLength":1}}},"required":["cantonPartyId","instrumentAdmin","registrationContractId","moduleContractIds"],"additionalProperties":false}]},"TokenModuleReadback":{"type":"object","properties":{"modules":{"type":"array","items":{"$ref":"#/components/schemas/ComplianceModule"}}},"required":["modules"],"additionalProperties":false},"ComplianceModule":{"type":"object","properties":{"moduleAddress":{"$ref":"#/components/schemas/EvmAddress"},"typeId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"name":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"parameters":{"anyOf":[{"$ref":"#/components/schemas/IndexedComplianceParams"},{"type":"null"}]},"scope":{"anyOf":[{"$ref":"#/components/schemas/ComplianceModuleScopeState"},{"type":"null"}]},"active":{"type":"boolean"},"isV2":{"type":"boolean"}},"required":["moduleAddress","typeId","name","parameters","scope","active","isV2"],"additionalProperties":false},"ComplianceModuleScopeState":{"type":"object","properties":{"executionMode":{"type":"integer"},"senderInclusion":{"type":"array","items":{"type":"object","properties":{"nodeType":{"type":"integer"},"value":{"type":"string"}},"required":["nodeType","value"],"additionalProperties":false}},"senderExemption":{"type":"array","items":{"type":"object","properties":{"nodeType":{"type":"integer"},"value":{"type":"string"}},"required":["nodeType","value"],"additionalProperties":false}},"receiverInclusion":{"type":"array","items":{"type":"object","properties":{"nodeType":{"type":"integer"},"value":{"type":"string"}},"required":["nodeType","value"],"additionalProperties":false}},"receiverExemption":{"type":"array","items":{"type":"object","properties":{"nodeType":{"type":"integer"},"value":{"type":"string"}},"required":["nodeType","value"],"additionalProperties":false}},"tokenInclusion":{"type":"array","items":{"type":"object","properties":{"nodeType":{"type":"integer"},"value":{"type":"string"}},"required":["nodeType","value"],"additionalProperties":false}},"tokenExemption":{"type":"array","items":{"type":"object","properties":{"nodeType":{"type":"integer"},"value":{"type":"string"}},"required":["nodeType","value"],"additionalProperties":false}},"senderCountryInclusion":{"type":"array","items":{"type":"integer"}},"senderCountryExclusion":{"type":"array","items":{"type":"integer"}},"receiverCountryInclusion":{"type":"array","items":{"type":"integer"}},"receiverCountryExclusion":{"type":"array","items":{"type":"integer"}}},"required":["executionMode","senderInclusion","senderExemption","receiverInclusion","receiverExemption","tokenInclusion","tokenExemption","senderCountryInclusion","senderCountryExclusion","receiverCountryInclusion","receiverCountryExclusion"],"additionalProperties":false},"IndexedComplianceParams":{"type":"object","properties":{"addresses":{"type":"array","items":{"$ref":"#/components/schemas/EvmAddress"}},"countries":{"type":"array","items":{"type":"integer"}},"capped":{"type":"object","properties":{"maxSupply":{"$ref":"#/components/schemas/IndexedComplianceUint"}},"required":["maxSupply"],"additionalProperties":false},"collateral":{"type":"object","properties":{"proofTopic":{"$ref":"#/components/schemas/IndexedComplianceUint"},"ratioBps":{"type":"integer"},"trustedIssuers":{"type":"array","items":{"$ref":"#/components/schemas/EvmAddress"}}},"required":["proofTopic","ratioBps","trustedIssuers"],"additionalProperties":false},"tokenSupplyLimit":{"type":"object","properties":{"maxSupply":{"$ref":"#/components/schemas/IndexedComplianceUint"},"periodLength":{"type":"integer"},"rolling":{"type":"boolean"},"useBasePrice":{"type":"boolean"},"global":{"type":"boolean"}},"required":["maxSupply","periodLength","rolling","useBasePrice","global"],"additionalProperties":false},"capitalRaiseLimit":{"type":"object","properties":{"maxSupply":{"$ref":"#/components/schemas/IndexedComplianceUint"},"periodLength":{"type":"integer"},"rolling":{"type":"boolean"},"priceResolver":{"$ref":"#/components/schemas/EvmAddress"},"priceTopicId":{"$ref":"#/components/schemas/IndexedComplianceUint"}},"required":["maxSupply","periodLength","rolling","priceResolver","priceTopicId"],"additionalProperties":false},"issuanceVolumeLimit":{"type":"object","properties":{"maxSupply":{"$ref":"#/components/schemas/IndexedComplianceUint"},"periodLength":{"type":"integer"},"rolling":{"type":"boolean"}},"required":["maxSupply","periodLength","rolling"],"additionalProperties":false},"minimumHolding":{"type":"object","properties":{"minimumHolding":{"$ref":"#/components/schemas/IndexedComplianceUint"},"exemptWallets":{"type":"array","items":{"$ref":"#/components/schemas/EvmAddress"}}},"required":["minimumHolding","exemptWallets"],"additionalProperties":false},"claimExpiry":{"type":"object","properties":{"topics":{"type":"array","items":{"$ref":"#/components/schemas/IndexedComplianceUint"}},"gracePeriod":{"type":"integer"},"requireExpiry":{"type":"boolean"}},"required":["topics","gracePeriod","requireExpiry"],"additionalProperties":false},"investorCount":{"type":"object","properties":{"maxInvestors":{"type":"integer"},"global":{"type":"boolean"},"countryCodes":{"type":"array","items":{"type":"integer"}},"countryLimits":{"type":"array","items":{"type":"integer"}},"topicFilter":{"type":"array","items":{"$ref":"#/components/schemas/IndexedComplianceExpressionNode"}}},"required":["maxInvestors"],"additionalProperties":false},"investorCountV2":{"$ref":"#/components/schemas/IndexedComplianceVersionedCount"},"identityCount":{"$ref":"#/components/schemas/IndexedComplianceVersionedCount"},"timeLock":{"type":"object","properties":{"holdPeriod":{"type":"integer"},"allowExemptions":{"type":"boolean"},"exemptionExpression":{"type":"array","items":{"$ref":"#/components/schemas/IndexedComplianceExpressionNode"}}},"required":["holdPeriod","allowExemptions","exemptionExpression"],"additionalProperties":false},"transferApproval":{"type":"object","properties":{"approvalAuthorities":{"type":"array","items":{"$ref":"#/components/schemas/EvmAddress"}},"allowExemptions":{"type":"boolean"},"oneTimeUse":{"type":"boolean"},"approvalMode":{"type":"integer"},"exemptionExpression":{"type":"array","items":{"$ref":"#/components/schemas/IndexedComplianceExpressionNode"}},"approvalExpiry":{"type":"integer"}},"required":["approvalAuthorities","allowExemptions","exemptionExpression","approvalExpiry"],"additionalProperties":false},"identityVerification":{"type":"array","items":{"$ref":"#/components/schemas/IndexedComplianceExpressionNode"}}},"additionalProperties":false},"IndexedComplianceExpressionNode":{"type":"object","properties":{"nodeType":{"type":"integer"},"value":{"$ref":"#/components/schemas/IndexedComplianceUint"}},"required":["nodeType","value"],"additionalProperties":false},"IndexedComplianceUint":{"type":"string","pattern":"^\\d+$","description":"A non-negative integer written as a decimal string, so values past 2^53 keep their precision."},"IndexedComplianceVersionedCount":{"type":"object","properties":{"maxInvestors":{"type":"integer"},"countingPolicy":{"type":"string","enum":["lifetime","current-holders"]},"countryCodes":{"type":"array","items":{"type":"integer"}},"countryLimits":{"type":"array","items":{"type":"integer"}}},"required":["maxInvestors","countingPolicy","countryCodes","countryLimits"],"additionalProperties":false},"TokenComplianceModuleConfigureBody":{"type":"object","properties":{"params":{"type":"object","properties":{"typeId":{"$ref":"#/components/schemas/ComplianceTypeId"},"values":{},"module":{"$ref":"#/components/schemas/EvmAddress"}},"required":["typeId","values","module"],"additionalProperties":false},"instanceAddress":{"$ref":"#/components/schemas/EvmAddress"},"holderRemovableNot":{"type":"object","properties":{"accepted":{"type":"boolean"}},"required":["accepted"],"additionalProperties":false},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["params"],"additionalProperties":false},"TokenComplianceModuleSetScopedParamsBody":{"type":"object","properties":{"params":{"type":"object","properties":{"typeId":{"$ref":"#/components/schemas/ComplianceTypeId"},"values":{},"module":{"$ref":"#/components/schemas/EvmAddress"}},"required":["typeId","values","module"],"additionalProperties":false},"scope":{"$ref":"#/components/schemas/ModuleScope"},"holderRemovableNot":{"type":"object","properties":{"accepted":{"type":"boolean"}},"required":["accepted"],"additionalProperties":false},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["params","scope"],"additionalProperties":false},"ModuleScope":{"type":"object","properties":{"senderInclusion":{"$ref":"#/components/schemas/ModuleScopeSenderInclusionEncoded"},"senderExemption":{"$ref":"#/components/schemas/ModuleScopeSenderExemptionEncoded"},"senderCountryInclusion":{"$ref":"#/components/schemas/ModuleScopeSenderCountryInclusionEncoded"},"senderCountryExclusion":{"$ref":"#/components/schemas/ModuleScopeSenderCountryExclusionEncoded"},"receiverInclusion":{"$ref":"#/components/schemas/ModuleScopeReceiverInclusionEncoded"},"receiverExemption":{"$ref":"#/components/schemas/ModuleScopeReceiverExemptionEncoded"},"receiverCountryInclusion":{"$ref":"#/components/schemas/ModuleScopeReceiverCountryInclusionEncoded"},"receiverCountryExclusion":{"$ref":"#/components/schemas/ModuleScopeReceiverCountryExclusionEncoded"},"executionMode":{"anyOf":[{"type":"integer"},{"type":"null"}]}},"additionalProperties":false},"TokenComplianceModuleSetScopeBody":{"type":"object","properties":{"scope":{"$ref":"#/components/schemas/ModuleScope"},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["scope"],"additionalProperties":false},"TokenComplianceModuleUninstallBody":{"type":"object","properties":{"moduleAddress":{"$ref":"#/components/schemas/EvmAddress"},"instanceAddress":{"$ref":"#/components/schemas/EvmAddress"},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["moduleAddress"],"additionalProperties":false},"TokenComplianceModuleScopedInstallBody":{"type":"object","properties":{"params":{"type":"object","properties":{"typeId":{"$ref":"#/components/schemas/ComplianceTypeId"},"values":{},"module":{"$ref":"#/components/schemas/EvmAddress"}},"required":["typeId","values","module"],"additionalProperties":false},"scope":{"$ref":"#/components/schemas/ModuleScope"},"holderRemovableNot":{"type":"object","properties":{"accepted":{"type":"boolean"}},"required":["accepted"],"additionalProperties":false},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["params","scope"],"additionalProperties":false},"TokenComplianceModuleInstallBody":{"type":"object","properties":{"params":{"type":"object","properties":{"typeId":{"$ref":"#/components/schemas/ComplianceTypeId"},"values":{},"module":{"$ref":"#/components/schemas/EvmAddress"}},"required":["typeId","values","module"],"additionalProperties":false},"holderRemovableNot":{"type":"object","properties":{"accepted":{"type":"boolean"}},"required":["accepted"],"additionalProperties":false},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["params"],"additionalProperties":false},"ComplianceModuleRegistryReadback":{"type":"object","properties":{"modules":{"type":"array","items":{"$ref":"#/components/schemas/RegisteredComplianceModule"}}},"required":["modules"],"additionalProperties":false},"RegisteredComplianceModule":{"type":"object","properties":{"moduleAddress":{"$ref":"#/components/schemas/EvmAddress"},"registryAddress":{"$ref":"#/components/schemas/EvmAddress"},"typeId":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"name":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}]},"globalConfigs":{"type":"array","items":{"$ref":"#/components/schemas/ComplianceModule"},"description":"The system compliance engine's bindings of this module type, active and inactive, with their parameters and scope."}},"required":["moduleAddress","registryAddress","typeId","name","globalConfigs"],"additionalProperties":false},"SystemComplianceModuleSetScopedParamsBody":{"type":"object","properties":{"instanceAddress":{"$ref":"#/components/schemas/EvmAddress"},"params":{"type":"object","properties":{"typeId":{"$ref":"#/components/schemas/ComplianceTypeId"},"values":{},"module":{"$ref":"#/components/schemas/EvmAddress"}},"required":["typeId","values","module"],"additionalProperties":false},"scope":{"$ref":"#/components/schemas/SystemModuleScope"},"holderRemovableNot":{"type":"object","properties":{"accepted":{"type":"boolean"}},"required":["accepted"],"additionalProperties":false},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["instanceAddress","params","scope"],"additionalProperties":false},"SystemModuleScope":{"type":"object","properties":{"senderInclusion":{"$ref":"#/components/schemas/ModuleScopeSenderInclusionEncoded"},"senderExemption":{"$ref":"#/components/schemas/ModuleScopeSenderExemptionEncoded"},"senderCountryInclusion":{"$ref":"#/components/schemas/ModuleScopeSenderCountryInclusionEncoded"},"senderCountryExclusion":{"$ref":"#/components/schemas/ModuleScopeSenderCountryExclusionEncoded"},"receiverInclusion":{"$ref":"#/components/schemas/ModuleScopeReceiverInclusionEncoded"},"receiverExemption":{"$ref":"#/components/schemas/ModuleScopeReceiverExemptionEncoded"},"receiverCountryInclusion":{"$ref":"#/components/schemas/ModuleScopeReceiverCountryInclusionEncoded"},"receiverCountryExclusion":{"$ref":"#/components/schemas/ModuleScopeReceiverCountryExclusionEncoded"},"executionMode":{"anyOf":[{"type":"integer"},{"type":"null"}]},"tokenInclusion":{"$ref":"#/components/schemas/SystemModuleScopeTokenInclusionEncoded"},"tokenExemption":{"$ref":"#/components/schemas/SystemModuleScopeTokenExemptionEncoded"}},"additionalProperties":false},"SystemModuleScopeTokenExemptionEncoded":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/ExpressionNodeWithGroups"}},{"type":"null"}]},"SystemModuleScopeTokenInclusionEncoded":{"anyOf":[{"type":"array","items":{"$ref":"#/components/schemas/ExpressionNodeWithGroups"}},{"type":"null"}]},"SystemComplianceModuleScopedInstallBody":{"type":"object","properties":{"params":{"type":"object","properties":{"typeId":{"$ref":"#/components/schemas/ComplianceTypeId"},"values":{},"module":{"$ref":"#/components/schemas/EvmAddress"}},"required":["typeId","values","module"],"additionalProperties":false},"scope":{"$ref":"#/components/schemas/SystemModuleScope"},"holderRemovableNot":{"type":"object","properties":{"accepted":{"type":"boolean"}},"required":["accepted"],"additionalProperties":false},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["params","scope"],"additionalProperties":false},"SystemComplianceModuleSetScopeBody":{"type":"object","properties":{"instanceAddress":{"$ref":"#/components/schemas/EvmAddress"},"scope":{"$ref":"#/components/schemas/SystemModuleScope"},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["instanceAddress","scope"],"additionalProperties":false},"SystemComplianceModuleConfigureBody":{"type":"object","properties":{"params":{"type":"object","properties":{"typeId":{"$ref":"#/components/schemas/ComplianceTypeId"},"values":{},"module":{"$ref":"#/components/schemas/EvmAddress"}},"required":["typeId","values","module"],"additionalProperties":false},"instanceAddress":{"$ref":"#/components/schemas/EvmAddress"},"holderRemovableNot":{"type":"object","properties":{"accepted":{"type":"boolean"}},"required":["accepted"],"additionalProperties":false},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["params"],"additionalProperties":false},"SystemComplianceModuleUninstallBody":{"type":"object","properties":{"module":{"$ref":"#/components/schemas/EvmAddress"},"instanceAddress":{"$ref":"#/components/schemas/EvmAddress"},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["module"],"additionalProperties":false},"SystemComplianceModuleCreateBody":{"type":"object","properties":{"complianceModules":{"anyOf":[{"type":"string","enum":["all"]},{"$ref":"#/components/schemas/ComplianceModuleRegistration"},{"type":"array","items":{"$ref":"#/components/schemas/ComplianceModuleRegistration"}}]},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["complianceModules"],"additionalProperties":false},"ComplianceModuleRegistration":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/ComplianceTypeId"},"implementation":{"$ref":"#/components/schemas/EvmAddress"}},"required":["type"],"additionalProperties":false},"ComplianceModuleInstance":{"type":"object","properties":{"typeId":{"type":"string","minLength":1},"currentImplementation":{"$ref":"#/components/schemas/EvmAddress"},"archived":{"type":"boolean"}},"required":["typeId","currentImplementation","archived"],"additionalProperties":false},"DalpPublicHttpError502":{"type":"object","properties":{"code":{"type":"string","minLength":1,"description":"Stable machine name for this error. Prefer the `data.id` DALP code for new clients.","examples":["USER_EMAIL_ALREADY_EXISTS"]},"status":{"type":"integer","enum":[502],"description":"HTTP status for this public error.","examples":[502]},"message":{"type":"string","minLength":1,"description":"Short headline that names what failed. Do not parse this string for control flow.","examples":["A user with this email already exists."]},"data":{"$ref":"#/components/schemas/DALP_PUBLIC_ERROR_DATA_SCHEMA"}},"required":["code","status","message","data"],"additionalProperties":false,"description":"A required upstream service returned an invalid response. Retry after a short delay.","examples":[{"code":"COMPLIANCE_APPLICANT_CREATE_FAILED","status":502,"message":"Compliance provider rejected applicant creation.","data":{"id":"DALP-0496","why":"The provider applicant or monitored-subject creation call failed before DALP could persist the subject mapping.","fix":"Verify provider credentials and the submitted subject fields, then retry applicant creation.","retryable":false,"category":"dependency"}}]},"ComplianceModuleFilters":{"type":"object","properties":{"module":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"name":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]},"typeId":{"anyOf":[{"type":"string","minLength":1,"maxLength":1000},{"type":"object","properties":{"eq":{"type":"string","minLength":1,"maxLength":1000},"ne":{"type":"string","minLength":1,"maxLength":1000},"isEmpty":{"type":"string","enum":["true","false"]},"isNotEmpty":{"type":"string","enum":["true","false"]},"iLike":{"type":"string","minLength":1,"maxLength":1000},"notILike":{"type":"string","minLength":1,"maxLength":1000},"inArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"notInArray":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]}},"additionalProperties":false}]}},"additionalProperties":false},"CantonSubmissionApprovalDecisionOutput":{"type":"object","properties":{"submissionId":{"type":"string","minLength":1},"approvalStatus":{"type":"string","enum":["approved","denied"]}},"required":["submissionId","approvalStatus"],"additionalProperties":false,"examples":[{"submissionId":"submission-example","approvalStatus":"approved"}]},"CantonSubmissionApprovalDecisionInput":{"type":"object","properties":{"decision":{"type":"string","enum":["approved","denied"]},"walletVerification":{"anyOf":[{"$ref":"#/components/schemas/WalletVerification"},{"type":"null"}]}},"required":["decision"],"additionalProperties":false},"CantonSubmissionCreateOutput":{"type":"object","properties":{"submissionId":{"type":"string","minLength":1},"ledgerSubmissionId":{"type":"string","minLength":1},"preparedHashHex":{"type":"string","minLength":1}},"required":["submissionId","ledgerSubmissionId","preparedHashHex"],"additionalProperties":false,"examples":[{"submissionId":"submission-example","ledgerSubmissionId":"canton-ledger-sub-1","preparedHashHex":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}]},"CantonJsonValue":{"anyOf":[{"type":"null"},{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"array","items":{"$ref":"#/components/schemas/CantonJsonValue"}},{"type":"object","additionalProperties":{"$ref":"#/components/schemas/CantonJsonValue"}}]},"CantonAllocationView":{"type":"object","properties":{"family":{"type":"string","enum":["canton"]},"allocationId":{"type":"string","minLength":1},"status":{"type":"string","enum":["intent","key-generated","topology-signed","awaiting-existing-approval","registered","failed"]},"cantonPartyId":{"$ref":"#/components/schemas/CantonPartyId"},"signerWalletId":{"$ref":"#/components/schemas/WalletId"},"lifecycleRequestId":{"$ref":"#/components/schemas/CustodyAccountLifecycleRequestId"}},"required":["family","allocationId","status"],"additionalProperties":false,"examples":[{"family":"canton","allocationId":"allocation-example","status":"registered","cantonPartyId":"dalp-party::1220abcd","signerWalletId":"signer-wallet-example"}]},"WalletCreateOutput":{"type":"object","properties":{"family":{"type":"string","enum":["canton"]},"allocationId":{"type":"string","minLength":1},"cantonPartyId":{"$ref":"#/components/schemas/CantonPartyId"},"signerWalletId":{"$ref":"#/components/schemas/WalletId"}},"required":["family","allocationId","cantonPartyId","signerWalletId"],"additionalProperties":false,"examples":[{"family":"canton","allocationId":"allocation-example","cantonPartyId":"dalp-party::1220abcd","signerWalletId":"signer-wallet-example"}]},"CantonPartyWallet":{"type":"object","properties":{"family":{"type":"string","enum":["canton"]},"cantonPartyId":{"$ref":"#/components/schemas/CantonPartyId"},"participantId":{"$ref":"#/components/schemas/ParticipantId"},"networkId":{"$ref":"#/components/schemas/NetworkId"},"signerWalletId":{"$ref":"#/components/schemas/WalletId"}},"required":["family","cantonPartyId","participantId","networkId","signerWalletId"],"additionalProperties":false,"examples":[{"family":"canton","cantonPartyId":"dalp-party::1220abcd","participantId":"participant-example","networkId":"canton-local","signerWalletId":"signer-wallet-example"}]},"DalpPublicHttpError410":{"type":"object","properties":{"code":{"type":"string","minLength":1,"description":"Stable machine name for this error. Prefer the `data.id` DALP code for new clients.","examples":["USER_EMAIL_ALREADY_EXISTS"]},"status":{"type":"integer","enum":[410],"description":"HTTP status for this public error.","examples":[410]},"message":{"type":"string","minLength":1,"description":"Short headline that names what failed. Do not parse this string for control flow.","examples":["A user with this email already exists."]},"data":{"$ref":"#/components/schemas/DALP_PUBLIC_ERROR_DATA_SCHEMA"}},"required":["code","status","message","data"],"additionalProperties":false,"description":"The requested resource or operation is no longer available. Read `data.fix` for the supported recovery path.","examples":[{"code":"COMPLIANCE_SECRET_ROTATION_GRACE_EXPIRED","status":410,"message":"Compliance webhook signing secret rotation grace period expired.","data":{"id":"DALP-0500","why":"The pending webhook signing secret expired before it was promoted to the active secret.","fix":"Start a new secret rotation and update the provider dashboard with the active webhook signing secret.","retryable":false,"category":"domain"}}]},"DalpPublicHttpError422":{"type":"object","properties":{"code":{"type":"string","minLength":1,"description":"Stable machine name for this error. Prefer the `data.id` DALP code for new clients.","examples":["USER_EMAIL_ALREADY_EXISTS"]},"status":{"type":"integer","enum":[422],"description":"HTTP status for this public error.","examples":[422]},"message":{"type":"string","minLength":1,"description":"Short headline that names what failed. Do not parse this string for control flow.","examples":["A user with this email already exists."]},"data":{"$ref":"#/components/schemas/DALP_PUBLIC_ERROR_DATA_SCHEMA"}},"required":["code","status","message","data"],"additionalProperties":false,"description":"The request is syntactically valid but cannot be applied to the current domain state. Correct it as described in `data.fix`.","examples":[{"code":"UNPROCESSABLE_ENTITY","status":422,"message":"The request is well formed but cannot be applied to the current state.","data":{"id":"DALP-12031","why":"The route understood the request and refused it against the current domain state. The refusing check publishes no error entry of its own, so this general 422 stands in for it.","fix":"Read `message`, correct the request or the state it depends on, then retry. Include the request id if you contact support.","retryable":false,"category":"client"}}]},"StepUpChallengeIssueResponse":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/WalletStepUpChallenge"},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"WalletStepUpChallenge":{"type":"object","properties":{"challengeId":{"type":"string"},"expiresAt":{"type":"string"}},"required":["challengeId","expiresAt"],"additionalProperties":false},"WalletStepUpChallengeRequest":{"type":"object","properties":{"operation":{"$ref":"#/components/schemas/WalletStepUpOperation"},"target":{"$ref":"#/components/schemas/WalletStepUpTarget"},"payloadDigest":{"$ref":"#/components/schemas/WalletStepUpPayloadDigest"}},"required":["operation","target","payloadDigest"],"additionalProperties":false},"WalletStepUpPayloadDigest":{"type":"string","pattern":"^[0-9a-f]{64}$","description":"Lowercase hex SHA-256 of the request body's canonical JSON: object keys sorted, absent fields dropped, and the top-level `walletVerification` left out."},"WalletStepUpTarget":{"anyOf":[{"type":"string","minLength":1,"maxLength":512},{"type":"null"}],"description":"The request's path parameters in route order, each URI-encoded and joined by `/`, such as a provider id; `null` when the route has none. If chain, network, executor, or custody-account scope headers are present, use the JSON array of this target followed by their values in that order, with missing headers as null."},"WalletStepUpOperation":{"type":"string","maxLength":512,"pattern":"^(?:DELETE|GET|PATCH|POST|PUT) \\/api\\/\\S+$","description":"Route the challenge authorizes: the HTTP method, a space, and the route's path template, such as `POST /api/v2/compliance/providers/:providerId/rotate-secret`."},"DalpPublicHttpError503":{"type":"object","properties":{"code":{"type":"string","minLength":1,"description":"Stable machine name for this error. Prefer the `data.id` DALP code for new clients.","examples":["USER_EMAIL_ALREADY_EXISTS"]},"status":{"type":"integer","enum":[503],"description":"HTTP status for this public error.","examples":[503]},"message":{"type":"string","minLength":1,"description":"Short headline that names what failed. Do not parse this string for control flow.","examples":["A user with this email already exists."]},"data":{"$ref":"#/components/schemas/DALP_PUBLIC_ERROR_DATA_SCHEMA"}},"required":["code","status","message","data"],"additionalProperties":false,"description":"A required platform dependency is not ready. Wait, then retry as described in `data.fix`.","examples":[{"code":"SERVICE_UNAVAILABLE","status":503,"message":"Service temporarily unavailable","data":{"id":"DALP-0082","why":"A required backend service is temporarily unavailable.","fix":"Retry after a short backoff. If the problem continues, contact support with the request id.","retryable":true,"category":"dependency"}}]},"DalpPublicHttpError404":{"type":"object","properties":{"code":{"type":"string","minLength":1,"description":"Stable machine name for this error. Prefer the `data.id` DALP code for new clients.","examples":["USER_EMAIL_ALREADY_EXISTS"]},"status":{"type":"integer","enum":[404],"description":"HTTP status for this public error.","examples":[404]},"message":{"type":"string","minLength":1,"description":"Short headline that names what failed. Do not parse this string for control flow.","examples":["A user with this email already exists."]},"data":{"$ref":"#/components/schemas/DALP_PUBLIC_ERROR_DATA_SCHEMA"}},"required":["code","status","message","data"],"additionalProperties":false,"description":"The requested resource was not found. Check the supplied identifier and tenant context before retrying.","examples":[{"code":"NOT_FOUND","status":404,"message":"Resource not found","data":{"id":"DALP-0022","why":"The requested resource could not be found.","fix":"Check the identifier and retry only if the resource should exist.","retryable":false,"category":"client"}}]},"DalpPublicHttpError403":{"type":"object","properties":{"code":{"type":"string","minLength":1,"description":"Stable machine name for this error. Prefer the `data.id` DALP code for new clients.","examples":["USER_EMAIL_ALREADY_EXISTS"]},"status":{"type":"integer","enum":[403],"description":"HTTP status for this public error.","examples":[403]},"message":{"type":"string","minLength":1,"description":"Short headline that names what failed. Do not parse this string for control flow.","examples":["A user with this email already exists."]},"data":{"$ref":"#/components/schemas/DALP_PUBLIC_ERROR_DATA_SCHEMA"}},"required":["code","status","message","data"],"additionalProperties":false,"description":"The authenticated caller is not allowed to perform this operation. Read `data.fix` for the required access.","examples":[{"code":"FORBIDDEN","status":403,"message":"This operation is not available to the caller","data":{"id":"DALP-0003","why":"The route runs behind an access gate that the caller does not satisfy. When `data.requiredRoles` is present, it lists the roles that pass the gate and the wallet that authorized this request holds none of them. When it is absent, the gate is an off-chain permission or an ownership scope the caller sits outside.","fix":"Retry with an actor that already holds one of the roles in `data.requiredRoles`, or ask an administrator to grant one of them. When the record is the caller's own, confirm the request names that record on the network where the caller's account lives.","retryable":false,"category":"permission"}}]},"SessionRevokeResponse":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/SessionRevokeResult"},"links":{"type":"object","properties":{"self":{"type":"string"}},"required":["self"],"additionalProperties":false}},"required":["data","links"],"additionalProperties":false},"SessionRevokeResult":{"type":"object","properties":{"success":{"type":"boolean"}},"required":["success"],"additionalProperties":false},"User":{"type":"object","properties":{"id":{"type":"string","readOnly":true},"name":{"type":"string"},"email":{"type":"string"},"emailVerified":{"type":"boolean","default":false,"readOnly":true},"image":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"role":{"type":"string","default":"member","readOnly":true},"banned":{"type":"boolean","default":false,"readOnly":true},"banReason":{"type":"string","readOnly":true},"banExpires":{"type":"string","format":"date-time","readOnly":true},"twoFactorEnabled":{"type":"boolean","default":false,"readOnly":true},"lastLoginAt":{"type":"string","format":"date-time","readOnly":true},"walletPincodeEnabled":{"type":"boolean","default":false,"readOnly":true},"walletPincodeVerificationId":{"type":"string","readOnly":true},"walletTwoFactorEnabled":{"type":"boolean","default":false,"readOnly":true},"walletTwoFactorVerificationId":{"type":"string","readOnly":true},"walletSecretCodeVerificationId":{"type":"string","readOnly":true},"walletSecretCodesConfirmed":{"type":"boolean","default":false,"readOnly":true},"lastActiveOrganizationId":{"type":"string","readOnly":true}},"required":["id","name","email","emailVerified","createdAt","updatedAt","role"],"example":{"id":"user_northwind_ops","name":"Northwind Treasury","email":"treasury@northwind.example","emailVerified":true,"image":"https://static.northwind.example/avatars/treasury.png","createdAt":"2026-02-11T09:14:07.000Z","updatedAt":"2026-03-04T15:42:18.000Z","role":"member","banned":false,"twoFactorEnabled":true,"lastLoginAt":"2026-03-04T15:40:00.000Z","walletPincodeEnabled":true,"walletPincodeVerificationId":"ver_pincode_northwind","walletTwoFactorEnabled":true,"walletTwoFactorVerificationId":"ver_totp_northwind","walletSecretCodeVerificationId":"018f7b0a-7c3e-7890-a1b2-c3d4e5f60789","walletSecretCodesConfirmed":true,"lastActiveOrganizationId":"org_northwind_coffee"}},"Session":{"type":"object","properties":{"id":{"type":"string","readOnly":true},"expiresAt":{"type":"string","format":"date-time"},"token":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"ipAddress":{"type":"string"},"userAgent":{"type":"string"},"userId":{"type":"string"},"impersonatedBy":{"type":"string","readOnly":true},"activeOrganizationId":{"type":"string","readOnly":true}},"required":["id","expiresAt","token","createdAt","updatedAt","userId"],"example":{"id":"sess_northwind_console","expiresAt":"2026-03-11T15:42:18.000Z","token":"sess_example_not_a_live_token","createdAt":"2026-02-11T09:14:07.000Z","updatedAt":"2026-03-04T15:42:18.000Z","ipAddress":"203.0.113.10","userAgent":"Mozilla/5.0 NorthwindConsole","userId":"user_northwind_ops","activeOrganizationId":"org_northwind_coffee"}},"Account":{"type":"object","properties":{"id":{"type":"string","readOnly":true},"accountId":{"type":"string"},"providerId":{"type":"string"},"userId":{"type":"string"},"accessToken":{"type":"string"},"refreshToken":{"type":"string"},"idToken":{"type":"string"},"accessTokenExpiresAt":{"type":"string","format":"date-time"},"refreshTokenExpiresAt":{"type":"string","format":"date-time"},"scope":{"type":"string"},"password":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","accountId","providerId","userId","createdAt","updatedAt"],"example":{"id":"acct_northwind_oidc","accountId":"sub_northwind_ops","providerId":"oidc-northwind","userId":"user_northwind_ops","accessToken":"oauth_example_access_not_live","refreshToken":"oauth_example_refresh_not_live","idToken":"oauth_example_id_not_live","accessTokenExpiresAt":"2026-03-11T15:42:18.000Z","refreshTokenExpiresAt":"2026-03-11T15:42:18.000Z","scope":"openid email profile","createdAt":"2026-02-11T09:14:07.000Z","updatedAt":"2026-03-04T15:42:18.000Z"}},"Verification":{"type":"object","properties":{"id":{"type":"string","readOnly":true},"identifier":{"type":"string"},"value":{"type":"string"},"expiresAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","identifier","value","expiresAt","createdAt","updatedAt"],"example":{"id":"018f7b0a-7c3e-7890-a1b2-c3d4e5f60789","identifier":"treasury@northwind.example","value":"verify_example_not_live","expiresAt":"2026-03-11T15:42:18.000Z","createdAt":"2026-02-11T09:14:07.000Z","updatedAt":"2026-03-04T15:42:18.000Z"}},"Jwks":{"type":"object","properties":{"id":{"type":"string","readOnly":true},"publicKey":{"type":"string"},"privateKey":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","format":"date-time"},"alg":{"type":"string"},"crv":{"type":"string"}},"required":["id","publicKey","privateKey","createdAt"]},"Apikey":{"type":"object","properties":{"id":{"type":"string","readOnly":true},"configId":{"type":"string","default":"default","readOnly":true},"name":{"type":"string","readOnly":true},"start":{"type":"string","readOnly":true},"referenceId":{"type":"string","readOnly":true},"prefix":{"type":"string","readOnly":true},"key":{"type":"string","readOnly":true},"refillInterval":{"type":"number","readOnly":true},"refillAmount":{"type":"number","readOnly":true},"lastRefillAt":{"type":"string","format":"date-time","readOnly":true},"enabled":{"type":"boolean","default":true,"readOnly":true},"rateLimitEnabled":{"type":"boolean","default":true,"readOnly":true},"rateLimitTimeWindow":{"type":"number","default":60000,"readOnly":true},"rateLimitMax":{"type":"number","default":10000,"readOnly":true},"requestCount":{"type":"number","default":0,"readOnly":true},"remaining":{"type":"number","readOnly":true},"lastRequest":{"type":"string","format":"date-time","readOnly":true},"expiresAt":{"type":"string","format":"date-time","readOnly":true},"createdAt":{"type":"string","format":"date-time","readOnly":true},"updatedAt":{"type":"string","format":"date-time","readOnly":true},"permissions":{"type":"string","readOnly":true},"metadata":{"type":"string"}},"required":["id","configId","referenceId","key","createdAt","updatedAt"],"example":{"id":"apikey_northwind_treasury","configId":"default","name":"Treasury automation","start":"sm_dalp_exampl","referenceId":"user_northwind_ops","prefix":"sm_dalp_","key":"sm_dalp_example_not_a_live_key","refillInterval":3600000,"refillAmount":1000,"lastRefillAt":"2026-03-04T15:42:18.000Z","enabled":true,"rateLimitEnabled":true,"rateLimitTimeWindow":60000,"rateLimitMax":10000,"requestCount":12,"remaining":988,"lastRequest":"2026-03-04T15:42:18.000Z","expiresAt":"2026-03-11T15:42:18.000Z","createdAt":"2026-02-11T09:14:07.000Z","updatedAt":"2026-03-04T15:42:18.000Z","permissions":"{\"organization\":[\"read\"]}","metadata":"{\"scope\":\"read-write\"}"}},"Passkey":{"type":"object","properties":{"id":{"type":"string","readOnly":true},"name":{"type":"string"},"publicKey":{"type":"string"},"userId":{"type":"string"},"credentialID":{"type":"string"},"counter":{"type":"number"},"deviceType":{"type":"string"},"backedUp":{"type":"boolean"},"transports":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"aaguid":{"type":"string"}},"required":["id","publicKey","userId","credentialID","counter","deviceType","backedUp"],"example":{"id":"passkey_northwind_laptop","name":"Northwind laptop","publicKey":"pQECAyYgASFYIExamplePublicKeyNotLive","userId":"user_northwind_ops","credentialID":"cred_example_northwind_laptop","counter":7,"deviceType":"platform","backedUp":true,"transports":"internal,hybrid","createdAt":"2026-02-11T09:14:07.000Z","aaguid":"a1b2c3d4-e5f6-4789-a012-3456789abcde"}},"TwoFactor":{"type":"object","properties":{"id":{"type":"string","readOnly":true},"secret":{"type":"string"},"backupCodes":{"type":"string"},"userId":{"type":"string"},"verified":{"type":"boolean","default":true,"readOnly":true},"failedVerificationCount":{"type":"number","default":0,"readOnly":true},"lockedUntil":{"type":"string","format":"date-time","readOnly":true}},"required":["id"],"example":{"id":"twofactor_northwind_login","secret":"totp_example_secret_not_live","backupCodes":"hashed-backup-codes-example","userId":"user_northwind_ops","verified":true,"failedVerificationCount":0}},"DeviceCode":{"type":"object","properties":{"id":{"type":"string","readOnly":true},"deviceCode":{"type":"string"},"userCode":{"type":"string"},"userId":{"type":"string"},"expiresAt":{"type":"string","format":"date-time"},"status":{"type":"string"},"lastPolledAt":{"type":"string","format":"date-time"},"pollingInterval":{"type":"number"},"clientId":{"type":"string"},"scope":{"type":"string"}},"required":["id","deviceCode","userCode","expiresAt","status"],"example":{"id":"devauth_northwind_cli","deviceCode":"device_example_code_not_live","userCode":"WDJB-MOOO","userId":"user_northwind_ops","expiresAt":"2026-03-11T15:42:18.000Z","status":"pending","lastPolledAt":"2026-03-04T15:42:18.000Z","pollingInterval":5,"clientId":"northwind-cli","scope":"openid"}},"Organization":{"type":"object","properties":{"id":{"type":"string","readOnly":true},"name":{"type":"string"},"slug":{"type":"string"},"logo":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"metadata":{"type":"string"},"onboardingCompletedAt":{"type":"string","format":"date-time","readOnly":true},"archivedAt":{"type":"string","format":"date-time","readOnly":true}},"required":["id","name","slug","createdAt"],"example":{"id":"org_northwind_coffee","name":"Northwind Coffee","slug":"northwind-coffee","logo":"https://static.northwind.example/logo.png","createdAt":"2026-02-11T09:14:07.000Z","metadata":"{\"region\":\"eu\"}","onboardingCompletedAt":"2026-02-12T10:00:00.000Z"}},"Member":{"type":"object","properties":{"id":{"type":"string","readOnly":true},"organizationId":{"type":"string"},"userId":{"type":"string"},"role":{"type":"string","default":"member"},"createdAt":{"type":"string","format":"date-time"}},"required":["id","organizationId","userId","role","createdAt"],"example":{"id":"member_northwind_ops","organizationId":"org_northwind_coffee","userId":"user_northwind_ops","role":"member","createdAt":"2026-02-11T09:14:07.000Z"}},"Invitation":{"type":"object","properties":{"id":{"type":"string","readOnly":true},"organizationId":{"type":"string"},"email":{"type":"string"},"role":{"type":"string"},"status":{"type":"string","default":"pending"},"expiresAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"inviterId":{"type":"string"},"onChainRoles":{"type":"string","readOnly":true},"onChainRolesAuthorizedAt":{"type":"string","format":"date-time","readOnly":true}},"required":["id","organizationId","email","status","expiresAt","createdAt","inviterId"],"example":{"id":"invite_northwind_analyst","organizationId":"org_northwind_coffee","email":"analyst@northwind.example","role":"member","status":"pending","expiresAt":"2026-03-11T15:42:18.000Z","createdAt":"2026-02-11T09:14:07.000Z","inviterId":"user_northwind_admin","onChainRoles":"[\"assetManager\"]","onChainRolesAuthorizedAt":"2026-03-04T15:42:18.000Z"}}},"securitySchemes":{"apiKeyCookie":{"type":"apiKey","in":"cookie","name":"apiKeyCookie","description":"API Key authentication via cookie"},"bearerAuth":{"type":"http","scheme":"bearer","description":"Bearer token authentication"},"apiKey":{"type":"apiKey","in":"header","name":"X-Api-Key","description":"API key"},"sessionCookie":{"type":"apiKey","in":"cookie","name":"__Secure-better-auth.session_token","description":"Session cookie that sign-in sets. Over plain HTTP the name has no `__Secure-` prefix. A local deployment uses `better-auth-<host-port>` in place of `better-auth`."},"twoFactorCookie":{"type":"apiKey","in":"cookie","name":"__Secure-better-auth.two_factor","description":"Pending two-factor cookie that a password sign-in sets when the account has a second factor. Over plain HTTP the name has no `__Secure-` prefix. A local deployment uses `better-auth-<host-port>` in place of `better-auth`."}},"parameters":{"idempotencyKey":{"name":"Idempotency-Key","in":"header","required":false,"description":"Retry key for one mutation. Reuse it only for the same method, path, and body on a route that documents replay safety. If omitted, the platform generates a UUIDv7 key; replay-safe writes echo it in the `Idempotency-Key` response header. A lost response still requires status reconciliation.","schema":{"type":"string"}},"prefer":{"name":"Prefer","in":"header","required":false,"description":"RFC 7240 response-timing preference. Absent or `respond-async` returns 202 immediately. `wait=N` waits up to N seconds, clamped to 5 through 99. `respond-async, wait=N` waits and then degrades to 202. Poll `Location` after 202 instead of resubmitting.","schema":{"type":"string"}}},"headers":{"Location":{"description":"URL for polling an accepted mutation (RFC 7231 §7.1.2). Present on HTTP 202. Do not resubmit the original request while this URL is available.","schema":{"type":"string","format":"uri-reference"}},"X-Request-Id":{"description":"Correlation id for this request. Include it with the error payload `requestId` when you contact support.","schema":{"type":"string"}},"Idempotency-Key":{"description":"Effective retry key when the request reached a replay-safe write. Not present on early refusals such as authentication errors. Reuse it only with the same method, path, and body. After an uncertain outcome, look up the transaction status before replaying.","schema":{"type":"string"}}}},"security":[{"apiKey":[]}],"tags":[{"name":"API keys","description":"Create, inspect, rotate, and revoke API keys for server-to-server access. A key inherits its creator's permissions and has an explicit read or read-write scope."},{"name":"Sessions and sign-in","description":"Sign in, sign out, inspect the current session, and manage the signed-in user's account. Use this surface for interactive clients that authenticate with a session cookie."},{"name":"Organisations and members","description":"Select the active organisation and manage its membership and invitations. The active organisation supplies the tenant context for later API calls."},{"name":"Account security","description":"Configure passkeys, multi-factor authentication, wallet PIN protection, recovery codes, and active sessions for the signed-in account."},{"name":"OAuth and device authorization","description":"Authenticate through configured OAuth providers or the device authorization flow. These routes establish identity; they do not perform asset operations."},{"name":"Accounts and portfolio","description":"Read accounts, native balances, token holdings, historical balances, and portfolio performance for the selected participant and chain."},{"name":"Actions","description":"List and stream asynchronous actions created by platform workflows. Poll or stream an existing action instead of resubmitting the instruction that created it."},{"name":"Transactions","description":"Read blockchain transactions and durable transaction requests, follow their status, and use restricted recovery operations when a queued request needs intervention."},{"name":"Search","description":"Search tokens, users, contacts, and platform records visible to the caller. Search reads indexed state and does not submit a transaction."},{"name":"Activity and statistics","description":"Read account activity and aggregate system statistics used by dashboards, reporting, and operational analysis."},{"name":"Tokens","description":"List and inspect tokenized instruments, holders, allowances, events, and attached capabilities. Reads use indexed state unless an operation says it evaluates the live chain."},{"name":"Asset design","description":"Manage asset classes and reusable instrument templates that define which instruments and policies are available when an asset is issued."},{"name":"Token creation","description":"Issue a new tokenized instrument and follow its deployment. Choose the asset design and factory first, then poll the returned status URL when creation is asynchronous."},{"name":"External tokens","description":"Register and inspect token contracts that were deployed outside the platform but participate in platform workflows."},{"name":"Token transfers and supply","description":"Transfer, mint, burn, approve, and pre-authorize token movement. Read the original operation status before retrying a mutation."},{"name":"Token controls","description":"Manage pause state, freezes, supply caps, token roles, and other issuer controls that restrict how one token can operate."},{"name":"Token documents","description":"Upload, confirm, list, download, and remove documents attached to a token. Upload URLs store content; confirmation attaches the stored file to the asset record."},{"name":"Token statistics","description":"Read indexed supply, holder, volume, collateral, balance-history, and distribution statistics for one token."},{"name":"Token lifecycle","description":"Run maturity, redemption, recovery, collateral, and token-scoped claim operations across the life of an issued instrument."},{"name":"Token features","description":"Inspect, attach, configure, rotate, and operate optional token features such as conversion, permit, treasury yield, and voting power."},{"name":"Fees and pricing","description":"Read and configure token prices, transaction fees, AUM fees, fee exemptions, collection events, and reconciliation state."},{"name":"Primary offerings","description":"Create and operate primary token offerings, investor purchases, allocations, claims, refunds, vesting, and offering documents."},{"name":"Trading venue","description":"Trade platform tokens on permissioned central limit orderbook markets: market data, depth and trades, signed order placement and cancellation, participant working orders and blotter, and venue-operator market administration."},{"name":"Regulatory reporting","description":"Read the reporting duties the organisation owes and the filings that discharge them: obligations, filing periods with their deadlines, and the submissions made against a period. Reports are generated from platform data; a report refuses rather than approximates a figure it cannot derive."},{"name":"XvP settlements","description":"Create and operate exchange-versus-payment settlements, including approvals, secret handling, execution, cancellation, and expiry recovery."},{"name":"Airdrops","description":"Inspect token distribution instances created by push, vesting, and time-bound airdrop factories."},{"name":"Governance","description":"Create proposals and polls, cast votes, manage execution, export results, and inspect token voting power and delegation."},{"name":"Yield and distributions","description":"Configure and operate fixed yield, treasury yield, interest, and dividend distributions, including funding, claims, and issuer recovery."},{"name":"Corporate actions","description":"Declare, preview, confirm, and abort named Corporate Actions on a token. Cash dividend and bond coupon link existing yield features. Other types orchestrate mint or burn."},{"name":"Participants","description":"Resolve participants the caller may act as, inspect eligibility, and manage multisig participant drafts, signers, and invitations."},{"name":"Users","description":"Read and administer organisation users, wallets, security state, onboarding state, and user-facing events."},{"name":"Contacts","description":"Manage the signed-in user's address book. Each contact pairs a consumer-chosen name with one wallet."},{"name":"KYC","description":"Manage KYC profiles, review versions, supporting documents, decisions, and action requests for users in the active organisation."},{"name":"Identities and claims","description":"Read and manage on-chain identities, claim topics, trusted issuers, signed claims, and the registry chain that resolves them."},{"name":"Compliance rules","description":"Define and apply compliance templates, modules, expressions, and token-level rules that decide whether a transfer is allowed."},{"name":"Compliance providers","description":"Configure external compliance providers, register subjects and transactions for screening, and manage provider verdict webhooks."},{"name":"Identity recovery","description":"Preview and execute recovery when a user loses a wallet, then follow the recovery until identity and holdings have moved or the process stops."},{"name":"Price feeds","description":"Read and maintain on-chain price feeds, directory registrations, observations, issuer nonces, adapters, and staleness state."},{"name":"Exchange rates","description":"Read current and historical currency exchange rates derived from configured market-data feeds."},{"name":"Organisation deployment","description":"Deploy an organisation's platform resources, enable networks, add members, accept invitations, and follow deployment progress."},{"name":"Systems and factories","description":"Inspect deployed systems, directories, contracts, token factories, and addon factories, and create the factories required for asset issuance."},{"name":"Roles and permissions","description":"Read, grant, and revoke system and participant roles through the active system's access manager."},{"name":"Platform settings","description":"Read and manage organisation settings, themes, public client configuration, metadata, and other platform behavior exposed to integrators."},{"name":"Webhooks","description":"Create webhook endpoints, inspect and retry deliveries, rotate secrets, replay events, and record signed consumer receipts."},{"name":"Custody","description":"Inspect the active provider catalog and administer provider configuration health, creation enablement, quarantine, recovery, rotation, and deletion."},{"name":"Custody operations","description":"Read participant custody balances and reconcile each custody wallet's journal total against its chain balance."},{"name":"Wallets","description":"List and create custody-held wallets, including Canton party wallets, and submit DAML commands signed by the organisation's custody keys."},{"name":"Monitoring","description":"Inspect API, chain, indexer, workflow, and platform health. Monitoring reads do not mutate assets; restricted recovery routes state their effect explicitly."},{"name":"Smart accounts","description":"Provision and operate smart accounts, modules, signers, approval thresholds, and user-operation approvals."},{"name":"Transaction funding","description":"Operate bundlers, paymasters, sponsorship, gas funding, and refund splitting for account-abstraction transactions."},{"name":"Platform administration","description":"Restricted platform-wide administration for organisations, users, networks, RPC pools, API keys, health, and recovery controls."}],"x-tagGroups":[{"name":"API access","description":"Start here to create API credentials, establish a session, select an organisation, and secure the account that calls the Platform API.","tags":["API keys","Sessions and sign-in","Organisations and members","Account security","OAuth and device authorization"]},{"name":"Portfolio and activity","description":"Read holdings and portfolio performance, follow asynchronous actions and transactions, inspect activity, and search records visible to the caller.","tags":["Accounts and portfolio","Actions","Transactions","Search","Activity and statistics"]},{"name":"Assets","description":"Design, issue, inspect, and operate tokenized instruments. Read the token first, then use the focused task groups for supply, controls, documents, lifecycle, and optional features.","tags":["Tokens","Asset design","Token creation","External tokens","Token transfers and supply","Token controls","Token documents","Token statistics","Token lifecycle","Token features","Fees and pricing"]},{"name":"Asset lifecycle","description":"Run post-issuance workflows such as primary offerings, exchange-versus-payment settlement, governance, distributions, and airdrops.","tags":["Primary offerings","Trading venue","Regulatory reporting","XvP settlements","Airdrops","Governance","Yield and distributions","Corporate actions"]},{"name":"Participants and compliance","description":"Manage the people, wallets, identities, claims, and compliance policy that determine who may hold or transfer an asset.","tags":["Participants","Users","Contacts","KYC","Identities and claims","Compliance rules","Compliance providers","Identity recovery"]},{"name":"Market data","description":"Read and maintain the feeds and exchange rates used for valuation, pricing, and policy decisions.","tags":["Price feeds","Exchange rates"]},{"name":"Platform operations","description":"Configure organisations, systems, integrations, signing infrastructure, monitoring, and restricted operator controls.","tags":["Organisation deployment","Systems and factories","Roles and permissions","Platform settings","Webhooks","Custody","Custody operations","Wallets","Monitoring","Smart accounts","Transaction funding","Platform administration"]}],"x-dalp-generated":{"sha256":"b79b543bbd55"}}